数值计算方法大作业_第1页
数值计算方法大作业_第2页
数值计算方法大作业_第3页
数值计算方法大作业_第4页
数值计算方法大作业_第5页
免费预览已结束,剩余26页可下载查看

付费下载

下载本文档

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

文档简介

1、目录第一章非线性方程求根31.1 迭代法31.2 牛顿法41.3 弦截法51.4 二分法6第二章插值72.1 线性插值72.2 二次插值82.3 拉格朗日插值92.4 分段线性插值102.5 分段二次插值11第三章数值积分133.1 复化矩形积分法133.2 复化梯形积分法143.3 辛普森积分法153.4 变步长梯形积分法16第四章线性方程组数值法174.1 约当消去法174.2 图斯消去法184.3 三角分解法204.4 雅可比迭代法214.5 高斯一赛德尔迭代法23第五章常积分方程数值法255.1 显示欧拉公式法255.2 欧拉公式预测校正法265.3 改进欧拉公式法275.4 四阶龙格

2、一库塔法28数值计算方法第一章非线性方程求根1.1迭代法程序代码:PrivateSubCommand1_Click()x0=Val(InputBox(请输入初始值x0)ep=Val(InputBox(请输入误差限ep)f=0Whilef=0X1=(Exp(2*x0)-x0)/5IfAbs(X1-x0)epThenPrintX1f=1Elsex0=X1EndIfWendEndSub例:求f(x)=e2x-6x=0在x=0.5附近的根(ep=1O10)aFomrl占回SS,3Q953Q6434T94BT1.2牛顿法程序代码:PrivateSubCommand1_Click()b=Val(Input

3、Box(请输入被开方数x0)ep=Val(InputBox(请输入误差限ep)f=0Whilef=0X1=x0-(x0A2-b)/(2*b)IfAbs(X1-x0)epThenPrintX1f=1Elsex0=X1EndIfWendEndSub例:求病的值。(ep=10-1)0Forml口回S37.4333147T2979451.3弦截法程序代码:PrivateSubCommand1_Click()x0=Val(InputBox(请输入第一个初始值x0)X1=Val(InputBox(请输入第二个初始值x1)ep=Val(InputBox(请输入误差限ep)f=0Whilef=0X2=X1-(

4、X1A8-13)*(X1-x0)/(X1A8-13)-(x0A8-13)IfAbs(X2-X1)0Thena=xElseb=xEndIfIfAbs(b-a)epThenx=(b+a)/2f=1Print方程的根是,xEndIfEndIfWendEndSub-10、(ep=10)例:求方程f(x)=e-7/x(9-2x)-8在区间0,1内的实根。第二章插值2.1线性插值程序代码:PrivateSubCommand1_Click()X0=Val(InputBox(请输入第一个结点X:)Y0=Val(InputBox(请输入第一个结点Y:)X1=Val(InputBox(请输入第二个结点X:)Y1=

5、Val(InputBox(请输入第二个结点Y:)f=0Whilef=0x=Val(InputBox(请输入未知点的自变量值X:)L0=(x-X1)/(X0-X1)L1=(x-X0)/(X1-X0)y=L0*Y0+L1*Y1Printx=;x,y=;yf=Val(InputBox(是否继续(0/1):)WendEndSub目Fermi例:已知两点(13,1)、(49,8),求30处的值|1且y=4305555S5555556线性插值2.2二次插值程序代码:PrivateSubCommand1_Click()X0=Val(InputBox(请输入第一个结点X:)Y0=Val(InputBox(请输

6、入第一个结点Y:)X1=Val(InputBox(请输入第二个结点X:)Y1=Val(InputBox(请输入第二个结点Y:)X2=Val(InputBox(请输入第三个结点X:)Y2=Val(InputBox(请输入第三个结点Y:)f=0Whilef=0x=Val(InputBox(请输入未知点的自变量值X:)L0=(x-X1)*(x-X2)/(X0-X1)/(X0-X2)L1=(x-X0)*(x-X2)/(X1-X0)/(X1-X2)L2=(x-X0)*(x-X1)/(X2-X0)/(X2-X1)y=L0*Y0+L1*Y1+L2*Y2Printx=;x,y=;yf=Val(InputBox

7、(是否继续(0/1):)WendEndSub例:已知三点(81,9)、(100,10)、(121,10),求98处的值111二次插值112.3拉格朗日插值程序代码:PrivateSubCommand1_Click()Dimx(),y()n=Val(InputBox(请输入插值节点数N)ReDimx(n),y(n)Fori=0Tonx(i)=Val(InputBox(请输入插值节点x(+Str(i)+)y(i)=Val(InputBox(请输入插值节点y(+Str(i)+)Nextif=0Whilef=0xx=Val(InputBox(请输入未知点的自变量x:)Sum=0Fori=0Tont=1

8、Forj=0TonIfjiThent=t*(xx-x(j)/(x(i)-x(j)EndIfNextjSum=Sum+t*y(i)NextiPrintx=;xx,y=;Sumf=Val(InputBox(是否继续(0/1)WendEndSub例:已知四点(100,10)、(81,9)、(64,8)、(49,7),求87处的值。-IDForrnl:匚回Sj,I-x=67y=9.32563396692811粒格朗日插值2.4分段线性插值程序代码:PrivateSubCommand1_Click()Dimx(),y()n=Val(InputBox(请输入插值节点数N)ReDimx(n),y(n)For

9、i=0Tonx(i)=Val(InputBox(请输入插值节点x(+Str(i)+)y(i)=Val(InputBox(请输入插值节点y(+Str(i)+)Nextif=0Whilef=0xx=Val(InputBox(请输入未知点的自变量x:)L=0j=1WhileL=0Ifxxn-1Thenk=n-1L=1EndIfEndIfWend10 =(xx-x(k)/(x(k-1)-x(k)11 =(xx-x(k-1)/(x(k)-x(k-1)yy=l0*y(k-1)+l1*y(k)Printx=;xx,y=;yyf=Val(InputBox(是否继续(0/1)WendEndSub10例:已知三点

10、(361,19)、(324,18)、(289,17),N=2,求300处的值白Foulil300y=173142857142357分段线性插值2.5分段二次插值程序代码:PrivateSubCommand1_Click()Dimx(),y()n=Val(InputBox(请输入插值节点数N)ReDimx(n),y(n)Fori=0Tonx(i)=Val(InputBox(请输入插值节点x(+Str(i)+)y(i)=Val(InputBox(请输入插值节点y(+Str(i)+)Nextif=0Whilef=0xx=Val(InputBox(请输入未知点的自变量x:)Ifx0=n-1Ifx0x(

11、i)Then11Ifx0-x(i-1)x(i)-x0Thenk=i-1f=1Elsek=if=1EndIfElsei=i+1EndIfLoopIff=0Thenk=n-1EndIf11=(xx-x(k+1)*(xx-x(k)/(x(k-1)-x(k+1)*(x(k-1)-x(k)12 =(xx-x(k+1)*(xx-x(k-1)/(x(k)-x(k+1)*(x(k)-x(k-1)13 =(xx-x(k)*(xx-x(k-1)/(x(k+1)-x(k)*(x(k+1)-x(k-1)yy=l1*y(k-1)+l2*y(k)+13*y(k+1)Printx=;xx,y=;yyf=Val(InputB

12、ox(是否继续(0/1)WendEndSub例:已知三点(225,15)、(196,14)、(169,13),求180处的值。tSForrnl218013.4154351395731分段二次插值12第三章数值积分3.1复化矩形积分法程序代码:PrivateSubCommand1_Click()a=Val(InputBox(请输入积分下限a)b=Val(InputBox(请输入积分上限b)n=Val(InputBox(请输入积分区间等分数N)h=(b-a)/nSum=0Fori=1TonSum=Sum+(a+(i-0.5)*h)A2Nextir=h*SumPrint”复化矩形积分法计算结果:;r

13、EndSub例:求X2在区间3,5的积分值,等分区间为100Click目Form10回复化梯形双分法计算结果:32.&S6&-夏化矩形根分法3.2复化梯形积分法13程序代码:PrivateSubCommand1_Click()请输入积分下限a)请输入积分上限b)请输入积分区间等分数N)a=Val(InputBox(b=Val(InputBox(n=Val(InputBox(h=(b-a)/nSum=0Fori=1Ton-1Sum=Sum+(a+i*h)A2Nextit=h*(aa2+ba2)/2+h*SumPrint复化梯形积分法计算结果:;tEndSub例:求X2在区间3,5的积分值,等分区

14、间为100。复化梯用积分法计算结果;32.66683.3辛普生积分法14程序代码:PrivateSubCommand1_Click()a=Val(InputBox(请输入积分下限A:)b=Val(InputBox(请输入积分上限B:)n=Val(InputBox(请输入积分区间等分数N:)h=(b-a)/nSum=0w=a+h/2WhilewIMMIa11UIaImlMIIUIdIaIMIaIMMIfa11UIaIhlMIaIMMIaIMIaIM|辛普生积分法J3.4变步长梯形积分法15程序代码:PrivateSubCommand1_Click()a=Val(InputBox(请输入积分下限a

15、:)b=Val(InputBox(请输入积分上限b:)ep=Val(InputBox(请输入误差限ep:)n=1h=b-at1=h*(aA2+bA2)/2f=0Whilef=0Sum=0Fori=1Ton-1Sum=Sum+(a+(i-1/2)*h)a2NextiT2=t1/2+h*Sum/2IfAbs(T2-t1)epThenPrintT2f=1Elset1=T2h=h/2n=2*nEndIfWendEndSub例:求X2在区间3,5的积分值,误差ep=0.0001。32.6665973663341;变步长梯形积分法第四章线性方程组数值解法164.1约当消去法程序代码:PrivateSubC

16、ommand1_Click()Dima()n=Val(InputBox(请输入方程的个数N:)ReDima(n,n+1)Fori=1TonForj=1Ton+1a(i,j)=Val(InputBox(”请输入增广矩阵A(+Str(i)+,+Str(j)+)=)NextjNextiFork=1Tonm=a(k,k)Forj=kTon+1a(k,j)=a(k,j)/mNextjFori=1TonIfikThenm=a(i,k)Forj=kTon+1a(i,j)=a(i,j)-a(k,j)*mNextjEndIfNextiNextkFori=1TonPrintx(+Str(i)+)=;a(i,n+1

17、)NextiEndSub例:已知方程组,求XX2X3的值。X1+X2+X3=202X+3X+X3=38jThenSum=0Fork=1Toj-1Sum=Sum+l(i,k)*u(k,j)Nextkl(i,j)=(a(i,j)-Sum)/u(j,j)ElseSum=0Fork=1Toi-1Sum=Sum+l(i,k)*u(k,j)Nextku(i,j)=a(i,j)-SumEndIfNextjNextiFori=1TonSum=0Forj=1Toi-1Sum=Sum+l(i,j)*y(j)Nextjy(i)=b(i)-SumNextiFori=nTo1Step-1Sum=0Forj=i+1Ton

18、Sum=Sum+u(i,j)*x(j)Nextjx(i)=(y(i)-Sum)/u(i,i)Nexti20Fori=1TonPrintx(+Str(i)+)=;x(i)NextiEndSub例:已知方程组,求X&X3的值2Xi+3X+4X=38Xi+7X+3X=6515Xi+2X+X3=33.DFermi-3JiCz)=0xC3)=2三鬲分解法,iiluur门nririrnr,1r,mriurnrir,f4.4 雅可比迭代法程序代码:Dima(),b(),x0(),x()n=Val(InputBox(请输入方程个数N:)ReDima(n,n),b(n),x0(n),x(n)ep=Val(Inp

19、utBox(请输入误差限EP:)nmax=Val(InputBox(请输入最大迭代次数Nmax:)Fori=1TonForj=1Tona(i,j)=Val(InputBox(请输入系数矩阵A(+Str(i)+,+Str(j)+):)Nextjb(i)=Val(InputBox(请输入右端常数项B(+Str(i)+):)NextiFori=1Tonx0(i)=Val(InputBox(请输入初始解X0(+Str(i)+):)Nextik=0f=021Whilef=0Max=0Fori=1TonSum=0Forj=1TonSum=Sum+a(i,j)*x0(j)Nextjd=(b(i)-Sum)/

20、a(i,i)x(i)=x0(i)+dIfMaxAbs(d)ThenMax=Abs(d)EndIfNextik=k+1IfMaxnmaxThenPrint迭代失败f=1ElseFori=1Tonx0(i)=x(i)NextiEndIfEndIfWendEndSub例:已知方程组,求X1&X3X4的值。(ep=0.0001,最大迭代次数1000,初始值均为0)7X1+2X+3X+X4=5X1+5X+2X+X4=42X1+X2+8X+3X=2X1+4X+X3+7X=722.1(R(SixCL)=.5828R34015S221xC2)=.428034013659462x(3)=-21261243329

21、7374K(4)=.702599861748731=回雅可比迭代法4.5 高斯一赛德尔迭代法程序代码:PrivateSubCommand1_Click()Dima(),b(),x()n=Val(InputBox(请输入方程个数N:)ep=0.0001nmax=10000ReDima(n,n),b(n),x(n)Fori=1TonForj=1Tona(i,j)=Val(InputBox(请输入系数矩阵A(+Str(i)+,+Str(j)+):)Nextjb(i)=Val(InputBox(请输入右端常数项b(:+Str(i)+):)NextiFori=1Tonx(i)=Val(InputBox(

22、请输入初始解X(:+Str(i)+):)Nextik=0f=0Whilef=0Max=0Fori=1TonSum=0Forj=1TonSum=Sum+a(i,j)*x(j)Nextj23d=(b(i)-Sum)/a(i,i)x(i)=x(i)+dIfMaxAbs(d)ThenMax=Abs(d)EndIfNextik=k+1IfMaxnmaxThenPrint迭代失败f=1EndIfEndIfWendEndSub例:已知方程组,求X1XX3的值。(初始值均为0)5X+X2+2X=2X1+3X+X3=83X1+X2+7X=6ftFermi1)3750160侬2)=2.574969386S6963

23、工(3)=.650009252943062高斯塞德尔迭代法24第五章常微分方程的数值解5.1显示欧拉法程序代码:PrivateSubCommand1_Click()x0=Val(InputBox(请输入自变量初始值x0)y0=Val(InputBox(请输入自变量初始值y0)xn=Val(InputBox(请输入自变量值终值xn)n=Val(InputBox(请输入区间等分数)h=(xn-x0)/nX1=x0+hIfX1xnThenY1=y0+h*(3+(y0-x0)A3)Printx1=;X1,y1=;Y1x0=X1y0=Y1ElseEndIfEndSub例:用欧拉法计算dy/dx=3+(y-x)3,y(0)=0.5(0x1)o区间等分数N=4nForml冀1:一2syl-1.2812525f-显式殴拉公式5.2欧拉公式预测校正法程序代码:PrivateSubCommand1_Click()x0)y0)xn)x0=Val(InputBox(y0=Val(InputBox(xn=Val(InputBox(n=Val(InputBox(h=(xn-x0)/nX1=x0+h请输入自变量初始值请输入自变量初始值请输入自变量值终值请输入区间等分数)IfX1xnThenyp=y0+h*(3+(y0

温馨提示

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

最新文档

评论

0/150

提交评论