Error in Euler's method code.

4 views (last 30 days)
Mike Asmanis
Mike Asmanis on 18 Jun 2021
Answered: VBBV on 28 Nov 2022
Why am I getting Error:Invalid array indexing?I need help in order to code it correctly , I am a newbie.
% Euler
% y'(t)=cos(t+y) με y(0)=0
clc
clear all
close all
h=0.01;
N=100; % number of steps
y(0)=0;
for n=1:N
y(n+1)=y(n)+h*((cos(t+y)(n)));
t(n+1)=t(h+1);
end
hold on
t=0:0.01:3;
y=(-t)+2*atan(t); % exact solution
plot(t,y)

Answers (2)

Claire Fan
Claire Fan on 18 Jun 2021
matlab is an one-based array indexing programming language, hence array indices must be positive integers.

VBBV
VBBV on 28 Nov 2022
You can use the below approach for implementing your problem
clc
clear all
close all
h=0.01;
N=120; % number of steps
y(1)=0;
t(1) = 0;
for n=1:N
y(n+1)=y(n)+cosd(t(n)+y(n)); %change (use degree mode)
t(n+1)=t(n)+h; % change
end
hold on
T=0:0.01:1.2;
Y=(-T)+2*atand(T); % exact solution
plot(T,Y)
plot(t,y)
legend('exact soln','approx soln','location','best')

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!