# trying to use heun's method to solve an ode

9 views (last 30 days)
Anas Gharsa on 27 Jan 2022
Edited: Torsten on 28 Jan 2022
I am trying for days to solve an ode using heun's method for a project but i always keep getting an error message!!!this is what I tried :
f = @(t,y)(m*yn' + c*yn + k*yo - F0*sin(w*t));
a = 0;
b = 10;
n = 100;
h = (b-a)/n;
T = a:h:b;
F0 = 0;
w = 0;
m = 4;
k = 10;
c = 0.2;
y0 = 4;
[t,y] = myHeun(y0,a,b,f,n);
plot(t,y,'k')
Torsten on 27 Jan 2022
What is yo ?

VBBV on 27 Jan 2022
Edited: VBBV on 27 Jan 2022
a = 0;
b = 10;
n = 100;
h = (b-a)/n;
% T = a:h:b;
F0 = 0;
w = 0;
m = 4;
k = 10;
c = 0.2;
y0 = 4;
h=(b-a)/n; %h=(b-a)/n
t=a:h:b;
u=y0*ones(1,n+1);
f = @(t,y)(m*y + c*y + k*y0 - F0*sin(w*t));%initial condition
for i=1:n-1
fi=feval(f,t(i),u(i)); %evaluation of f at t_i, u_i
u0=u(i)+h*fi; %application of Euler method to obtain u_{i+1}^0
u(i+1)=u(i)+h*(fi+feval(f,t(i+1),u0))/2; %application of Heun method
end
plot(t,u,'k')
Anas Gharsa on 27 Jan 2022
Dear Torsten, you got right to say that since you really don't know how much time i spend on this. I am not asking to risolve the exercises for me I am just asking some advices that would help me and may be guidance to the right direction!! and like i said it befor i am new to matlab and i am doing my best to learn it !! and for the Heun algorithm i did what i could after reading thounsands of pages that speaks of numerical solutions and reading many others scripts!! you can say everything you want but you can't tell me that i did nothing to try it by my self
by the way thank you for trying to help and thank you so much VBBV

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!