PDA

نسخه کامل مشاهده نسخه کامل : ماتریس معکوس 3*3 با c++



u3f-exe
30-05-2010, 18:30
با سلام و خستهنباشید به تمامی افراد زحمتکش این انجمن!:11:
من می خوام معکوس ماتریس 3 در 3 رو بدست بیارو ولی یه خورده مشکل دارم،
اگه امکانش هست یک بزرگواری بکنید و سورسش رو برام ارسال کنید.
با تشکر فراوان :40::40::40::40::40::43:

femme
30-05-2010, 23:08
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

agent.27
28-06-2010, 22:42
#include<iostream.h>
#include<conio.h>
#include<math.h>
int main()
{
clrscr();
int i;
int array[3][3],copy[3][3];
cout<<"enter your array here" ;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
cin>>array[i][j];//enter your array
cout<<"your array is"<<endl;
for(i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<array[i][j]<<" ";
cout<<'\n';
}
for(i=0;i<3;i++)
for(int j=0;j<3;j++)
copy[j][i]=array[i][j];
cout<<"its reciprocal is" <<endl;
for(i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<copy[i][j]<<" ";
cout<<endl;
}
getch();

return 0;
}

agent.27
28-06-2010, 22:45
این یکی error نمیده.من فقط i رو int معرفی کردم.اصل کاری همون اولیه.

zohal_s
19-05-2011, 22:15
سلام خدمت شما
معکوس ماتریسی که در روند یک برنامه درایه هاش به طور لحظه ای تغییر می کند چطوری بدست می آید؟
با تشکر

razi865
13-05-2017, 13:38
#include ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) <math.h>
#include ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) <iomanip>
#include ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) <stdlib.h>
#include ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) <iostream>
#include ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) <conio.h>
using namespace std;
int p=1;
float det(int i1,int j1,int i4,int j4,int n,float x[10][10]);
int hams(int i1,int j1,int n,float x[10][10]);
int main(){
float x[10][10],det1,y[2][2]; int n,r=1;
cout<<"Enter n for Matrix n*n: "; cin>>n;
cout<<"\nEnter "<<n*n<<" number.\n";
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) cin>>x[i][j];
det1=det(1,1,n,n,n,x);
cout<<"Determinan x is : "<<det1<<endl;
cout<<"\nMatrix Reverse Is :"<<endl;
if(n==2) { y[1][1]=x[2][2]; y[2][2]=x[1][1]; y[1][2]=-x[1][2]; y[2][1]=-x[2][1];
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++) {
cout<<setw(8)<<setprecision(2)<<y[i][j]/det1;
if(j==2) cout<<endl;}}
else {
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) { cout<<setw(8)<<setprecision(2)<<(hams(j,i,n,x)/det1)*r; r*=-1;
if(j==n) cout<<endl;}}
return 0;}
/*in ghesmat determinane x ra hesab mikonad */
float det(int i1,int j1,int i4,int j4,int n,float x[10][10]) {
if(n==2) {int i2,i3,j2,j3; i2=i1; j2=j4; i3=i4; j3=j1; return x[i1][j1]*x[i4][j4]-x[i2][j2]*x[i3][j3];}
float sum=0;
for(int k=j1;k<=j4;k++) {
if(k==j1) sum+=p*x[i1][k]*det(i1+1,j1+1,i4,j4,i4-i1,x);
else if(k==j4) sum+=p*x[i1][k]*det(i1+1,j1,i4,j4-1,i4-i1,x);
else sum+=p*x[i1][k]*det(i1+1,j1,i4,j4,i4-i1,x);
p*=-1; }
return sum; }
/* in ghesmat hamsaze x ra hesab mikonad */
int hams(int i1,int j1,int n,float x[10][10]) {
float z[10][10]; int k=1,l=1,s;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) {
if(i!=i1 && j!=j1) { z[k][l]=x[i][j];
if(l==n-1) {++k; l=0;}
++l; } }
s=det(1,1,n-1,n-1,n-1,z);
return s;}