雅克比迭代法.docx
- 文档编号:2159709
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:14
- 大小:67.93KB
雅克比迭代法.docx
《雅克比迭代法.docx》由会员分享,可在线阅读,更多相关《雅克比迭代法.docx(14页珍藏版)》请在冰豆网上搜索。
雅克比迭代法
实验项目名称
运用插值法
实验成绩
实验者
江骏
专业班级
软件0803
组别
同组者
实验日期
年月日
第一部分:
实验分析与设计
一、实验内容描述
⑴研究用Jacobi迭代法与Gauss-Seidel迭代法解下列方程组Ax=b的收敛性,通过上机计算,验证分析是
否正确,并观察右端项对迭代收敛是否有影响,比较两法的收敛速度
⑵松弛因子对超松弛因子迭代法收敛速度的影响,要求对不同的阶数进行迭代
⑶观察欧拉显式方法的收敛性
⑷观察欧拉隐式方法的收敛性
⑸写出实验报告
二、实验基本原理与设计
1Jacobi迭代法:
刀1=1玄耳xj=b(i=1,2,…,n)
2Gauss-Seidel迭代法:
Xi(K+1)=[bi-Ei-1j=1Xj(k+1)-E爲+1Xj(k)]/aij
3超松弛因子迭代法:
Dx(k+1)=Dx(k)+Ex(k+1)+Fx(k)+b-Dx⑹
X(k+1)=x(k)+D-1R
4三角分解法:
利用三角矩阵将方程组化解为两个方程组,从而简化运算。
5欧拉显式方法:
在任意节点tn+1=to+(n+1)h处,u(tn+1)的近似值由Euler公式给出:
Un+1=Un+hf(tn,un)
6欧拉隐式方法:
改进的Euler公式yn+1=yn+hf(xn,yn)
h_
yn+1=yn+—[f(xn,yn)+f(xn+1,yn+1)]
2
三、主要仪器设备及耗材
WindowsXpVC++
第二部分:
实验调试与结果分析
、调试过程
①Jacobi迭代法
#inelude<>
#defineN10
floatABS(float,float);
int
main(void)
{
inti,j,n;
floata[N][N],b[N];
floatx[N],y[N];
floate,total;
printf("Pleaseinputthedimension:
”);
scanf("%d",&n);
printf("PleaseinputtheCoefficientMatrix:
");
for(i=0;i for(j=0;j scanf("%f",&a[i][j]); printf("PleaseinputtheVector: "); for(i=0;i scanf(”%f",&b[i]); printf("Pleaseinputtheinitialvector: "); for(i=0;i scanf("%f",&x[i]); do { for(i=0;i total=; for(j=0;j { if(i! =j) total+=a[i][j]*x[j]; } y[i]=(b[i]-total)/a[i][i]; } e=; for(j=0;j e=e+ABS(x[j],y[j]); printf("%f\n",e); for(i=0;i x[i]=y[i]; } while(e>; for(i=0;i printf("x%d=%f\t",i,x[i]); printf("\n"); return0; } floatABS(floatx,floaty) { inttotal; if(x elsetotal=x-y; returntotal; 结果: 流程图: ②Gauss-Seidel迭代法 #include<> intmain() { doublex[3]={0,0,0}; doublea[3][3]={6,2,-1,1,4,-2,-3,1,4}; doubley[3]={-3,2,4}; 宀宀 M=ur)上u_」d 宀-(Ex--J_%=£u_」d 宀sx*_m=p¥=><(++OVOUD」O4 兰6丄X T+ov一O.II)」O4 )(—puno」)①-ZM宀宀兰曰殳日三亨-0J'lr"H_m二p (++OVOUD」O4三巨e二M丄二6T+ov一O.II)」O4: =? lnHpuno二u--56-55PQqnop ③超松弛因子迭代法 #inelude #inelude usingnamespaeestd; float*one_array_malloc(intn); float**two_array_malloc(intm,intn);floatmatrix_category(float*x,intn); intmain(){constintMAX=100; intn,i,j,k;float**a;float*x_0; float*x_k; floatprecision;floatw; cout<<"输入精度e: "; cin>>precision; II. cout< cin»n;a=two_array_malloc(n,n+1); cout«endl<<"输入增广矩阵的各值: \n"; for(i=0;i { for(j=0;j {cin>>a[i][j];} } x_0=one_array_malloc(n); cout< \n"; for(i=0;i {cin>>x_0[i];} x_k=one_array_malloc(n); cout<<"输入松弛因子w(1 \n"; cin>>w; floattemp; for(k=0;k {for(i=0;i {temp=0; for(j=0;j {temp=temp+a[i][j]*x_k[j];} x_k[i]=a[i][n]-temp; temp=0; for(j=i+1;j {temp=temp+a[i][j]*x_0[j];} x_k[i]=(x_k[i]-temp)/a[i][i]; xk[i]=(1-w)*x0[i]+w*xk[i];} for(i=0;i {x_O[i]=x_k[i]-x_O[i];} if(matrix_category(x_0,n)vprecision) {break;} else{for(i=0;i {x_0[i]=x_k[i];} } } if(MAX==k) {cout<<"迭代不收敛\n";} cout<<"迭代次数为: "< cout<<"解向量为: \n"; for(i=0;i {cout<<"x"< "< } float*one_array_malloc(intn) {float*a; a=(float*)malloc(sizeof(float)*n); returna; } float**two_array_malloc(intm,intn) {float**a; inti; a=(float**)malloc(m*sizeof(float*)); for(i=0;i {a[i]=(float*)malloc(n*sizeof(float));} returna; floatmatrix_category(float*x,intn){inti;floattemp=0;for(i=0;i returntemp; } 结果: 流程图: ④三角分解法 #include usingnamespacestd; intmain() { constintN=100; staticdoublea[N][N],b[N]; inti,j,k,num,p; doublem,t,q; cout<<"请输入矩阵阶数: "; cin»num; ."< "< for(i=1;i<=num;i++) { for(j=1;j<=num;j++) { cout<<"a["< cin>>a[i][j]; } } cout<<"nowinputthematrixb[i],i=1…"< "< for(i=1;i<=num;i++) { cout<<"b["< cin>>b[i]; } t=0; for(i=1;i<=num;i++) { m=0; for(j=i;j<=num+1;j++) for(k=1;k<=i-1;k++) m=m+a[i][k]*a[k][j]; a[i][j]=a[i][j]-m; } for(j=i+1;j<=num;j++) { for(k=1;k<=i-1;k++) t=t+a[j][k]*a[k][i];a[j][i]=(a[j][i]-t)/a[i][i]; } } a[num][num+1]=a[num][num+1]/a[num][num]; q=0; for(k=num-1;k>=1;k--) { for(j=k+1;j<=num;j++) q=q+a[k][j]*a[j][num+1]; a[k][num+1]=(a[k][num+1]-q)/a[k][k]; } cout<<"方程组的解为: "; for(i=1;i<=num;i++) cout<<"x["< } 结果: 流程图: 开始 for(k=1;k<=i-1;k++)m=m+a[i][k]*a[k][j]; a[k][num+1]=(a[k][ 5欧拉显式方法 #inelude<> #inelude<> #inelude<> doublef(doublex,doubley) { returnx*pow(y,3); } intmain() { inti; doublex,y,y0=1,dx=; doublexx[11]; doubleeuler[11],euler_2[11]; doubletemp; doublef(doublex,double
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 迭代法