1 / 8
文档名称:

实验6+最速下降法+2.doc

格式:doc   大小:25KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验6+最速下降法+2.doc

上传人:文库旗舰店 2019/11/19 文件大小:25 KB

下载得到文件列表

实验6+最速下降法+2.doc

相关文档

文档介绍

文档介绍:《数值分析》:最速下降法二、实验目的:熟悉求解线性方程组的共轭梯度法。三、实验要求(1)按照题目要求完成实验内容(2)写出相应的C语言程序(3)给出实验结果(4)写出相应的实验报告四、,保留5位有效数字(err=1e-5),其中A=[2-1-1;-120;-101]; b=[0;1;0]。,初始,最大迭代次数N=25。:用共轭梯度法求解上面的方程。:#include<>#include<>intmain(){intn=3,i,k,j,mm=1000;//最大迭代次数mm;floatt,rar,rr,rr_rar,ari,x[mm][n],r[n],dx[n],dx_norm=1,err=1e-5,w=;//精度errfloata[][3]={2,-1,-1,-1,2,0,-1,0,1};floatb[3]={0,1,0};printf("(a[%d][%d],b[%d][1])=\n",n,n,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%",a[i][j]);printf("%",b[i]);printf("\n");}for(i=0;i<n;i++)x[0][i]=0;printf("最大迭代次数=%d,\n精度=%,\nax=b的解x*的转置=\n",mm,err);for(k=0;dx_norm>pow(err,2)&&k<=mm;k++){//dx_norm表示(x[k+1]-x[k])二范数dx_norm=0;rr=0;rar=0;ari=0;for(i=0;i<n;i++){t=0;for(j=0;j<n;j++)t+=a[i][j]*x[k][j];r[i]=b[i]-t;rr+=pow(r[i],2);//r'*r}//r(k)for(i=0;i<n;i++){for(j=0;j<n;j++)ari+=a[i][j]*r[j];rar+=r[i]*ari;}//r'*a*rrr_rar=rr/rar;for(i=0;i<n;i++){dx[i]=rr_rar*r[i];x[k+1][i]=x[k][i]+dx[i];dx_norm+=pow(dx[i],2);printf("% ",x[k+1][i]);}//dx,dx_norm,x(k+1)printf("  %d\n",k+1);}printf("\n");}结果:(a[3][3],b[3][1])=-- - - =1000,精度=1e-005时,ax=b的解x*的转置=                   3。。。。。。