?? d1r5.cpp
字號:
#include "iostream.h"
#include "math.h"
#include "stdlib.h"
#include "iomanip.h"
#include "randnumber.h"
void main()
{
//program d1r5
//driver program for routine mprove
int i,j,n = 5;
int d=0;
double a[26], a1[6][6], a2[26], b[6], b1[6];
int indx[6];
CRandNumber rand;
//輸入已知的方程組的系數矩陣
a1[1][1]=1; a1[1][2]=2; a1[1][3]=3; a1[1][4]=4; a1[1][5]= 5;
a1[2][1]=2; a1[2][2]=3; a1[2][3]=4; a1[2][4]=5; a1[2][5]= 1;
a1[3][1]=1; a1[3][2]=1; a1[3][3]=1; a1[3][4]=1; a1[3][5]= 1;
a1[4][1]=4; a1[4][2]=5; a1[4][3]=1; a1[4][4]=2; a1[4][5]= 3;
a1[5][1]=5; a1[5][2]=1; a1[5][3]=2; a1[5][4]=3; a1[5][5]= 4;
//輸入已知的方程組的右端向量b
b[1] = 1;
b[2] = 1;
b[3] = 1;
b[4] = 1;
b[5] = 1;
for (i = 1; i<=n; i++)
{
for (j = 1; j<=n;j++)
{
a[(i-1)*n+j] = a1[i][j];
a2[(i-1)*n+j] = a1[i][j];
}
}
for (i = 1; i<=n; i++)
{
b1[i] = b[i];
}
ludcmp(a, n, indx, d);
lubksb(a, n, indx, b);
//輸出方程組的解b
cout<<endl;
cout<<"輸出方程組的解"<<endl;
cout.width(10); cout<<b[1]<<endl;
cout.width(10); cout<<b[2]<<endl;
cout.width(10); cout<<b[3]<<endl;
cout.width(10); cout<<b[4]<<endl;
cout.width(10); cout<<b[5]<<endl;
for (i = 1; i<=n; i++)
{
b[i] = b[i] * (1.0 + 0.2 * rand.fRandom());
}
//輸出干擾后的解b
cout<<endl;
cout<<"輸出干擾后的解"<<endl;
cout.width(12); cout<<b[1]<<endl;
cout.width(12); cout<<b[2]<<endl;
cout.width(12); cout<<b[3]<<endl;
cout.width(12); cout<<b[4]<<endl;
cout.width(12); cout<<b[5]<<endl;
mprove(a2, a, n, indx, b1, b);
//輸出改善后的解b
cout<<endl;
cout<<"輸出改善后的解"<<endl;
cout.width(10); cout<<b[1]<<endl;
cout.width(10); cout<<b[2]<<endl;
cout.width(10); cout<<b[3]<<endl;
cout.width(10); cout<<b[4]<<endl;
cout.width(10); cout<<b[5]<<endl;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -