1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 常微分方程数值解matlab欧拉 MATLAB题 用到欧拉公式求微分方程的数值解

常微分方程数值解matlab欧拉 MATLAB题 用到欧拉公式求微分方程的数值解

时间:2020-11-06 06:59:00

相关推荐

常微分方程数值解matlab欧拉 MATLAB题 用到欧拉公式求微分方程的数值解

%欧拉法解一阶常微分方程

%例子dy/h=-y+x+1

%f=inline('-y+x+1','x','y'); %微分方程的右边项

f = inline('x-2*y','x','y');

y0 = 2;%初始条件

h = 0.025; %步长

xleft = 0; %区域的左边界

xright = 1; %区域的右边界

x = xleft:h:xright;

n = length(x);

%前向欧拉法

y = y0;

for i=2:n

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

end

plot(x,y,'ro');

hold on;

%改进欧拉法

y = y0;

for i=2:n

y(i)=y(i-1)+h/2*( f(x(i-1),y(i-1))+f(x(i),y(i-1))+h*(f(x(i-1),x(i-1))));

end

plot(x,y,'g+');

%精确解用作图

xx = x;

f = dsolve('Dy=x-2*y','y(0)=2','x');%求出解析解

y = subs(f,xx); %将xx代入解析解,得到解析解对应的数值

plot(xx,y);

legend('前向欧拉法','改进欧拉法','解析解');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。