数值分析作业C语言编程实现_第1页
数值分析作业C语言编程实现_第2页
数值分析作业C语言编程实现_第3页
数值分析作业C语言编程实现_第4页
数值分析作业C语言编程实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、K 10分用Romberg方法计算积分Z二的近似值。误差不趙过include include double f(double x)(double ans; ans=exp(x);return ans;void meiinOdouble a=l,b=3,error=,t2020.htc;int i,j,k,m,n;h=b-a;t0 0=h*(f(a)+f(b)/2;k=l;wh i1e (1)t0k=0;m=l;for (j=0;jk-l;j+)m-m*2;for(i=l;i=m;i+)t0k=t0k+h*f(a+*h);t0k = (t0 k+t0k-l)/2; for(j=l;j=k;j+)

2、 c=l;for (n=0;nj;n+)c=c*4;tjk-j=(c*tj-lk-j+l-tj-lk-j)/(c-l); if(fabs(tk0-tk-10)error)(printf (Xn 积分结果 I a %lfn, tk 0);break;elseh=h/2;k+;积分结果I a 17.3672552、(10分)用简单迭代法求解方程 x=0,要求盼如|10二include include double f(double t)double ans;ans=pow(cos(t),3);return ans;void main()double x=0,eslong=,xO;int N=20,

3、i;printf(Mn 近似初值 xO = %lfnx);for(i=0;iN;i+)xO=x;x=f(x);printf(w x%d = %lfn,i+l,x);if (fabs(x-xO)eslong)break;if(fabs(x-xO)eslong)printf(M得到近似结果为x%lfnn,x,i);elseprintf (,r迭代失败n);近似初值X0 = 0.000000xl = 1.000000x2 =队814477x3 =匕&82051x4 =匕859780x5 =8G7394x6 = 0SG4822x? = a.865695x8 = 0.8G5399x9 = 0.8&549

4、9 xi0 = 9.865465 xll = 0.865477 xl2 = 0.865473 xl3 = 0865474 xl4 = D865474得到近似结果为x Q 0-8654743、(10分)用四阶RK方法求初值问题的数值解取步长力=0丄计算结果取8位小数。y = l + .x20 11 MO) = o#include #include fdouble a=0,b=l.x,y=0,h=,kl,k2tk3.k4;int i.N;double f(double t,double s)double ans;ans=l+t*t;return ans;void main()N=(b-a)/h;k

5、x=a;printf (n 初值为(x0,y0) = ( %. 8f , %. 8f )n,x,y); for(i=0;iN;i+)kl=f (xty);k2=f(x+h/2,y+h*kl/2);k3=f(x+h/2,y+h*k2/2);k4=f(x+h,y+h*k3);y=y+h*(kl+2*(k2+k3)+k4)/6;x=x+h;printf (H第d次输 出 结 果 为(x%df y%d)(%. 8f . %. 8f )n,i+lti+l,i+lfx,y);1234567891書第第第第第第第第第2 ZL值ex出出出岀岀出出出出胡Cxl.yl)=c0-100000000.10033333

6、)x4.y4)=0.400000000.42133333)=0.500000000.54166667)=0.600003030.67200000)=0.800000000.9706666?0.900000001.14300000Cxie.yie = =0B-FB-Fa-T=:壬ja-vb-t%壬B-TCfi-K:三才 L士口士口士 口士 口士 口士 口止 口士 口士 口 y - 0 幺“幺幺幺幻广幺幺V-幺一岀4. (IQ分)已知函数表如下,用三次插值求X1.5)的近似值。XiL22,94.65.86,714.8433.7158.3679.2496.79include void main()d

7、ouble datax4=t,t,datay10=,13,x=,y; int i,j;y=0;for (i=0;i=3;i+)li=l;for(j=0;ji;j+)1 i = (x-dataxj)/(dataxi-dataxj)*l i; for(j=i+l;j=3; j+)1 i = (x-dataxj)/(dataxi-dataxj)*l i; y=y+datay i*l i:printfCXn f(x)在 x = %f 处的近似值为:y = %fnx,y);FCx在 x = 1.508000 处的近似値为二 y = 17.7500805、(10分己知数据表如下.试求其最小二乘二次拟合名项

8、式Xi1.22.33.44.55.66.77.88.910.0yi11.714&721.443L3944.7361.4681.57105.11131.91include void main()double datay9=rint m=2,i.j.k;double ptdata94ta34,datax9 = ,for (i=0;i9;i+)for (j=l;j2*m+l;j+)dataij=l;for (k=O;kj;k+)dataij=dataij*dataxi;for(i=0;im+l; i+)for(j=0;jm+l;j+)aij=0;for(k=0;k9;k+)ai j=ai j+dat

9、ak i+j;a0 01=9;a0m+l=0;for(i=0;i9;i+)a0m+l=a0m+l+datayi;for (i=l;im+l;i+) aim+l=0;for(j=0;j9;j+)p=datay j:Ifor(k=0;ki;k+)p=p*dataxj:aim+l=aim+l+p;(9 000000)a0 + 50+ 354.840000)a2 = 504.180000(504000aa)aO * C354& al 23548.045200X2 = 31620.158300方程组的解为:a0 = 12.076541al = -2.000515a2 = 1.398707拟合多项式为:P

10、2 * C-2.000515x + 1.398707)x26、(20分)分别用列主元法和Jacobi迭代法求解方程组X - 2jc2 =31 一 2xt 十 - 3心=15一 X - 2x2 + 5工3 =10方程第1行互换位置后如下(一2000033)*1 亠(10+ -3.000000)x3 = 15.000000(1000000)x1 4 x2 + -1-000000)x3 = 3.000000x2 + C5-000000)x3 = 1.0000000 方程经:次消元如下一2000000dL *- x2 x3 = 15.0600000000000xl + x2 * x3 = 10.500

11、0000000000xl *- x2 * x3 = 2.500000方程第2行互换位萱后如下xl * x2 x3 = 15.000000xl + x2 * x3 = 2.500000xl + x2 * C-2.500000x3 = 10.500000 方程经2次消元如下一2000000)x1 十 C10+ (-3.000000)x3 = 150000000.000000)x1 十 x2 * C6.500000x3 = 2-500000xl 十 x2 + C0.285714x3 = 11.571429 方程化简得(一2 000000)x1 十 C10+ x3 = 2-5B0000(0000000

12、)x1 * (0000000x2 + C0.285714)x3 = 11.571429方程组的解为:X1=118.000000x2=37.250000x3=40.500000fni+l,ai);elseprintf (迭代失败n);化为b矩阵如下0000000 2000000 1.000000 3.0000000.200000 9.000000 0.300000 1.5000000.200000 0.400000 0.000000 2.000000计算结果为xl = 118 网x2 = 37.250x3 = 40L 500现场考试题目1#include includedouble f(doub

13、le x)double ans;ans=exp(x);return(ans);void main()doub 1 e a=-l,b=l,error= ,in=lh,T0T.F;int k;h=(b-a)/2;T0=h*(f(a)+f(b);while(l)F二 0;for(k=l;k=pow,m-1);k+)F=F+f(a+(2*k-l)*h);T二T0/2+h*F;if (fabs(T-TO)error)break;m+;h=h/2;TO 二T;printfC积分结果为I%fnT); 题目2#include double f(double t.double s)double ans;ans=l+t*t;return (ans);void main()(doubl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论