Going from Euler's method to trapezoidal rule
10 次查看(过去 30 天)
显示 更早的评论
I used Euler's Method to solve y'= 1−t+4y with y(0) = 1 on the interval [0, 2], h = 0.01. I posted my code below. How would I edit this code to solve the same problem using the Trapezoidal Rule?
if true
syms t y
f=@(t,y) 1-t+4.*y;
t=0;
y=1;
h=.01;
n=(2-0)/h;
for i=1:n
m=f(t(i),(y(i)));
y=[y, y(i)+m*h]; %y(i+1)=y(i)+m*h
t=[t, t(i)+h]; %t(i+1)=t(i)+h
end
for i=1:length(t)
fprintf('%5.4f | %5.4f\n',t(i),y(i))
end
end
2 个评论
DINU ANDREEA-EMILIA
2020-6-3
Did you find the answer to your question? Cause i have to do the exact same thing
James Tursa
2020-6-3
You could look here:
回答(1 个)
Swaraj
2023-2-9
You would have to modify the calculation of the intermediate value m as follows:
if true
syms t y
f=@(t,y) 1-t+4.*y;
t=0;
y=1;
h=.01;
n=(2-0)/h;
%Changed Part Start
for i=1:n
m1 = f(t(i),y(i));
m2 = f(t(i) + h/2, y(i) + m1*h/2);
y = [y, y(i) + m2*h];
t = [t, t(i) + h];
end
%Changed Part End
for i=1:length(t)
fprintf('%5.4f | %5.4f\n',t(i),y(i))
end
end
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!