急求一个C++解矩阵的程序

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:59:46
有一个矩阵方程a11 a12 a13 u1 b1
a21 a22 a23 X u2 b2
a31 a32 a33 u3 b3
最后要求出u1 u2 u3的值。

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <math.h>
#define N 4 /*这个是四元方程组,你自己改一下*/
main()
{
int i;
double A[N*N]={1,2,3,4,1,4,2,-8,1,-1,4,1,1,3,5,2},b[N]={14,-17,-2,8},x[N]; /*改这里的数据*/
void gauss_solve(int n,double A[],double x[],double b[]);

gauss_solve(N,A,x,b);
for (i=0;i<N;i++)
printf("x[%d]=%.5lf\n",i,x[i]);
getch();
}

void gauss_solve(int n,double A[],double x[],double b[])
{
int i,j,k,r;
double max;
for (k=0;k<n-1;k++)
{
max=fabs(A[k*n+k]); /*find maxmum*/
r=k;
for (i=k+1;i<n-1;i++)
if (max<fabs(A[i*n+i]))
{
max=fabs(A[i*n+i]);
r=i;
}
if (r!=k)
for (i=0;i<n;i++) /*change array:A[k]&A[r] */
{
max=A[k*n+i];
A[k*n+i]=A[r*n+i]