ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:222.50KB ,
资源ID:6988923      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6988923.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(北航数值分析第三次大作业.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

北航数值分析第三次大作业.doc

1、 《数值分析》第三次大作业 姓名:袁二凯 学号:SY0917145 联系方式:13488854452 642101136@ 2011年12月8日 一、 算法的设计方案: (一)、总体方案设计: (1)解非线性方程组。将给定的当作已知量代入题目给定的非线性方程组,求得与相对应的数组t[i][j],u[i][j]。 (2)分片二次代数插值。通过分片二次代数插值运算,得到与数组t[11][21],u[11][21]]对应的数组z[11

2、][21],得到二元函数z=。 (3)曲面拟合。利用x[i],y[j],z[11][21]建立二维函数表,再根据精度的要求选择适当k值,并得到曲面拟合的系数矩阵C[r][s]。 (4)观察和的逼近效果。观察逼近效果只需要重复上面(1)和(2)的过程,得到与新的插值节点对应的,再与对应的比较即可,这里求解可以直接使用(3)中的C[r][s]和k。 (二)具体算法设计: (1)解非线性方程组 牛顿法解方程组的解,可采用如下算法: 1)在附近选取,给定精度水平和最大迭代次数M。 2)对于执行 ① 计算和。 ② 求解关于的线性方程组 ③ 若,则取,并停止计算;

3、否则转④。 ④ 计算。 ⑤ 若,则继续,否则,输出M次迭代不成功的信息,并停止计算。 (2)分片双二次插值 给定已知数表以及需要插值的节点,进行分片二次插值的算法: 设已知数表中的点为: ,需要插值的节点为。 1) 根据选择插值节点: 若或,插值节点对应取或, 若或,插值节点对应取或。 若 则选择为插值节点。 2)计算 插值多项式的公式为: 注:本步进行插值运算的是,利用与的对应关系就可以得到与的对应关系。 (3)曲面拟合 根据插值得到的数表进行曲面拟合的过程

4、 1) 根据拟合节点和基底函数写出矩阵B和G: 2) 计算 。 在这里,为了简化计算和编程、避免矩阵求逆,记: , 对上面两式进行变形,得到如下两个线性方程组: , 通过解上述两个线性方程组,则有: 3) 对于每一个, 。 4) 拟合需要达到的精度条件为: 。 其中对应着插值得到的数表中的值。 5) 让k逐步增加,每一次重复执行以上几步,直到 成立。此时的k值就是要求解最小的k。 二、 源程序: #include #include

5、eam> #include #include #include #include #define Epsilon1 1e-12 /*解线性方程组时近似解向量的精度*/ #define M 200 /*解线性方程组时的最大迭代次数*/ #define N 10 /*求解迭代次数时假设的k的最大值,用于定义包含k的存储空间*/ void Newton(); /*牛顿法求解非线性方程组子程序*/ void fpeccz(); /*分片二次代数插值子程序*/ void qm

