امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
محاسبه دترمینان ماتریس
نویسنده پیام
navidal آفلاین
كاربر تک ستاره
*

ارسال‌ها: 48
موضوع‌ها: 5
تاریخ عضویت: دى ۱۳۸۳

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
محاسبه دترمینان ماتریس
سلام
دوستان من نیاز خیلی سریع به برنامه محاسبه دترمینان ماترس n*n دارم اگه کسی می تونه کمک کنه بسیار ممنون میشم.
۱۲-خرداد-۱۳۸۵, ۱۰:۱۵:۳۲
ارسال‌ها
پاسخ
saleh_sahel آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #2
RE: محاسبه دترمینان ماتریس
سلام
من دانشجوی کامپیوتر دانشگاه پیام نور هستم .
این برنامه و حتی برنامه وارون ماتریس n*n رو دارم ، ولی خدایی خیلی براشون زحمت کشیدم
۱۹-تير-۱۳۸۵, ۱۸:۵۵:۳۲
ارسال‌ها
پاسخ
تشکر شده توسط : Orderpild
kamran11958 آفلاین
کاربر با تجربه
****

ارسال‌ها: 525
موضوع‌ها: 69
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 0
( 24 تشکر در 15 ارسال )
ارسال: #3
RE: محاسبه دترمینان ماتریس
سلام
اگه عجله نداشتي ميتونستم كمكت كنم تا آخر اين هفته اصلا وقت ندارم. ولي فك نكنم زياد سخت باشه اول خودت سعي كن فرمولش رو كه داري ( اگه نه فك كنم تو كتاب هندسه تحليلي و جبر خطي سيد موسوي (مبتكران) باشه - همون بحث كهاد و ... هست كه حول يه سطر يا ستون بسط ميدي ) سرچ كن تو PSC هم احتمالا باشه.
۱۹-تير-۱۳۸۵, ۲۲:۰۱:۳۲
وب سایت ارسال‌ها
پاسخ
rax آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #4
RE: محاسبه دترمینان ماتریس
سلام دوستان

کسی برنامه گرفتن دترمینان بروش کرامر را دارد!!!!!!!!!!!!

خیلی خیلی ممنون  میشوم!!!!

برایم حیاتی است
۲۲-دى-۱۳۸۵, ۲۲:۲۳:۰۴
ارسال‌ها
پاسخ
z_gh9566 آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: بهمن ۱۳۸۷

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: محاسبه دترمینان ماتریس
دترمينان ماتريس

#include <stdio.h>
#include <conio.h>
#include <math.h>
// A square matrix struct
typedef struct

{
int order;
int **array;

} SQRMATRIX;

// Function declarations
int CreateMatrix( SQRMATRIX *p, int order );
void DisplayMatrix( SQRMATRIX *p );
void InputMatrix( SQRMATRIX *p );
int CalcMinor( SQRMATRIX *p, SQRMATRIX *minor, int row, int col );
int CalcDeterminant( SQRMATRIX *p );
void DestroyMatrix( SQRMATRIX *p );
// main( )
int main( )


{
SQRMATRIX p;
int order;

printf("Enter order of matrix: ");
scanf("%d", &order );

if( !CreateMatrix( &p, order ))


{
printf("Matrix couldn't be created.");
return 0;
}

printf("Matrix created.\n\n");
InputMatrix( &p );

printf("\nThe matrix is:\n");
DisplayMatrix( &p );
printf("\nThe determinant of the matrix is: %d", CalcDeterminant( &p ));

getch( );
return 0;
}

// Create matrix of specified order
int CreateMatrix( SQRMATRIX *p, int order )


{
int i;

if( order < 1 )
return 0;

p->order = order;
p->array = (int**) malloc( order * sizeof( int* )); // Allocate space for each row

if( !p->array )
return 0;

for( i=0; i < order; i++ )


{
p->array = (int*) malloc( order* sizeof( int )); // Allocate space for each column
if( !p->array )
return 0;
}
return 1;
}


