c语言做线性代数第六版答案,线性代数求解(C语言):
匆忙之下,幫朋友編了一道解線性代數的小程序,雖然很有局限性,但也倍感驕傲!(Ax=B。使用者自定義輸入一個3階方陣A和3*1的矩陣B,系統求出x。)見下:
#include
#include
int hls(float a[3][3]){
float i;
i=a[0][0]*a[1][1]*a[2][2] a[0][1]*a[2][0]*a[1][2]
a[0][2]*a[1][0]*a[2][1]-(a[0][2]*a[1][1]*a[2][0]
a[0][0]*a[2][1]*a[1][2] a[0][1]*a[1][0]*a[2][2]);
if(i==0.0) printf("無解");
return i;
}
void bsjz(float a[3][3],float A[3][3]){
A[0][0]=pow(-1,2)*(a[1][1]*a[2][2]-a[1][2]*a[2][1]);
A[1][0]=pow(-1,3)*(a[1][0]*a[2][2]-a[1][2]*a[2][0]);
A[2][0]=pow(-1,4)*(a[1][0]*a[2][1]-a[1][1]*a[2][0]);
A[0][1]=pow(-1,3)*(a[0][1]*a[2][2]-a[0][2]*a[2][1]);
A[1][1]=pow(-1,4)*(a[0][0]*a[2][2]-a[0][2]*a[2][0]);
A[2][1]=pow(-1,5)*(a[0][0]*a[2][1]-a[0][1]*a[2][0]);
A[0][2]=pow(-1,4)*(a[0][1]*a[1][2]-a[0][2]*a[1][1]);
A[1][2]=pow(-1,5)*(a[0][0]*a[1][2]-a[0][2]*a[1][0]);
A[2][2]=pow(-1,6)*(a[0][0]*a[1][1]-a[0][1]*a[1][0]);
}
void qj(float A[3][3],float b[3][1],float c[3][1]){
float sum;
int i,j,k;
for(i=0;i<3;i )
for(j=0;j<1;j ){
sum=A[i][0]*b[0][j];
for(k=1;k<3;k )
sum =A[i][k]*b[k][j];
c[i][j]=sum;
}
printf("結果為:(");
for(i=0;i<3;i )
for(j=0;j<1;j )
printf("%f ",c[i][j]);
printf(")T");
}
int main(){
float a[3][3],b[3][1],A[3][3],c[3][1],k;
printf("請輸入矩陣A:\n");
int i,j;
for(i=0;i<3;i )
for(j=0;j<3;j )
scanf("%f",&a[i][j]);
printf("請輸入矩陣B:\n");
for(i=0;i<3;i )
for(j=0;j<1;j )
scanf("%f",&b[i][j]);
k=hls(a);
bsjz(a,A);
for(i=0;i<3;i )
for(j=0;j<3;j )
A[i][j]=1/k*A[i][j];
qj(A,b,c);
}
總結
以上是生活随笔為你收集整理的c语言做线性代数第六版答案,线性代数求解(C语言):的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven配置项目依赖使用本地仓库的方法
- 下一篇: Samba远程代码执行漏洞(CVE-20