数值计算方法_第1页
数值计算方法_第2页
数值计算方法_第3页
数值计算方法_第4页
数值计算方法_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

数值计算方法电气信息工程学院班级:电气1001潘云杰题目1.有方程f(x)=xA5-3*x-1=0,在区间(1,2)中唯一实根,若用Newton迭代法求此根,使其误差不超过10A(-4).程序#include<stdio.h>#include<math.h>voidmain()(doublea,b,eps;doublex,x0,f0,f1,m,n;floatz;printf("Pleaseinputyourabeps\n");scanf("%lf%lf%lf",&a,&b,&eps);z=(a+b)/2;x0=z;m=pow(x0,5);n=pow(x0,4);f0=m-3*x0-1;f1=5*n-3;x=x0-f0/f1;while(fabs(x-x0)>eps)

x0=x;m=pow(x0,5);n=pow(x0,4);f0=m-3*x0-1;f1=5*n-3;x=x0-f0/f1;printf(''x0=%12.10lf,x=%12.10lf\n'',x0,x);}printf("Therootis:%12.10lf\n",x);=leaseinputyourabeps1.iu.uumK0=1.4061S246S0,x=l.3092927199k0=1.3892927199.x=113887924145k(3==1.3887924145,x=l.3887919844Kherootis:li3807919844(2)题日2,设AX=B(2)A^然=B「57910】「1〕⑴A=68109B=11710871576514x-x+x=5{-x+2x-2x=-3x-2x+3x=6试用高斯列主元消元法求方程组的解程序(1)#include<stdio.h>#include<math.h>#definen4#defineeps1e-10voidmain()(inti,j,det;doubleaa[n][n+1];doublea[n+1][n+2],x[n+1];intGauss();for(i=0;i<n;i++)for(j=0;j<n+1;j++)scanf("%lf",&aa[i][j]);for(i=0;i<n;i++)(for(j=0;j<n+1;j++)printf("%lf",aa[i][j]);printf("\n");}for(i=1;i<=n;i++)for(j=1;j<=n+1;j++)a[i][j]=aa[i-1][j-1];det=Gauss(a,x);if(det!=0)for(i=1;i<=n;i++)printf("\nx[%d]=%f\n",i,x[i]);printf("\n");getch();}intGauss(doublea[][n+2],doublex[n+1])(inti,j,k,r;doublec;for(k=1;k<=n-1;k++)(r=k;for(i=k;i<=n;i++)if(fabs(a[i][k])>fabs(a[r][k]))r=i;if(fabs(a[r][k])<eps)(printf("\ndetA=0.faild!");exit(0);}if(r!=k)(for(j=k;j<=n+1;j++)(c=a[k][j];a[k][j]=a[r][j];a[r][j]=c;}}for(i=k+1;i<=n;i++)(c=a[i][k]/a[k][k];for(j=k+1;j<=n+1;j++)a[i][j]=a[i][j]-c*a[k][j];}}if(fabs(a[n][n])<eps)(printf("\ndetA=0.faild!");exit(0);}for(k=n;k>=1;k--)(x[k]=a[k][n+1];for(j=k+1;j<=n;j++)x[k]=x[k]-a[k][j]*x[j];x[k]=x[k]/a[k][k];}return(1);}i?91018IS;9110871S?6515 .essays10.0SSSS31G.页句包迎迎迥8. Hi,捕包迎齿起邑9-S总,单『包迥17.10.aSESB0S.7.I*:禄按当按做口E.0SS0S07. 6.0000035.,00000S1.00S0S0^ci]=20.S00ij0iSk[2]=-12:00ij00S^[3]=-5.S00ijSiS(2)#include<stdio.h>#include<math.h>#definen3#defineeps1e-10voidmain()(inti,j,det;doubleaa[n][n+1];doublea[n+1][n+2],x[n+1];intGauss();for(i=1;i<=n;i++)for(j=1;j<=n+1;j++)scanf("%lf",&aa[i][j]);for(i=0;i<n;i++)(for(j=0;j<n+1;j++)printf("%lf",aa[i][j]);printf("\n");}for(i=1;i<=n;i++)for(j=1;j<=n+1;j++)a[i][j]=aa[i-1][j-1];det=Gauss(a,x);if(det!=0)for(i=1;i<=n;i++)printf("\nx[%d]=%f\n",i,x[i]);printf("\n");getch();}intGauss(doublea[][n+2],doublex[n+1])(inti,j,k,r;doublec;for(k=1;k<=n-1;k++)(r=k;for(i=k;i<=n;i++)if(fabs(a[i][k])>fabs(a[r][k]))r=i;if(fabs(a[r][k])<eps)(printf("\ndetA=0.faild!");exit(0);}if(r!=k)(for(j=k;j<=n+1;j++)(c=a[k][j];a[k][j]=a[r][j];a[r][j]=c;}}for(i=k+1;i<=n;i++)(c=a[i][k]/a[k][k];for(j=k+1;j<=n+1;j++)a[i][j]=a[i][j]-c*a[k][j];}}if(fabs(a[n][n])<eps)(printf("\ndetA=0.faild!");exit(0);}for(k=n;k>=1;k--)(x[k]=a[k][n+1];for(j=k+1;j<=n;j++)x[k]=x[k]-a[k][j]*x[j];x[k]=x[k]/a[k][k];}return(1);}题日3.已知函数f(*)f(1+x)的数表X0.250.300.360.390.45ln(1+x)0.22314360.26236430.30748470.32930370.3715636试用四次牛顿插值法求x=0.275时的函数值,并估算误差。程序#include<stdio.h>#definen4voidmain()(floata[n+1][n+2]={0},s=0,t=1,x;inti,j;printf("pleaseinputxiyi\n");for(i=0;i<n+1;i++)for(j=0;j<2;j++)scanf("%f",&a[i][j]);for(j=1;j<n+2;j++)for(i=j;i<n+1;i++)a[i][j+1]=(a[i][j]-a[i-1][j])/(a[i][0]-a[i-j][0]);

printf("outputxi,yi,cha\n");for(i=0;i<n+1;i++)(for(j=0;j<n+2;j++)printf("%6.7f",a[i][j]);printf("\n");}printf("N%d(x)=",n);for(i=0;i<n+1;i++)(printf("%6.7f",a[i][i+1]);for(j=0;j<i;j++)printf("(x-%3.2f)",a[j][0]);if(i==n)break;printf("+");}printf("\n");printf("x=");scanf("%f",&x);for(i=0;i<n+1;i++)(for(j=0;j<i;j++)t*=(x-a[j][0]);s+=a[i][i+1]*t;}printf("N%d(%4.3f)=%6.7f\n",n,x,s);}真值:ln(1+0.275)=0.2429461误差:0.2429461-0.2427586=0.0001875pleaseinputxiyi^.253.22314362326643S.363.32748473.3293£i373.3715636outputxi,3990000yt,cha0.22314360.23266430J32748470;32930370.371563600.19941381,58^33990.0606339^.704331712.6356897-16.3656277-210.06657710.800000^7.1522^2163.25221251055.5941162*14<x>=0.2231436+0^19??413a<x-0.25>+12.6356897<x-0.25Xx-@.30>+-210.3665771<x-0.25><x-S.30Xx-0.36>+1855,;5941i62<x-0.25><x-0.30><x-0.36><x-0.39>k=0.275275>=0.2277067题目4.用龙贝格方法求积分[1*!危,要求误差不超过10J dX 1o-1X程序#include<stdio.h>#include<math.h>#definef(x)(sin(x)/x)#defineMAX5floatRBG(floatp,floatq,intn)(inti;floatsum=0,h=(q-p)/n;for(i=1;i<n;i++)sum+=f(p+i*h);sum+=(f(p)+f(q))/2;return(h*sum);}voidmain()(inti;intn=2,m=0;floatT[MAX+1][2];doublea,b,e;printf("pleaseinputabe\n");scanf("%lf%lf%lf",&a,&b,&e);T[0][1]=RBG(a,b,n);n*=2;for(m=1;m<MAX;m++)(for(i=0;i<m;i++)T[i][0]=T[i][1];T[0][1]=RBG(a,b,n);n*=2;for(i=1;i<=m;i++)T[i][1]=T[i-1][1]+(T[i-1][1]-T[i-1][0])/(pow(4,m)-1);if(fabs(T[m-1][1]-T[m][1])<e)(printf("Answer=%f\n",T[m][1]);getch();return;}}}pleaseinputabe-110.001Answer=l.981041题日5.用四阶龙格一一库塔法求解!J,r,(0<*0.4)的初值问题。〔y(0)=1分别取步长.=0.05和h=°」,分析其结果,保留5位有效数字。程序#include<stdio.h>#include<math.h>#definef(x,y)(x)-(y)voidmain()(doublea,b,x0,y0,k1,k2,k3,k4,x1,y1,h;intn,i;printf("inputdataa,b,x0,y0,h=\n");scanf("%lf%lf%lf%lf%lf",&a,&b,&x0,&y0,&h);n=(b-a)/h;printf("a=%lf,b=%lf,x0=%lf,y0=%lf,h=%lf\n",a,b,x0,y0,h);printf("%15s%15s%15s\n","n","xry");printf("%15s%15.6f%15.6f\n","0",x0,y0);for(i=0;i<n;i++)for(i=1;i<=n;i++)(x1=x0+h;k1=h*f(x0,y0);k2=h*f(x0+h/2,y0+h*k1/2);k3=h*f(x0+h/2,y0+h*k2/2);k4=h*f(x0+h,y0+h*k3);y1=y0+(k1+2*k2+2*k3+k4)/6;printf("%15d%15.6f%15.6f\n",i,x1,y1);x0=x1;y0=y1;}

getch();X0.解DD回DD0.200000H.4WD凰恩讶,yEPh=getch();X0.解DD回DD0.200000H.4WD凰恩讶,yEPh=c:CTC.EIER01234nputdataa,,0.4,0,1,0.1=0-品访煎宙苗有=■-6.40^0^83=0.000000茹:=!.■旗曲弦□日SJ=8,100000y1.0000000.9096750.8374620.78163?«.740641-.11putdataa,b,xl^,0■4.0.1.■0♦困a=0nfi@0@0@^=@„400t5t?t3x@=fi.000000=1_03^!i}00h=E.05^®^0n^i2345678x□.0593090.1^@0000.2^3000a.250^00.3^@000S.3500S0W.4聘聘聘畤©y1-盼我联理旧日0.952459

温馨提示

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

评论

0/150

提交评论