📄 3matrx.cpp
字号:
#include "myinclude.h"
#include <math.h>
#define fenmu 0.00001//分母要求
#define JZ 4 //矩阵的维数
typedef float FL;
int main()
{
FL a[3]={1, 1, 1};//下对角线a
FL b[4]={4, 4, 4, 4};//对角线b
FL c[3]={2, 2, 2};//上对角线c
FL f[4]={1, 2, 3, 4};//y值
//b[0]=b[0]; //l1=b1
if (fabs(b[0])>fenmu)
{
f[0]=f[0]/b[0];//y1=f1/l1
c[0]=c[0]/b[0];//u1=c1/l1
cout<<"l"<<"\t\t"<<"y"<<"\t\t"<<"u"<<endl;
cout<<b[0]<<"\t\t"<<f[0]<<"\t\t"<<c[0]<<endl;
}
else
{
cout<<"分母不符合要求"<<endl;
return 0;
}
for (int i=1;i<JZ-1;i++)
{
//数组中的a[i] 相当于公式中的 a(i+2),因为a的下标由2开始;
b[i]=b[i]-a[i-1]*c[i-1];//li=bi-ai*u(i-1)
if (fabs(b[i])>fenmu)
{
f[i]=(f[i]-a[i-1]*f[i-1])/b[i];//yi=(fi-ai*y(i-1))/li
c[i]=c[i]/b[i];//ui=ci/li
cout<<b[i]<<"\t\t"<<f[i]<<"\t\t"<<c[i]<<endl;
}
else
{
cout<<"分母不符合要求"<<endl;
return 0;
}
}//for结束
///////////////////////////第N次求解///////////////////////
b[i]=b[i]-a[i-1]*c[i-1];
if (fabs(b[i])>fenmu)
{
f[i]=(f[i]-a[i-1]*f[i-1])/b[i];
cout<<b[i]<<"\t\t"<<f[i]<<"\t\t"<<endl<<endl;
}
else
{
cout<<"分母不符合要求"<<endl;
return 0;
}
//回代过程
cout<<"x["<<i+1<<"]="<<f[i]<<endl;
for (int j=JZ-2;j>=0;j--)
{
f[j]=f[j]-c[j]*f[j+1];
cout<<"x["<<(j+1)<<"]="<<f[j]<<endl;
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -