常微分方程数值解上机

原创 2011年01月13日 01:02:00

   二步显式Adams法和Gear法求解 y0=1,步长分别为h=0.1h=0.05

1.       程序文本

      二步显式Adams

 

clc;

y(1)=1;

h=0.1;

y(2)=y(1)-2*h*y(1)+3*h;

n=1/h;

for i=2:n

 y(i+1)=y(i)-3*h*y(i)+h*y(i-1)+3*h;

end

t=0:h:1;

f=-0.5*exp(-2*t)+1.5;

r=plot(t,y,'*');

hold on,

g=plot(t,f);

set(g,'LineWidth',1,'color','blue');hold off;

w=abs(f(n+1)-y(n+1));

 

      二步显式Gear

clc;

y(1)=1;

h=0.05;

y(2)=y(1)+h*y(1);

n=1/h;

for i=2:n

y(i+1)=(4/3*y(i)-1/3*y(i-1)+2*h)/(1+4/3*h);

end

t=0:h:1;

f=-0.5*exp(-2*t)+1.5;

r=plot(t,y,'*');

hold on,

g=plot(t,f);

set(g,'LineWidth',1,'color','blue'),hold off;

w=abs(f(n+1)-y(n+1));

 

 应用显式中点法和44Gill方法求解初值问题 ,列出当步长h=0.2h=0.1时计算到终点t=1的数值解及其误差,并附算法的matlab程序。

1.       程序文本

    显式中点法

 clc;

y(1)=3;h=0.2;

t=0;

n=1/h;

for i=1:n

    t=t+h;

    Y=(1-0.5*h)*y(i)-0.5*h*t;

    y(i+1)=y(i)-h*t-h*Y-0.5*h^2;

end

t=0:h:1;

f=2*exp(-t)-t+1;

r=plot(t,y,'r*');

hold on,

g=plot(t,f);

set(g,'LineWidth',1,'color','blue'),hold off;

w=abs(f(n+1)-y(n+1))

y

 

 

44Gill方法

clc;

y(1)=3;h=0.05;

t=0;b=0.5^0.5

n=1/h;

for i=1:n

    t=t+h;

    Y1=y(i);

    Y2=y(i)-0.5*h*t-0.5*h*Y1;

    Y3=y(i)-0.5*h*t-(b-0.5)*h*Y1-(1-b)*h*Y2-0.5*(1-b)*h^2;

    Y4=y(i)-h*t+b*h*Y2-(1+b)*h*Y3-0.5*h^2;

    y(i+1)=y(i)-h*t-1/6*h*Y1-1/3*(1-b)*h*Y2-1/3*(1+b)*h*Y3-1/6*h*Y4-0.5*h^2;

end

t=0:h:1;

f=2*exp(-t)-t+1;

r=plot(t,y,'r*');

hold on,

g=plot(t,f);

set(g,'LineWidth',1,'color','blue'),hold off;

w=abs(f(n+1)-y(n+1))

y

 

MATLAB学习笔记:常微分方程的数值解

常微分方程数值求解的命令: 求常微分方程的数值解,MATLAB的命令格式为: [t,y]=solver('odefun',tspan,y0,options)其中solver选择ode45等函数...
  • u014147522
  • u014147522
  • 2018年01月04日 21:47
  • 36

常微分方程数值解:欧拉公式

算法原理 对于常微分方程初值问题 在求解区间[a,b]上作等距分割的剖分,步长,记。用数值微商的方法,即用差商近似微商数值求解常微分方程。 用向前差商近似 做出y(x)的在x=x0处的一...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年01月12日 12:15
  • 1137

微分方程数值解法(欧拉方法)

微分方程数值解法(欧拉方法)假设y'=-x/y,这里采用分离变量法可以得到x^2+y^2=C,是一个圆;现在假设C=4,并且有初始值为(-2,0),比较用数值方法获得的值与用公式计算的值之间的误差。用...
  • chenbingchenbing
  • chenbingchenbing
  • 2011年07月04日 09:18
  • 911

【数学建模知识】常微分方程数值解:欧拉公式

算法原理 对于常微分方程初值问题 在求解区间[a,b]上作等距分割的剖分,步长,记。用数值微商的方法,即用差商近似微商数值求解常微分方程。 用向前差商近似 做出y(x)的在x=x0处的一...
  • u013007900
  • u013007900
  • 2015年04月27日 22:27
  • 1015

【整理】MATLAB之常微分方程

0.微分方程的概念(虽然大家都懂,但既然是整理,所以还是写写吧) 对于常微分方程的定义我就不多说了吧,简单说就是未知函数是一元函数。如果是多元,那就是偏微分方程了。 微分方程中出现的未知函数的导数的最...
  • asherrr
  • asherrr
  • 2015年08月23日 18:59
  • 1564

Matlab微分方程符号解和数值解

符号解用dsolve函数 例 求微分方程y′′+4y′+4y=e−2xy''+4y'+4y=e^{-2x} dsolve('D2y+4*Dy+4*y=exp(-2*x)')结果ans =1/(4*e...
  • gsls200808
  • gsls200808
  • 2015年06月17日 21:31
  • 1169

Matlab解常微分方程

dsolve('equation') dsolve('equation','condition') dsolve('equation','v')  给出微分方程的解析解,表示为v的函数 ds...
  • It_BeeCoder
  • It_BeeCoder
  • 2016年11月07日 22:14
  • 768

微分方程的数值解法——常微分方程——欧拉法与改进欧拉法(2)

改进欧拉法与上一篇中实例相比,改进欧拉法多了一步修正过程,正是应为有了该一步修正过程使得数值解法具有更高一级精度。 先看下面两幅图,第一幅是没有改进的欧拉法,第二幅是改进的欧拉法 两者相比...
  • JingYuanBoZhi
  • JingYuanBoZhi
  • 2017年05月06日 22:53
  • 438

实验四 常微分方程的数值解(android)

实验一博客地址:http://blog.csdn.net/double2hao/article/details/51152843 实验二博客地址:http://blog.csdn.net/double...
  • Double2hao
  • Double2hao
  • 2016年05月11日 11:22
  • 914

【数值分析】常微分方程数值解:欧拉公式

本科课程参见:《软件学院那些课》 算法原理 对于常微分方程初值问题 在求解区间[a,b]上作等距分割的剖分,步长,记。用数值微商的方法,即用差商近似微商数值求解常微分方程。 用向前差商...
  • wenyusuran
  • wenyusuran
  • 2014年08月19日 16:07
  • 835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常微分方程数值解上机
举报原因:
原因补充:

(最多只允许输入30个字)