6、nh(); /*曲面拟合子程序*/ void duibi(); /*对比𝑓和p逼近效果的子程序*/ double x[11],y[21],t[11][21],u[11][21];/*定义全局变量*/ double z[11][21],C[10][10]; double kz; void Newton(double x[11],double y[21])/*牛顿法求解非线性方程组子程序*/ { double X[4],dx[4],F[4],dF[4][4],temp,m,fx,fX; int i,j,k,l,p,ik,n; f

7、or(i=0;i<=10;i++) { for(j=0;j<=20;j++) { X[0]=1; /*选取迭代初始向量,四个分别代表t,u,v,w*/ X[1]=1; X[2]=1; X[3]=1; n=0; loop1:{ F[0]=0.5*cos(X[0])+X[1]+X[2]+X[3]-x[i]-2.67; F[1]=X[0]+0.5*sin(X[1])+X[2]+X[3]-y[j]-1.07;

8、 F[2]=0.5*X[0]+X[1]+cos(X[2])+X[3]-x[i]-3.74; F[3]=X[0]+0.5*X[1]+X[2]+sin(X[3])-y[j]-0.79; /*求解F(x)*/ dF[0][0]=-0.5*sin(X[0]); /*求解F'(x)*/ dF[0][1]=1; dF[0][2]=1; dF[0][3]=1; dF[1][0]=1; dF[1][1]=0.5*cos(X[1]);

9、 dF[1][2]=1; dF[1][3]=1; dF[2][0]=0.5; dF[2][1]=1; dF[2][2]=-sin(X[2]); dF[2][3]=1; dF[3][0]=1; dF[3][1]=0.5; dF[3][2]=1; dF[3][3]=cos(X[3]); /*高斯选主元消去法求解Δx*/ for(k=0;k<3;k++) { i

10、k=k; for(l=k;l<=3;l++) {if(dF[ik][k]

11、 m=dF[l][k]/dF[k][k]; F[l]=F[l]-m*F[k]; for(p=k+1;p<=3;p++) {dF[l][p]=dF[l][p]-m*dF[k][p];} } /*消去过程*/ } dx[3]=-F[3]/dF[3][3]; for(k=2;k>=0;k--) { temp=0; for(l=k+1;l<=3;l++) {temp=temp+dF[k][l]*dx[l]/dF[k][k];} dx[k]=-F[k]/dF[k][k]-temp; } t

12、emp=0; for(l=0;l<=3;l++) /*求解矩阵范数,用无穷范数*/ { if(temp

13、 t[i][j]=X[0]; u[i][j]=X[1]; goto loop4;} else { for(l=0;l<=3;l++) {X[l]=X[l]+dx[l];} n=n+1; goto loop3;} } loop3:{if(n

14、 void fpeccz(double t[11][21],double u[11][21])/*分片二次代数插值子程序*/ { int s[11][21],r[11][21]; int i,j,i1,j1,m; double z0[6][6]={{-0.5,-0.34,0.14,0.94,2.06,3.5}, {-0.42,-0.5,-0.26,0.3,1.18,2.38}, {-0.18,-0.5,-0.5,-0.18,0.46,1.42},

15、 {0.22,-0.34,-0.58,-0.5,-0.1,0.62}, {0.78,-0.02,-0.5,-0.66,-0.5,-0.02}, {1.5,0.46,-0.26,-0.66,-0.74,-0.5}}; double t0[6]={0,0.2,0.4,0.6,0.8,1.0}; double u0[6]={0,0.4,0.8,1.2,1.6,2.0}; double temp1,temp2; for(i=0;i<=10;i++) /*选取插值节点*/

16、 { for(j=0;j<=20;j++) { if(t[i][j]<=0.3) s[i][j]=1; else if(t[i][j]>0.7) s[i][j]=4; else { for(m=2;m<=3;m++) { if((t[i][j]>0.2*m-0.1)&&(t[i][j]<=0.2*m+0.1)) { s[i][j]=m;

17、 } } } } } for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { if(u[i][j]<=0.6) r[i][j]=1; else if(u[i][j]>1.4) r[i][j]=4; else { for(m=2;m<=3;m++) { if((u[i][j

18、]>0.4*m-0.2)&&(u[i][j]<=0.4*m+0.2)) { r[i][j]=m; } } } } } for(i=0;i<=10;i++) /*插值运算*/ { for(j=0;j<=20;j++) { z[i][j]=0; for(i1=s[i][j]-1;i1<=s[i][j]+1;i1++)

19、 { for(j1=r[i][j]-1;j1<=r[i][j]+1;j1++) { temp1=1.0; for(m=s[i][j]-1;m<=s[i][j]+1;m++) { if(m!=i1) temp1*=(t[i][j]-t0[m])/(t0[i1]-t0[m]); } temp2=1.0; for(m=r[i][j]-1;m<=r[i][j]+1;m++)

20、 { if(m!=j1) temp2*=(u[i][j]-u0[m])/(u0[j1]-u0[m]); } z[i][j]+=temp1*temp2*z0[i1][j1]; } } } } } void qmnh() /*曲面拟合子程序*/ { int i,j,k,m,l,i1,j1,ik; double A[N][21],D[N][21],B[11][N],Bt[N][11],BtB[N][N],BtU[N][21]

21、BtB1[N][N]; double G[21][N],Gt[N][21],GtG[N][N],GtG1[N][N]; double sigma,p[11][21],temp,q; printf("选择过程的k和sigma值:\n"); k=0; sigma=1; /*选取初值,使循环开始*/ /*求解系数矩阵Crs*/ while(sigma>1e-7) { for(i=0;i<=10;i++) { for(j=0;j<=k;j++) { B[i][j]=p

22、ow(x[i],j); Bt[j][i]=B[i][j]; } } for(i=0;i<=k;i++) { for(j=0;j<=k;j++) { temp=0; for(l=0;l<=10;l++) { temp+=Bt[i][l]*B[l][j]; } BtB[i][j]=temp; } } for(i=0;i<=k;i++) {

23、 for(j=0;j<=20;j++) { temp=0; for(l=0;l<=10;l++) { temp+=Bt[i][l]*z[l][j]; } BtU[i][j]=temp; } } for(l=0;l<=20;l++) { for(i=0;i<=k;i++) { for(j=0;j<=k;j++) { BtB1[i][j]=BtB[i][j]; }

24、 } for(m=0;m<=k-1;m++) { ik=m; for(i=m;i<=k-1;i++) { if(fabs(BtB1[i][m])

25、 temp=BtB1[m][i]; BtB1[m][i]=BtB1[ik][i]; BtB1[ik][i]=temp; } temp=BtU[m][l]; BtU[m][l]=BtU[ik][l]; BtU[ik][l]=temp; } for(i=m+1;i<=k;i++) { q=BtB1

26、[i][m]/BtB1[m][m]; for(j=m;j<=k;j++) { BtB1[i][j]=BtB1[i][j]-q*BtB1[m][j]; } BtU[i][l]=BtU[i][l]-q*BtU[m][l]; } } A[k][l]=BtU[k][l]/BtB1[k][k]; for(m=k-1;m>=0;m--) { temp=0; for(i=m+1;i<=k;i++)

27、 { temp+=A[i][l]*BtB1[m][i]; } A[m][l]=(BtU[m][l]-temp)/BtB1[m][m]; } } for(i=0;i<=20;i++) { for(j=0;j<=k;j++) { G[i][j]=pow(y[i],j); Gt[j][i]=G[i][j]; } } for(i=0;i<=k;i++) { for(j=0;j<=k;j++)

28、 { temp=0; for(m=0;m<=20;m++) { temp+=Gt[i][m]*G[m][j]; } GtG[i][j]=temp; } } for(l=0;l<=20;l++) { for(i=0;i<=k;i++) { for(j=0;j<=k;j++) { GtG1[i][j]=GtG[i][j]; } }

29、 for(m=0;m<=k-1;m++) { ik=m; for(i=m;i<=k-1;i++) { if(fabs(GtG1[i][m])

30、1[m][i]; GtG1[m][i]=GtG1[ik][i]; GtG1[ik][i]=temp; } temp=Gt[m][l]; Gt[m][l]=Gt[ik][l]; Gt[ik][l]=temp; } for(i=m+1;i<=k;i++) { q=GtG1[i][m]/GtG1[m][m];

31、 for(j=m;j<=k;j++) { GtG1[i][j]=GtG1[i][j]-q*GtG1[m][j]; } Gt[i][l]=Gt[i][l]-q*Gt[m][l]; } } D[k][l]=Gt[k][l]/GtG1[k][k]; for(m=k-1;m>=0;m--) { temp=0; for(i=m+1;i<=k;i++) { temp+=D[i][l]*GtG1[m][i];

32、} D[m][l]=(Gt[m][l]-temp)/GtG1[m][m]; } } for(i=0;i<=k;i++) { for(j=0;j<=k;j++) { temp=0; for(m=0;m<=20;m++) { temp+=A[i][m]*D[j][m]; } C[i][j]=temp; } }

33、 sigma=0;/*归零,开始计算sigma值*/ for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { p[i][j]=0; for(i1=0;i1<=k;i1++) { for(j1=0;j1<=k;j1++) { p[i][j]+=C[i1][j1]*pow(x[i],i1)*pow(y[j],j1); }

34、 } sigma+=pow(p[i][j]-z[i][j],2); } } printf("k=%d sigma=%.12e\n",k,sigma); k=k+1; } k--; printf("达到精度要求时的k和sigma值:\n"); printf("k=%d sigma=%.12e\n",k,sigma); kz=k; /*定义为全局变量,便于duibi()调用*/ } void duibi() /*对比w

35、891;和p逼近效果的子程序*/ { int i,j,i1,j1; double p[8][5]; for(i=0;i<=7;i++) { for(j=0;j<=4;j++) { x[i]=0.1*(i+1); y[j]=0.5+0.2*(j+1);}} /*重新输入节点*/ Newton(x,y); fpeccz(t,u); /*求解𝑓(x*,y*)*/ for(i=0;i<=7;i++) /*求解p(x*,y*)*/ { fo

36、r(j=0;j<=4;j++) { p[i][j]=0; for(i1=0;i1<=kz;i1++) { for(j1=0;j1<=kz;j1++) { p[i][j]+=C[i1][j1]*pow(x[i],i1)*pow(y[j],j1); } } printf("x[%d]=%.6f y[%d]=%.6f\n",i+1,x[i],j+1,y[j]); printf("f(x[%d]

37、y[%d])=%.12e\n",i+1,j+1,z[i][j]); printf("p(x[%d],y[%d])=%.12e\n",i+1,j+1,p[i][j]); printf("σ=%.12e\n",z[i][j]-p[i][j]); }/*数表xi*,yi*,𝑓 (xi*,yi*),p(xi*,yi*)*/ } } void main() { int i,j; for(i=0;i<=10;i++) { for(j=0;j<=20;j++)

38、 { x[i]=0.08*i; y[j]=0.5+0.05*j;}} /*输入节点*/ Newton(x,y); fpeccz(t,u); for(i=0;i<=10;i++) { for(j=0;j<=20;j++) { printf("x[%d]=%.6f y[%d]=%.6f z[%d][%d]=%.12e \n",i,x[i],j,y[j],i,j,z[i][j]); }} /*数表:xi,yi, 𝑓 (xi,yi)*/ qmnh(); f

39、or(i=0;i<=kz;i++) { for(j=0;j<=kz;j++) { printf("C[%d][%d]=%.12e \n",i,j,C[i][j]); }}/*数表:C[r][s]*/ duibi(); } 三、运行结果输出 1、数表数表:xi,yi,𝑓(xi,yi) x[0]=0.000000 y[0]=0.500000 z[0][0]=4.465040184807e-001 x[0]=0.000000 y[1]=0.550000 z[0][1]=3.246

40、832629277e-001 x[0]=0.000000 y[2]=0.600000 z[0][2]=2.101596866827e-001 x[0]=0.000000 y[3]=0.650000 z[0][3]=1.030436083160e-001 x[0]=0.000000 y[4]=0.700000 z[0][4]=3.401895562675e-003 x[0]=0.000000 y[5]=0.750000 z[0][5]=-8.873581363800e-002 x[0]=0.000000 y[6]=0.800000 z[0][6]

41、1.733716327497e-001 x[0]=0.000000 y[7]=0.850000 z[0][7]=-2.505346114666e-001 x[0]=0.000000 y[8]=0.900000 z[0][8]=-3.202765063876e-001 x[0]=0.000000 y[9]=0.950000 z[0][9]=-3.826680661097e-001 x[0]=0.000000 y[10]=1.000000 z[0][10]=-4.377957667384e-001 x[0]=0.000000 y[11]=1.050

42、000 z[0][11]=-4.857589414438e-001 x[0]=0.000000 y[12]=1.100000 z[0][12]=-5.266672548835e-001 x[0]=0.000000 y[13]=1.150000 z[0][13]=-5.606384797965e-001 x[0]=0.000000 y[14]=1.200000 z[0][14]=-5.877965387677e-001 x[0]=0.000000 y[15]=1.250000 z[0][15]=-6.082697790899e-001 x[0]=0.

43、000000 y[16]=1.300000 z[0][16]=-6.221894528764e-001 x[0]=0.000000 y[17]=1.350000 z[0][17]=-6.296883781856e-001 x[0]=0.000000 y[18]=1.400000 z[0][18]=-6.308997600028e-001 x[0]=0.000000 y[19]=1.450000 z[0][19]=-6.259561525454e-001 x[0]=0.000000 y[20]=1.500000 z[0][20]=-6.149885

44、466094e-001 x[1]=0.080000 y[0]=0.500000 z[1][0]=6.380152265113e-001 x[1]=0.080000 y[1]=0.550000 z[1][1]=5.066117551467e-001 x[1]=0.080000 y[2]=0.600000 z[1][2]=3.821763692774e-001 x[1]=0.080000 y[3]=0.650000 z[1][3]=2.648634911537e-001 x[1]=0.080000 y[4]=0.700000 z[1][4]=1.5

45、47802002848e-001 x[1]=0.080000 y[5]=0.750000 z[1][5]=5.199268349094e-002 x[1]=0.080000 y[6]=0.800000 z[1][6]=-4.346804020490e-002 x[1]=0.080000 y[7]=0.850000 z[1][7]=-1.316010567885e-001 x[1]=0.080000 y[8]=0.900000 z[1][8]=-2.124310883088e-001 x[1]=0.080000 y[9]=0.950000 z[1

46、][9]=-2.860045510580e-001 x[1]=0.080000 y[10]=1.000000 z[1][10]=-3.523860789794e-001 x[1]=0.080000 y[11]=1.050000 z[1][11]=-4.116554565222e-001 x[1]=0.080000 y[12]=1.100000 z[1][12]=-4.639049115188e-001 x[1]=0.080000 y[13]=1.150000 z[1][13]=-5.092367247005e-001 x[1]=0.080000 y

47、[14]=1.200000 z[1][14]=-5.477611179623e-001 x[1]=0.080000 y[15]=1.250000 z[1][15]=-5.795943883391e-001 x[1]=0.080000 y[16]=1.300000 z[1][16]=-6.048572588895e-001 x[1]=0.080000 y[17]=1.350000 z[1][17]=-6.236734213318e-001 x[1]=0.080000 y[18]=1.400000 z[1][18]=-6.361682484133e-00

48、1 x[1]=0.080000 y[19]=1.450000 z[1][19]=-6.424676566901e-001 x[1]=0.080000 y[20]=1.500000 z[1][20]=-6.426971026996e-001 x[2]=0.160000 y[0]=0.500000 z[2][0]=8.400813957666e-001 x[2]=0.160000 y[1]=0.550000 z[2][1]=6.997641656732e-001 x[2]=0.160000 y[2]=0.600000 z[2][2]=5.66061

49、4423517e-001 x[2]=0.160000 y[3]=0.650000 z[2][3]=4.391716081176e-001 x[2]=0.160000 y[4]=0.700000 z[2][4]=3.192421380408e-001 x[2]=0.160000 y[5]=0.750000 z[2][5]=2.063761923874e-001 x[2]=0.160000 y[6]=0.800000 z[2][6]=1.006385238914e-001 x[2]=0.160000 y[7]=0.850000 z[2][7]=2.

50、060740067837e-003 x[2]=0.160000 y[8]=0.900000 z[2][8]=-8.935402476698e-002 x[2]=0.160000 y[9]=0.950000 z[2][9]=-1.736269688648e-001 x[2]=0.160000 y[10]=1.000000 z[2][10]=-2.507999561599e-001 x[2]=0.160000 y[11]=1.050000 z[2][11]=-3.209322694446e-001 x[2]=0.160000 y[12]=1.100000 z[2][12]=-3.840977350046e-001 x

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服