数值分析第五章隐式欧拉法matlab解法
根据题目微分方程:根据初值,将的区间为[0,5]根据隐式欧拉公式:但是我们并不知道此时的值所以每次迭代前都需要先计算此时的,以便算出matlab代码如下:a=0;b=5;y0=2;h=0.01;s=(b-a)/h;X=zeros(1,s+1);Y=zeros(1,s+1);X=a:h:b;Y(1)=y0;q=@lin;for k=1:sk1=q(X(k),Y(k));%yn+1=yn+hq(xn,
·
根据题目微分方程:
根据初值,将
的区间为[0,5]
根据隐式欧拉公式:
但是我们并不知道此时的值
所以每次迭代前都需要先计算此时的,以便算出
matlab代码如下:
a=0;
b=5;
y0=2;
h=0.01;
s=(b-a)/h;
X=zeros(1,s+1);
Y=zeros(1,s+1);
X=a:h:b;
Y(1)=y0;
q=@lin;
for k=1:s
k1=q(X(k),Y(k));%yn+1=yn+hq(xn,yn)
k2=q(X(k+1),Y(k)+h*k1);%yn+1=yn+hq(xn+1,yn+1)
Y(k+1)=Y(k)+h*k2;
end
x=X';
y=Y';
f1=exp(-2*x)-2*x+1;
figure(1);
subplot(1,2,1);
plot(x,y);
hold on;
plot(x,f1);
subplot(1,2,2);
plot(x,f1-y);
function f=lin(c,d)
f=-2*d-4*c;
end

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)