数值分析上机作业参考答案交14789.docx
- 文档编号:2407630
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:17
- 大小:109.27KB
数值分析上机作业参考答案交14789.docx
《数值分析上机作业参考答案交14789.docx》由会员分享,可在线阅读,更多相关《数值分析上机作业参考答案交14789.docx(17页珍藏版)》请在冰豆网上搜索。
数值分析上机作业参考答案交14789
数值分析上机作业
学院:
专业:
学号:
姓名
第一题
一、理论依据及算法
1:
Household法
(1)令A0=A,aij
(1)=aij,已知Ar-1即Ar-1=(aij(r))
(2)Sr=((air(r))2)1/2
(3)αr=Sr2+|a(r)r+1,r|Sr
ur=[0,0,a(r)r+1,r+Sign(a(r)r+1,r)Sr,a(r)r+2,r,…,anr(r)]T
(4)yr=Ar-1ur/αr
(5)kr=urTyr/2αr
(6)qr=yr-krur
(7)Ar=Ar-1-(qrurT+urqrT)r=(1,2,……n-2)
2:
超松弛法
其基本思想是在高斯方法已求出x(m),x(m-1)的基础上,组合新的序列,从而加快收敛速度。
其算式是:
xi(m)=(1-ω)xi(m-1)+ω(bijxi(m)+xj(m-1)+gi)
其中ω是超松弛因子,当ω>1时,可以加快收敛速度。
3:
主元消去法:
对矩阵作恰当的调整,选取绝对值尽量大的元素作为主元素。
然后把矩阵化为上三角阵,再进行回代,求出方程的解。
二、程序清单:
#include"math.h"
main()
{
inti,j,r,h;
doubles,sum,m,m1,n,k,u[9],q[9],y[9],w[9][9],
A[9][9]={
{12.38412,2.115237,-1.061074,1.112336,-0.113584,0.718719,1.742382,3.067813,-2.031743},{2.115237,19.141823,-3.125432,-1.012345,2.189736,1.563849,-0.784165,1.112348,3.123124},
{-1.061074,-3.125432,15.567914,3.123848,2.031454,1.836742,-1.056781,0.336993,-1.010103},
{1.112336,-1.012345,3.123848,27.108437,4.101011,-3.741856,2.101023,-0.71828,-0.037585},
{-0.113584,2.189736,2.031454,4.101011,19.897918,0.431637,-3.111223,2.121314,1.784317},
{0.718719,1.563849,1.836742,-3.741856,0.431637,9.789365,-0.103458,-1.103456,0.238417},
{1.742382,-0.784165,-1.056781,2.101023,-3.111223,-0.103458,14.713846,3.123789,-2.213474}
{3.067813,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.123789,30.719334,4.446782},
{-2.031743,3.123124,-1.010103,-0.037585,1.784317,0.238417,-2.213474,4.446782,40.0001}};
doubley1;
r=0;
while(r<7)
{/*控制循环次数*/
sum=0;
for(h=r+1;h<9;h++)/*求s和n的值*/
sum=sum+A[h][r]*A[h][r];
s=sqrt(sum);
n=s*(s+fabs(A[r+1][r]));
if(A[r+1][r]>=0)
y1=1;
else
y1=-1;
for(i=0;i u[i]=0; for(i=r+2;i<9;i++) u[i]=A[i][r]; u[r+1]=A[r+1][r]+y1*s; for(j=0;j<9;j++)/*求出y向量*/ { m=0; for(i=0;i<9;i++) m=m+A[i][j]*u[i]; y[j]=m/n; } for(i=0;i<9;i++)/*求k和q的值*/ { m1=0; for(j=0;j<9;j++) m1=m1+u[j]*y[j]; k=m1/(2*n); q[i]=y[i]-k*u[i]; } for(i=0;i<9;i++)/*求结果*/ for(j=0;j<9;j++) { w[i][j]=q[i]*u[j]+u[i]*q[j]; A[i][j]=A[i][j]-w[i][j]; } r++; } printf("转化后的矩阵为: B[9][9]=: \n");/*打印转化后的矩阵*/ for(i=0;i<=8;i++) { for(j=0;j<=8;j++) printf("%4.4f",A[i][j]); printf("\n"); } } 用超松弛法解方程组 #include"math.h" main() { inti,j,k,r,m; doublew=1.4,g1[9],B1[9][9],b[9][9],x[9]={0}, g[9]={2.1874369,33.992318,-25.173417,0.84671695,1.784317, -86.612343,1.1101230,4.719345,-5.6784392}, B[9][9]={{12.384120,-4.893077},{-4.893077,25.398416,6.494097}, {0,6.494097,20.611499,8.243925},{0,0,8.243925,23.422838,-13.880071}, {0,0,0,-13.880071,29.698278,4.534502},{0,0,0,0,4.534502,16.00617,4.881435}, {0,0,0,0,0,4.881435,26.013315,-4.503635},{0,0,0,0,0,0,-4.503635,21.254061,4.504498}, {0,0,0,0,0,0,0,4.504498,14.534122}}, e[9][9]={{1},{0,1},{0,0,1},{0,0,0,1},{0,0,0,0,1},{0,0,0,0,0,1},{0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,1},{0,0,0,0,0,0,0,0,1}}; i=0; j=0; while(i<9)/*求出矩阵b和g1的值*/ { while(j<9) { B1[i][j]=B[i][j]/B[i][i]; b[i][j]=e[i][j]-B1[i][j]; j++; } g1[i]=g[i]/B[i][i]; i++; } k=0; while(k<9)/*执行本算法*/ { x[0]=(1-w)*x[0]+w*(b[0][1]*x[1]+g1[0]); for(r=1;r<8;r++) x[r]=(1-w)*x[r]+w*(b[r][r-1]*x[r-1]+b[r][r+1]*x[r+1]+g1[r]); x[8]=(1-w)*x[8]+w*(b[8][7]*x[7]+g1[8]); k++; } for(m=0;m<9;m++)/*输出结果*/ printf("%f\n",x[m]); }_ 用消去法解方程组 #include"math.h" main() { inti,j,k,n; doublex[9],m[9],l[9],h[9], b[9]={2.1874369,33.992318,-25.173417,0.84671695,1.784317,-86.612343, 1.1101230,4.719345,-5.6784392}, B[9][9]={{12.3841,-4.8931,},{-4.8931,25.3984,6.4941,},{0,6.4941,20.6116,8.2440,}, {0,0,8.2440,23.4231,-13.8802,},{0,0,0,-13.8802,29.6980,4.5344,},{0,0,0,0,4.5344,16.0061, 4.8814,},{0,0,0,0,0,4.8814,26.0133,-4.5036,},{0,0,0,0,0,0,-4.5036,21.2541,4.5045},{0,0,0,0,0, 0,0,4.5045,14.5341}}; i=0; while(i<8)/*迭代次数*/ { l[i]=B[i+1][i]/B[i][i]; for(j=0;j<8;j++)/*求矩阵B和b的值*/ { h[j]=B[i][j]*l[i]; B[i+1][j]=B[i+1][j]-h[j]; } b[i+1]=b[i+1]-b[i]*l[i]; i++; } k=7; while(k>0)/*求出x的值*/ { x[8]=b[8]/B[8][8]; m[k]=b[k]-B[k][k+1]*x[k+1]; x[k]=m[k]/B[k][k]; m[0]=b[0]-B[0][1]*x[1]; x[0]=m[0]/B[0][0]; k--; } for(n=0;n<9;n++) printf("%f\n",x[n]); } 三、运行结果: 第一题 (1)结果为: B[9][9]= 12.3841–4.89310.00000.00000.00000.00000.00000.00000.0000 -4.893125.39846.49410.00000.00000.00000.00000.00000.0000 0.00006.494120.61168.24400.00000.00000.00000.00000.0000 0.00000.00008.244023.4231-13.88020.00000.00000.00000.0000 0.00000.00000.0000-13.880229.69804.53440.00000.0000.0000 0.00000.00000.00000.00004.534416.00614.88140.00000.0000 0.00000.00000.00000.00000.00004.881426.0133-4.50360.0000 0.00000.00000.00000.00000.00000.0000-4.503621.25414.5045 0.00000.00000.00000.00000.00000.00000.00004.504514.5341 第一题 (2)结果为: x[0]=1.073409x[1]=2.272579x[2]=-2.856599x[3]=2.292510x[4]=2.112159x[5]=-6.422562x[6]=1.357798x[7]=0.634258x[8]=-0.587041 第一题(3)结果为: x[0]=1.075802x[1]=2.275736x[2]=–2.855472x[3]=2.293009x[4]=2.112517x[5]=–6.42
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 上机 作业 参考答案 14789
![提示](https://static.bdocx.com/images/bang_tan.gif)