doolittle.cpp
来自「用doolittle分解法(非选主元)解用户输入的线性方程组。若无法解」· C++ 代码 · 共 53 行
CPP
53 行
#include <iostream.h>
double **doolittle1(double **p1,int n)
{
int k,i,j,t;
double **A=p1;
for(k=1;k<=n;k++)
{
double sum=0;
for (j=k;j<=n;j++)
{
for(t=1;t<k;t++)
sum+=A[k][t]*A[t][j];
A[k][j]=A[k][j]-sum;
}
sum=0;
for (i=k+1;i<=n&&k<n;i++)
{
for(t=1;t<k;t++)
sum+=A[i][t]*A[t][k];
if(!A[k][k])
return 0;
A[i][k]=(A[i][k]-sum)/A[k][k];
}
}
return A;
}
double *doolittle2(double **p1,double *p2,int n)
{
int i,t;
double **A=p1,*B=p2;
for(i=2;i<=n;i++)
{
double sum=0;
for(t=1;t<i;t++)
sum+=A[i][t]*B[t];
B[i]=B[i]-sum;
}
B[n]=B[n]/A[n][n];
for (i=n-1;i>0;i--)
{
double sum=0;
for (t=i+1;t<=n;t++)
sum+=A[i][t]*B[t];
B[i]=(B[i]-sum)/A[i][i];
}
return B;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?