Error in Euler's method code.

2 visualizzazioni (ultimi 30 giorni)
Mike Asmanis
Mike Asmanis il 18 Giu 2021
Risposto: VBBV il 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)

Risposte (2)

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

VBBV
VBBV il 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')

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by