does n e body have any idea how to find the determinant of (A^100) ? |A^100| = ? thanks in advance
raju2005 · Jan 10, 2010 10:04 PM · 16,328 views
Below is the program in C++ to find the determinant of matrix #include<iostream.h> #include<conio.h> #include<math.h> #include<stdlib.h> typedef struct { int order; int **ar; //for a 2-d array }matrix; int create( matrix *a,int order) { if(order<1) return 0; //checks for invalid order a->order=order; a->ar= (int**) malloc(order*sizeof(int *)); //allocate space for each row if(!a->ar) return 0; //checks if memory is allocated for(int i=0;i<order;i++) { a->ar[i]=(int*) malloc(order*sizeof(int)); if(!a->ar) return 0; } return 1; } void input(matrix *a ) { int i,j; for( i = 0; i < a->order; i++ ) for( j = 0; j < a->order; j++ ) { printf("Enter element at ( %d, %d ): ", i+1, j+1 ); scanf("%d", &a->ar[i][j] ); } } void display( matrix *a ) { int i,j; if( a->order < 1 ) return; for( i = 0; i < a->order; i++ ) { for( j = 0; j < a->order; j++ ) printf("%5d ", a->ar[i][j] ); printf("\n"); } } int calcminor(matrix *a, matrix *minor, int row,int column) { int p,q; if(a->order<=1||row>=a->order||column>=a->order) return 0; if(!create(minor,a->order-1)) return 0; p=q=0; for(int i=0;i<a->order;i++) if(i!=row) { q=0; for(int j=0;j<a->order;j++) { if(j!=column) minor->ar[p][q]=a->ar[i][j]; q++; } p++; } return 1; } void destroy(matrix *a) { if(a->order<1) return; for(int i=0;i<a->order;i++) free(a->ar[i]); // free space for the column free(a->ar); //free memory for rows a->order=0; } int calcdet(matrix *a) { int result=0; matrix minor; if(a->order<1) return 0; if(a->order==1) // stopping condition return a->ar[0][0]; //returns 0,0 element for(int i=0;i<a->order;i++) { if(!calcminor(a,&minor,0,i)) return 0; result+=( pow(-1,i)*a->ar[0][i]*calcdet(&minor)); destroy(&minor); } return result; } int main() { matrix a; int order; cout<<"\nEnter The Order of The Square Matrix :"; cin>>order; if(!create(&a,order)) { cout<<"\n The Matrix Could Not Be Created !!!! "; getch(); return 0; } input(&a); cout<<"The Matrix Is :\n"; display(&a); cout<<"\n The Determinant Of The Matrix Is : "<<calcdet(&a); getch(); return 0; }
salam_namaste · Jan 10, 2010 10:12 PM
You are one hell of a nerd.
Black_snow · Jan 10, 2010 10:34 PM
@salam namaste, Please don't hesitate to provide the source from next time.... http://www.dreamincode.net/cod...
full_maya · Jan 10, 2010 11:41 PM
thanks full_maya..
sac-town1 · Jan 11, 2010 12:13 AM
Sorry guy's, for not providing the source. Also don't be so offensive....i never mentioned abt writing the program myself (that also in C++...i hate this language)just trying to help raju2005.
salam_namaste · Jan 11, 2010 1:18 AM
thanks salam namaste... i appreciate it. actually |A^100| = (|A|)^100 so u can just find the determinant of A and then power it by 100. Seems like MATLAB is way easier for matrix and other calculation compared to other prog lang.
raju2005 · Jan 11, 2010 11:48 AM
This conversation is preserved exactly as it was on the original Sajha.com and can't accept new replies.
Start a New Discussion