北航研究生数值分析作业第三题.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北航研究生数值分析作业第三题 一、算法设计方案: 1.使用牛顿迭代法,对原题中给出的,,()的11*21组分别求出原题中方程组的一组解,于是得到一组和对应的。 2.对于已求出的,使用分片二次代数插值法对原题中关于的数表进行插值得到。于是产生了z=f(x,y)的11*21个数值解。 3.从k=1开始逐渐增大k的值,并使用最小二乘法曲面拟合法对z=f(x,y)进行拟合,得到每次的。当时结束计算,输出拟合结果。 4.计算的值并输出结果,以观察逼近 的效果。其中。 二、源代码: #include math.h #include zuoye3.h #include stdio.h void main() { int i,j,k,r,s; //循环变量,其中k表示的是最小二乘法中x和y的阶数,不做他用 TUVW tuvw[11][21]; //对应于x,y的非线性方程的解t,u,v,w XY xy[11][21]; //x,y的值以及f(x,y),p(x,y)的值 XY star_xy[8][5]; //x*,y*的值以及f(x*,y*),p(x*,y*)的值 double B[11][MAX_K]; //关于x的系数矩阵 double G[21][MAX_K]; //关于y的系数矩阵 double U[11][21]; //要拟合的值 double C[MAX_K][MAX_K]; //拟合后得到的系数矩阵 double WuCha[MAX_K]; //k取不同值时对应的误差 FILE* fp=fopen(1.txt,w);//文件指针 for(i=0;i=10;i++) for(j=0;j=20;j++) { xy[i][j].x=0.08*i; //计算x xy[i][j].y=0.5+0.05*j;//计算y tuvw[i][j]=Resolve(xy[i][j].x,xy[i][j].y);//解方程得到t,u xy[i][j].f_xy=Function(tuvw[i][j].t,tuvw[i][j].u);//利用插值函数得到f(x,y) } for(k=0;kMAX_K;k++) //给定不同的k值,开始最小二乘拟合 { WuCha[k]=0; for(i=0;i11;i++) for(r=0;rk+1;r++) B[i][r]=pow(xy[i][r].x,r); //得到关于x的矩阵B for(i=0;i11;i++) for(j=0;j21;j++) U[i][j]=xy[i][j].f_xy; //得到要拟合的值矩阵U for(j=0;j21;j++) for(s=0;sk+1;s++) G[j][s]=pow(xy[s][j].y,s); //得到关于y的矩阵G Calculate(C,B,U,G,k); //计算系数矩阵C for(i=0;i=10;i++) for(j=0;j=20;j++) { xy[i][j].p_xy=P_nihe(C,xy[i][j].x,xy[i][j].y,k);//计算p(x,y) WuCha[k]+=pow(xy[i][j].p_xy-xy[i][j].f_xy,2);//计算误差 } if(WuCha[k]=1e-7) break;//误差是否满足要求 } //计算x*,y*,f(x*,y*),p(x*,y*) for(i=0;i8;i++) for(j=0;j5;j++) { star_xy[i][j].x=0.1*(i+1); star_xy[i][j].y=0.5+0.2*(j+1); tuvw[0][0]=Resolve(star_xy[i][j].x,star_xy[i][j].y); star_xy[i][j].f_xy=Function(tuvw[0][0].t,tuvw[0][0].u); star_xy[i][j].p_xy=P_nihe(C,star_xy[i][j].x,star_xy[i][j].y,k); } //输出Xi,Yj,f(Xi,Yj)到文件 fprintf(fp,\n-----|----------------------|----------------------|); fprintf(fp,----------------------|----------------

您可能关注的文档

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档