北京科技大学计算方法大作业(4)

2019-08-03 10:40

s=0; for i=1:n

t=ones(1,length(xx)); for j=1:n if j~=i

t=t.*(xx-x(j))/(x(i)-x(j)); end end s=s+t*y(i); end yy=s;

在Matlab窗口中执行: x=[-2.00 0.00 1.00 2.00]; y=[17.00 1.00 2.00 17.00]; xx=0.6; zuoye10(x,y,xx) 结果如下: ans =

0.25600000000000

13.编制Newton插值法的通用Matlab程序,并求f(0.5)的近似值. 已知的数值如下表所示

xi00.20.40.60.8

f(xi)0.19950.39650.58810.7721.09461

16

解:

Newton插值法的通用Matlab程序:

x=[0 0.2 0.4 0.6 0.8]';y=[0.1995 0.3965 0.5881 0.7721 0.9461]';xx=0.5; m=length(x);n=length(y);

if m~=n, error('向量x与y的长度必须一致');end for j=2:n,for i=j:n

newton_chazhi(i,j)=(newton_chazhi(i-1,j-1)-newton_chazhi(i,j-1))/(x(1+i-j)-x(i)); end end

yy= newton_chazhi(1,1);

t=1;for i=2:n,t=t*(xx-x(i-1));yy=yy+ newton_chazhi(i,i)*t; end

%计算误差近似值

err=newton_chazhi(n,n);for i=1:n,err=err*(xx-x(i));end,err yy

运行结果为:

err =-2.343750000006213e-06 yy=0.681187500000000

??y??f(x,y)??y|x?x0?y020.编写解常微分方程?的四阶龙格库塔法通用程序.

解:

四阶龙格库塔法通用程序:

function [x,y]=zuoye20(dyfun,xspan,y0,h)

17

x=xspan(1):h:xspan(2); y(1)=y0;

for n=1:length(x)-1

k1=feval(dyfun,x(n),y(n));

k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1); k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2); k4=feval(dyfun,x(n+1),y(n)+h*k3); y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; end x=x'; y=y';

21. 利用上题的程序求解初值问题:

?dy2?2??xy,?dx3??y(0)?1x?[0,1.2]

32y?1?x的数值解,并将结果与准确解进行比较. 取h?0.4.

解:

Matlab程序:

function [x,y]=zuoye21(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0;

for n=1:length(x)-1

18

k1=feval(dyfun,x(n),y(n));

k2=feval(dyfun,x(n)+h/2,y(n)+h/2*k1); k3=feval(dyfun,x(n)+h/2,y(n)+h/2*k2); k4=feval(dyfun,x(n+1),y(n)+h*k3); y(n+1)=y(n)+h*(k1+2*k2+2*k3+k4)/6; end x=x' y=y'

在Matlab窗口中执行: dyfun=inline('2*x*y^(-2)/3'); xspan=[0,1.2]; y0=1; h=0.4;

nark18(dyfun,xspan,y0,h) 结果如下: x =

0 0.40000000000000 0.80000000000000 1.20000000000000 y =1.00000000000000 1.05075062243354 1.17933175912031 1.34631542500313

19

计算值与准确值比较如下:

22. 编写四阶龙格库塔法程序,并求解洛伦兹型系统(不许调用现成的龙格库塔法程序软件包):

????x??y??yz?x???rx?qy?sxz?y?z????bz??xy

解:为了便于求解,这里首先为各个参数赋予初值,实际中根据需要修改程序中的参数即可。

取??0.25,??0.06,b?0.4,??0.5,r?120,q?1.3,s?1.5,???20.取初始点为(0.005,0.4596,?0.1146). 程序如下:

%预定义homework22.m文件 function f=homework22(t,y)

20


北京科技大学计算方法大作业(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《第一节 人的生殖和发育》 习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: