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

MATLAB题,用到欧拉公式求微分方程的数值解
用向前欧拉公式和改进欧拉公式求微分方程y'=x-2y,y(0)=2,0
猪猪j 1年前 已收到1个回答 举报

yicaiyy422 幼苗

共回答了20个问题采纳率:85% 举报

%欧拉法解一阶常微分方程%例子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)); endplot(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)))); endplot(x,y,'g+');
%精确解用作图xx = x;f = dsolve('Dy=x-2*y','y(0)=2','x');%求出解析解y = subs(f,xx); %将xx代入解析解,得到解析解对应的数值
plot(xx,y);legend('前向欧拉法','改进欧拉法','解析解');

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.033 s. - webmaster@yulucn.com