// Print matrix in proper format
void DisplayMatrix( SQRMATRIX *p )


{
int i,j;

if( p->order < 1 )
return;

for( i = 0; i < p->order; i++ )


{
for( j = 0; j < p->order; j++ )
printf("%5d ", p->array[j] );

printf("\n");
}
}

// Input matrix from user
void InputMatrix( SQRMATRIX *p )


{
int i,j;

for( i = 0; i < p->order; i++ )
for( j = 0; j < p->order; j++ )


{
printf("Enter element at ( %d, %dSad ", i+1, j+1 );
scanf("%d", &p->array[j] );
}
}


/* Calculate the 'minor' of the given matrix at given position.
The minor is the matrix formed by deleting the specified row
and column from the matrix.
*/
int CalcMinor( SQRMATRIX *p, SQRMATRIX *minor, int row, int col )


{
int i,j,a,b;
if( p->order <= 1 )
return 0;

if( row >= p->order || col >= p->order )
return 0;

if( !CreateMatrix( minor, p->order-1 ))
return 0;

a = b = 0;

for( i = 0; i < p->order; i++ )


{
if( i != row )


{
b = 0;
for( j = 0; j < p->order; j++ )


{
if( j != col )


{
minor->array[a] = p->array[j];
b++; // Increase column-count of minor
}
}
a++; // Increase row-count of minor
}
}

return 1;
}

/* Calculate the determinant recursively.
The recursive definition is :
det( m ) = Summation( i = 0 to order ) [ (-1)^i * m[0] * det( minor( m[0] ))]
*/
int CalcDeterminant( SQRMATRIX *p )


{
int i, result = 0, temp;
SQRMATRIX minor;
if( p->order < 1 )


{
printf("CalcDeterminant( ) : Invalid matrix.");
return 0;
}

// The 'stopping' condition
if( p->order == 1 )
return p->array[0][0];

for( i = 0; i < p->order; i++ )


{
if( !CalcMinor( p, &minor, 0, i ))


{
printf("CalcDeterminant( ) : Memory allocation failed.");
return 0;
}

result += ( pow( -1, i ) * p->array[0] * CalcDeterminant( &minor ));

DestroyMatrix( &minor );
}

return result;
}

// Release allocated memory
void DestroyMatrix( SQRMATRIX *p )


{
int i;

if( p->order < 1 )
return;

for( i = 0; i < p->order; i++ )
free( p->array ); // free each columns

free( p->array ); // free each row
p->order = 0;
}
۰۹-بهمن-۱۳۸۷, ۱۷:۴۱:۰۳
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سورس کد محاسبه جذر یک عدد در سی پلاس پلاس Ghoghnus 0 628 ۱۱-خرداد-۱۴۰۰, ۲۳:۵۹:۳۶
آخرین ارسال: Ghoghnus
  محاسبه وارون ماتریس n*n تک ستاره 3 15,834 ۱۱-خرداد-۱۳۹۳, ۱۱:۳۸:۰۱
آخرین ارسال: najafi2003
  [سوال] کمک فوری فوری سورس ماتریس un-known 1 2,740 ۲۴-دى-۱۳۹۰, ۱۵:۵۴:۱۰
آخرین ارسال: mhpc2009
  نقطه زین اسبی ماتریس Sadie 1 6,078 ۰۶-بهمن-۱۳۸۸, ۲۰:۰۲:۲۲
آخرین ارسال: Sadie
  کمک در مورد کلاس ماتریس Nariman619 4 6,219 ۰۷-آبان-۱۳۸۸, ۱۰:۱۱:۳۴
آخرین ارسال: mehrdad372
  امگوریتم محاسبه ی اوقات شرعی در C rsh24493 1 2,748 ۳۰-اردیبهشت-۱۳۸۸, ۰۱:۱۳:۰۳
آخرین ارسال: ajlajlajl
  ماتریس عسگری 0 2,455 ۲۸-آذر-۱۳۸۷, ۲۰:۴۴:۵۲
آخرین ارسال: عسگری

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS