版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八题:从函数表X0.00.10.1950.30.4010.5f(x):0.398940.3969510.391420.38138:0.368120.35206出发,用下列方法计算f(0.15),f(0.31),f(0.47)的近似值:(1)分段线性插值;(2)分段二次插值;(3)全区间上拉格朗日插值(要求一次性输入整张函数表,并利用计算机选择在插值计算中所需的结点)二,基本方法XiXiXXi1y0XXi1(1)先选取两个结点X1与X使XX1,X/,然后在区间X1,X上作线性插值,即得f(X)=l"x)yi1Xi1(2)选取距点x最近的三个结点Xi1,Xi,Xi1进行二次插值,即取f
2、(X)=|_2(x)1,j(Xj)kXkXjnLn(X)k°yJk(X)n(Xk0yk(Xk(3)n=5,X0)(XXk1)(XXk1)(XXn)X0).(XkXk1)(XkXk1).(XkXn)三,计算结果X0.150.310.47f(x)0.3940390.3800670.356927(2)X0.150.310.47f(x)0.3944820.3802250.361399x0.150.310.47f(x)0.3944730.3802190.357222四,结果分析编程基本按照课本套公式,方法从(1)至(3),计算结果越来越精确五,源程序(1)#include<stdio.h
3、>intmain(void)(inti,j;doublea6,b6,x,y;printf("Enterx:");for(i=0;i<6;i+)scanf("%lf',&ai);printf("Enterf(x):");for(i=0;i<6;i+)scanf("%lf",&bi);for(j=0;j<3;j+)printf("Enterx:");scanf("%lf",&x);for(i=0;x>ai;i+);y=bi-1*
4、(x-ai)/(a1-ai)+bi*(x-ai-1)/(ai-ai-1);printf("x=%lf,",x);printf("y=%lfn",y);return0;(2)#include<stdio.h>intmain(void)inti,j;doublea6,b6,x,y;printf("Enterx:");for(i=0;i<6;i+)scanf("%lf',&ai);printf("Enterf(x):");for(i=0;i<6;i+)scanf(&quo
5、t;%lf",&bi);for(j=0;j<3;j+)printf("Enterx:");scanf("%lf",&x);for(i=0;x>ai;i+);if(ai+1-x)<(x-ai-2)y=bi-1*(x-ai)/(ai-1-ai)*(x-ai+1)/(ai-1-ai+1);y=y+bi*(x-ai-1)/(ai-ai-1)*(x-ai+1)/(ai-ai+1);y=y+bi+1*(x-ai-1)/(ai+1-ai-1)*(x-ai)/(ai+1-ai);printf("x=%lf,"
6、;,x);printf("y=%lfn",y);elsey=bi-2*(x-ai-1)/(ai-2-ai-1)*(x-ai)/(ai-2-ai);y=y+bi-1*(x-ai-2)/(ai-1-ai-2)*(x-ai)/(ai-1-ai);y=y+bi*(x-ai-2)/(ai-ai-2)*(x-ai-1)/(ai-ai-1);printf("x=%lf,",x);printf("y=%lfn",y);return0;(3)#include<stdio.h>intmain(void)inti,j,k;doublea6,b6
7、,x,y,p;printf("Enterx:");for(i=0;i<6;i+)scanf("%lf",&ai);printf("Enterf(x):");for(i=0;i<6;i+)scanf("%lf",&bi);for(j=0;j<3;j+)y=0;printf("Enterx:");scanf("%lf",&x);for(i=0;i<6;i+)p=1;for(k=0;k<6;k+)if(k!=i)p=p*(x-a
8、k)/(ai-ak);y=y+p*bi;printf("x=%lf,",x);printf("y=%lfn",y);return0;六,附图第九题:已知直升机旋转机翼外形曲线轮廓线上的某些型值点及端点处的一阶导数值y'(x0)=1.86548,y'(x18)=-0.046115,试计算该曲线上横坐标为2,4,6,12,16,30,60,110,180,280,400,515处点的纵坐标(要求该曲线具有二阶光滑度)。SntLqji.1I十prlntHill:/-Ofr*pirtnrfiiffertK钊一叫iunrrtur-.ii«
9、F;T!tW*lrc.淮/lc蝇.机l4k|HIrrtUE叫II巴11.*181T卢、m.,Bsd.14dD-43ET,Fr:Lix-T;ndan?i3ix:hFMnJti*341HnniI:11f4ur|L&R:l(AU>tcanJri-BE*riKWlHtM叫H王”(:!婚:l1H%+口力力用|h*pHvFtFm:j;“即iRMRg布tawU-IT1M17rr|Fd¥aV-*|li-4i“I"n,“l】rt|1iJIHboLSiaWi-lllMl"八物中"»|S11-1J”k|L”彳i-i|5-(-*i1r11”:”*“,心.
10、-.a):Hi1也”1川v=tfLDl-ilK*L1口肚2j”|11|l-iHd|l3r«|l"叫*";V-9J1111H卜jWbJ喑11.fe-4|l.|中网加3idM<i|l'中划ETrwiatt】->H-1】h”|*旧,+*-3*)1/卜:,;h-*!i.:|AII餐if*U/1XLML1加Mblfv*9ul>|4i|>EiVBp;FfSfeV*|ri*村F|aMMriq*0mHHPErni>i*4-<5t«L4卜IMWf|>Cdrn«dt|*|M|MNl4«!*曰R苒WLtIm
11、iM1'S>i野广.HIMllxVvr»H.It4I.19HM.卜严/壮*WaUk!,|MI*|-.M12.筋p.WF博1*1胃口jrijlEkiki-m-.KHdH.HtK-7H.-UU.N»L2B.ZLW-rAl«>r1'-i&T.I/AMx.卜一二1存蚪.Sas«i>2Glk下载可编辑.0123456二,基本方法根据课本图4-9流程图及追赶法解方程。三,计算结果x246121630y7.83433110.47688012.35848516.57965319.09317325.386597x601101802
12、80400515y32.80436936.64788635.91714129.36842716.7991410.524459四,结果分析利用追赶法求Mi,比高斯消去法步骤更简单,虽然结果有微小偏差,尤其在s515处与课本结果偏差较大。但在精度要求不高的情况下,追赶法可以减少工作量,提高工作效率。五,源程序#include<stdio.h>intmain(void)(inti,j;doublea19,b19,h19,s18,t18,g19,x,y,p,q,f19,m20,n20;printf("输入左端点一阶导:");scanf("%lf",&
13、amp;p);printf("输入右端点一阶导:");scanf("%lf",&q);printf("Enterx:");for(i=0;i<19;i+)scanf("%lf",&ai);printf("Enterf(x):");for(i=0;i<19;i+)scanf("%lf",&bi);for(i=0;i<19;i+)hi=ai-ai-1;for(i=1;i<18;i+)si=hi/(hi+hi+1);for(i=1;i
14、<18;i+)ti=1-si;for(i=1;i<18;i+)gi=6/(hi+hi+1)*(bi+1-bi)/hi+1-(bi-bi-1)/hi);g0=6/h1*(b1-b0)/h1-p);g18=6/h18*(q-(b18-b17)/h18);f1=0.5;for(i=2;i<19;i+)fi=ti-1/(2-si-1*fi-1);n1=g0/2;for(i=2;i<20;i+)ni=(gi-1-si-1*ni-1)/(2-si-1*fi-1);m19=n19;for(i=18;i>0;i-)mi=ni-fi*mi+1;printf("输出M:n&
15、quot;);for(i=1;i<20;i+)printf("%lf",mi);for(j=0;j<12;j+)printf("n");printf("Enterx:");scanf("%lf",&x);for(i=0;x>ai;i+);y=mi*(ai-x)*(ai-x)*(ai-x)/hi/6;y=y+mi+1*(x-ai-1)*(x-ai-1)*(x-ai-1)/hi/6;y=y+(bi-1-mi*hi*hi/6)*(ai-x)/hi;y=y+(bi-mi+1*hi*hi/6)*(x
16、-ai-1)/hi;printf("f(x):%lf',y);)return0;)六,附图femi押&帅ta犯|时i*HiMi'Ni必中I脚*同it.if|nn*.s|ii|.Tw|Mit1.i.w.p.4rffrr|吼fr|lpjkt3H|0|lI11Lliphlh|i.n|81TMJ10C!»Hif;-ihi-him:FnrCi-lzKtt+FrmIi-BTFF举dhEJF*IfJ*»=",句GjUmjpj三|州M可I3"(k>i4M<dTdj-flladpriFC倬.HSHTti和,FUlFEUF-HL
17、懵”石立与一阳导HU制厂,明friKff'FflWj卜5r«iFn_XifMmH/X沪Fn<“鸿E#F<-*/!1f-£C»|1J13HHfihgCUrAe户1样1研阿“方第十二题一,题目某类疾病发生率y%。和年龄段x(每五年为一段,例如0-5岁为第一段,6-10岁为第二段)之间有形如ya?ebx的关系。试根据观测得到的如下数据表,用最小二乘法确定式中的参数a和b,并计算相应的均方误差与最大偏差x123456789y0.8982.383.071.842.021.942.222.774.02x10111213141516171819y4.765.
18、466.5310.916.522.535.750.661.681.8二,基本方法(1)将非线性方程化为线性方程,对ya?ebx等号两边取对数得到elnylnabx。(2)按照最小二乘法的原始定义,不对方程进行变换,而均方误差的方程式,通过求解非线性方程组来解决问题,此时要用到牛顿迭代法。(1)a=0.681361,b=0.230620,e=77.307455,m=18.328522第一次:a=0.721560,b=0.249856,e=17.925350,m=8.1115274第二次:a=0.239368,b=0.310747,e=5.430872,m=3.467987.四,结果分析由以上结果
19、对比,第二种方法结果更加精确,但是采用迭代法计算时,又必须多次选择初值才有可能取得较好的结果。五,源程序(1)#include<stdio.h>#include<math.h>intmain(void)(inti;doublea,b,e,m,a0,a1,b0,b1,y1,y2,x19,y19;for(i=0;i<19;i+)xi=i+1;printf("x:");for(i=0;i<19;i+)printf("%lf",xi);printf("ny:");for(i=0;i<19;i+)sca
20、nf("%lf",&yi);for(i=0;i<19;i+)yi=log(yi);a0=a1=b0=b1=y1=y2=0;for(i=0;i<19;i+)(a1=a1+xi;y1=y1+yi;b0=b0+xi;b1=b1+pow(xi,2);y2=y2+xi*yi;a0=19;b=(y2-y1*(b0/a0)/(b1-a1*(b0/a0);a=(y1-b*a1)/a0;a=exp(a);for(i=0;i<19;i+)yi=exp(yi);e=m=0;for(i=0;i<19;i+)e=e+pow(a*exp(i+1)*b)-yi),2);f
21、or(i=0;i<18;i+)if(pow(a*exp(i+1)*b)-yi),2)>m)m=pow(a*exp(i+1)*b)-yi),2);else;printf("a=%lfb=%lfe=%lfm=%lfn",a,b,e/19,sqrt(m);return0;(2)#include<stdio.h>#include<math.h>intmain(void)(inti,j;doublea,b,e,m,f,f1,f2,g,g1,g2,c,d,x19,y19;for(i=0;i<19;i+)xi=i+1;printf("x
22、:");for(i=0;i<19;i+)printf("%lf",xi);printf("ny:");for(i=0;i<19;i+)scanf("%lf",&yi);printf("Entera0:");scanf("%lf",&a);printf("Enterb0:");scanf("%lf",&b);f=f1=f2=g=g1=g2=0;for(j=0;j<20;j+)for(i=0;i<19;
23、i+)f=f+2*(a*exp(i+1)*b)-yi)*exp(i+1)*b);f1=f1+2*exp(2*(i+1)*b);f2=f2+4*(i+1)*a*exp(2*(i+1)*b)-2*(i+1)*yi*exp(i+1)*b);g=g+2*(a*exp(i+1)*b)-yi)*(i+1)*a*exp(i+1)*b);g1=g1+4*(i+1)*a*exp(2*(i+1)*b)-2*(i+1)*yi*exp(i+1)*b);g2=g2+4*pow(i+1)*a,2)*exp(2*(i+1)*b)-2*pow(i+1),2)*a*yi*exp(i+1)*b);c=f1*a+f2*b-f;d=g1*a+g2*b-g;b=(d-c*(g1/f1)/(g2-f2*(g1/f1);a=(c-f2*b)/f1;e=0;m=0;for(i=0;i<19;i+)e=e+pow(a*exp(i+1)*b)-yi),2);for(i=0;i<18;i+)if(pow(a*exp(i+1)*b)-yi),2)>m)m=pow(a*exp(i+1)*b)-yi),2);)printf("a=%lfb=%lf均方误差e=%lf最大偏差m=%lfn",a,b,e/19
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论