二维数组变成上三角矩阵,从后面求xn-1一直求到x0即可
简单模拟
注意事项:
(1)注意分母不为0的情况
(2)化成上三角过程中,如果已经化为0的就不用再进行运算了,continue
(3)最好一步求解最后结果,避免提前约分
以以下线性方程组为例:
x1+x2-4*x4=1
-x1+x2+x3+3*x4=-2
x1+3*x2+5*x3-4*x4=-4
x2+2*x3-x4=-2
program:
#include<iostream>
#include<math.h>
#include<stdio.h>
using namespace std;
double a[4][5];
double x[4];
int n=4;
int main()
{
a[0][0]=1,a[0][1]=1,a[0][2]=0,a[0][3]=4,a[0][4]=1;
a[1][0]=-1,a[1][1]=1,a[1][2]=1,a[1][3]=3,a[1][4]=-2;
a[2][0]=1,a[2][1]=3,a[2][2]=5,a[2][3]=-4,a[2][4]=-4;
a[3][0]=0,a[3][1]=1,a[3][2]=2,a[3][3]=-1,a[3][4]=-2;
double tmp;
for(int i=1;i<n;i++)//i:1,2,3 (化成上三角)
{
for(int j=0;j<i;j++)//j:0,1,2
{
if(fabs(a[i][j])<=0.00