《数值分析》实验报告Word下载.docx
- 文档编号:18216217
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:12
- 大小:115.30KB
《数值分析》实验报告Word下载.docx
《《数值分析》实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《《数值分析》实验报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
cmath>
iomanip>
fstream>
#defineMAXL100
usingnamespacestd;
doubleA[MAXL+10][MAXL+10];
//定义矩阵用于存放增广矩阵
intseat[MAXL+10];
//存放解得顺序
structpoint
{
intr,c;
};
voidInput(intn);
//输入n阶方程组的信息,并展示增广矩阵
pointBoss(intn,intij);
//在A[ij][ij]到A[n][n]的正方形中寻找全主元,并返回全主元的位置
voidSwap(intij,pointtemp,intn);
//将全主元移到当前左上角
voidOutput(intn);
//输出增广矩阵
voidAnswer(intn);
//利用回代法求解,并将结果储存在A[i][n+1]中
voidOutputAnswer(intn);
//按顺序输出结果
intmain()
freopen("
test.txt"
"
r"
stdin);
MyAnswer.txt"
w"
stdout);
intn,i,j,k,num;
doublekk;
pointbosspoint;
cout<
<
"
*****************************"
endl;
*实验(一二)全主元消元法*"
请输入方程组的阶(按0结束):
endl<
while(cin>
>
n&
&
n)
{
Input(n);
//输入n阶方程组的信息,并展示增广矩阵
for(i=1;
i<
=n;
i++)//初始化位置数组
seat[i]=i;
}
下面利用全主元消元法将系数矩阵化为上三角型"
for(k=1;
k<
=n-1;
k++)
第"
大步:
"
;
bosspoint=Boss(n,k);
//在A[k][k]到A[n][n]的正方形中寻找全主元,并返回全主元的位置
选取的全主元是:
A["
bosspoint.r<
]["
bosspoint.c<
]="
A[bosspoint.r][bosspoint.c]<
Swap(k,bosspoint,n);
//将全主元移到当前左上角
增广矩阵更新后如下:
Output(n);
num=0;
for(i=k+1;
i++)
num++;
kk=A[i][k]/A[k][k];
第["
num<
]小步:
(倍数为"
kk<
)"
A[i][k]=0;
for(j=k+1;
j<
=n+1;
j++)
A[i][j]=A[i][j]-A[k][j]*kk;
//输出增广矩阵
由上面的增广矩阵可知,系数矩阵已经化为上三角型,下面的工作是利用回代法求解"
Answer(n);
//利用回代法求解,并将结果储存在A[i][n+1]中
OutputAnswer(n);
//按顺序输出结果
}
voidInput(intn)
inti,j;
请输入方程组的系数矩阵:
i++)//输入系数矩阵
for(j=1;
cin>
A[i][j];
请输入方程组的常数项:
A[i][n+1];
方程组的增广矩阵如下:
setfill('
-'
)<
setw(17*n-9)<
-"
'
setw(8)<
A[i][j]<
return;
pointBoss(intn,intij)
intmaxi,maxj,i,j;
doublemaxone;
maxone=0;
for(i=ij;
for(j=ij;
if(fabs(A[i][j])>
maxone)
maxone=fabs(A[i][j]);
maxi=i;
maxj=j;
}
if(maxone)
pointtemp;
temp.r=maxi;
temp.c=maxj;
returntemp;
else
异常退出!
!
exit
(1);
voidSwap(intij,pointtemp,intn)
doubletmp;
inti,j,tempseat;
if(temp.r!
=ij)
tmp=A[ij][j];
A[ij][j]=A[temp.r][j];
A[temp.r][j]=tmp;
if(temp.c!
tmp=A[i][ij];
A[i][ij]=A[i][temp.c];
A[i][temp.c]=tmp;
tempseat=seat[ij];
seat[ij]=seat[temp.c];
seat[temp.c]=tempseat;
voidOutput(intn)
voidAnswer(intn)
if(A[n][n]==0)
A[n][n+1]=A[n][n+1]/A[n][n];
for(i=n-1;
i>
=1;
i--)
for(j=n;
j>
i;
j--)
A[i][n+1]=A[i][n+1]-A[i][j]*A[j][n+1];
A[i][n+1]=A[i][n+1]/A[i][i];
voidOutputAnswer(intn)
-------------------------------"
if(seat[j]==i)
X"
="
A[j][n+1]<
break;
4.结果分析:
全主元消元法,是在每次选取主元素时选取当前绝对值最大的。
根据一般性经验,在做除法运算时,分母的绝对值越大,舍入误差影响就越小。
全主元的做法可以得到较好的解。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值分析 数值 分析 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)