Matlab的实际应用设计(经典)(5)

2019-08-30 14:01

s=0; for i=1:n

if r(i)>180 s=s+1; end end pp=s/n

3、结果如下:pp =0.0486

实验六

6.1 用欧拉公式和四阶龙格-库塔法分别求解下列初值问题; 一、问题描述

6.1 用欧拉公式和四阶龙格-库塔法分别求解下列初值问题;

0.9y,y(0)?1;x?[0,1]1?2x

xy(2)y'??,y(0)?2;x?[0,1]21?x(1)y'?二、源程序及运行结果

(1)a.欧拉法

function euler(a,b,h,alpha) t=a:h:b; n=(b-a)/h; y(1)=alpha; for i=2:n+1

y(i)=y(i-1)+h*f(t(i-1),y(i-1));

sprintf('t=%3.1f,y=%9.7f',t(i),y(i)) end

①function r=f(t,y) r=(0.9*y)/(1+2*t);

在Mathlab Command Window里输入如下代码:euler(0,1,0.1,1) 得到:

ans =

t=0.1,y=1.0900000 ans =

t=0.2,y=1.1717500 ans =

t=0.3,y=1.2470768 ans =

t=0.4,y=1.3172249 ans =

t=0.5,y=1.3830861 ans =

t=0.6,y=1.4453250 ans =

t=0.7,y=1.5044519 ans =

t=0.8,y=1.5608688 ans =

t=0.9,y=1.6148989 ans =

t=1.0,y=1.6668064 ②

function r=f(x,y) r=-x*y/(1+x*x);

在Mathlab Command Window里输入如下代码 euler(0,1,0.1,2) 结果:

ans =

t=0.1,y=2.0000000 ans =

t=0.2,y=1.9801980 ans =

t=0.3,y=1.9421173 ans =

t=0.4,y=1.8886645 ans =

t=0.5,y=1.8235382 ans =

t=0.6,y=1.7505966 ans =

t=0.7,y=1.6733644 ans =

t=0.8,y=1.5947500 ans =

t=0.9,y=1.5169573 ans =

t=1.0,y=1.4415285 b. 四阶龙格-库塔法

fun=inline('0.9*y/(1+2*t)','t','y'); [t,y]=ode45(fun,[0,1],1); [t,y] ans =

0 1.0000

0.0250 1.0222 0.0500 1.0438

0.0750 0.1000 0.1250 1.0649 1.0855 1.1056

0.1500 1.1253 0.6000 1.4259 0.1750 1.1446 0.6250 1.4404 0.2000 1.1635 0.6500 1.4547 0.2250 1.1820 0.6750 1.4689 0.2500 1.2002 0.7000 1.4828 0.2750 1.2180 0.7250 1.4967 0.3000 1.2355 0.7500 1.5103 0.3250 1.2528 0.7750 1.5239 0.3500 1.2697 0.8000 1.5372 0.3750 1.2864 0.8250 1.5505 0.4000 1.3028 0.8500 1.5636 0.4250 1.3189 0.8750 1.5765 0.4500 1.3349 0.9000 1.5894 0.4750 1.3506 0.9250 1.6021 0.5000 1.3660 0.9500 1.6147 0.5250 1.3813 0.9750 1.6271 0.5500 1.3964 1.0000 1.6395 0.5750 1.4112

plot(t,y,'o-') %画图

(2)

odefun=inline('-x*y/(1+x*x)','x','y'); [x,y]=ode45(odefun,[0,1],1); [x,y]

ans =

0 1.0000

0.0250 0.9997 0.0500 0.9988 0.0750 0.9972 0.1000 0.9950 0.1250 0.9923 0.1500 0.9889 0.1750 0.9850 0.5250 0.8854 0.5500 0.8762 0.5750 0.8669 0.6000 0.8575 0.6250 0.8480 0.6500 0.8384 0.6750 0.8288 0.7000 0.8192 0.2000 0.9806 0.2250 0.9756 0.2500 0.9701 0.2750 0.9642 0.3000 0.9578 0.3250 0.9510 0.3500 0.9439 0.3750 0.9363 0.4000 0.9285 0.4250 0.9203 0.4500 0.9119 0.4750 0.9033 0.5000 0.8944

>> plot(x,y,'o-')

0.7250 0.7500 0.7750 0.8000 0.8250 0.8500 0.8750 0.9000 0.9250 0.9500 0.9750 1.0000 0.8096 0.8000 0.7904 0.7809 0.7714 0.7619 0.7526 0.7433 0.7341 0.7250 0.7160 0.7071

6.2 用求解常微分方程初值问题的方法计算积分上限函数 一、问题描述

6.2 用求解常微分方程初值问题的方法计算积分上限函数

y(x)??f(t)dt

ax的值,实际上是将上面表达式两端求导化为常微分方程形式,并用初值条件y(a)?0。

etdt的计算问题。 试用MATLAB中的指令ode23解决定积分?2?4t5二、源程序及运行结果

odefun=inline('2*pi*exp(x)/x','x','y');

ode23t(odefun,[4,5],0);


Matlab的实际应用设计(经典)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:语文教学论试题含答案

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

马上注册会员

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