a program is running here that executes the Euler method (for diff eq) between (a, b) with the lengh step h and the initial value y0.
the features here are pretty rudimentary and hopefully give you a starting point!
function yf = euler(a,b,h,y0)
%% This Program implements Euler Method
% The user must input their function in the form given in the print
% statement.
%% Variables:
% a = start point
% b = end point
% h = stepsize
% y0 = initial value of y
%% Implementation
uf = input('enter your function in terms of t and yt in single quotes: \n');
%Taking in uf, as string or else INLINE will fail
f = inline(uf); %turn the string UF into a function in variable y,t
% Keep the values for plotting
%% Step 1
% Assign initial values
N = (b-a)/h;
y = zeros(N,1);
y(1) = y0;
t(1)=a;
%% Step 2
% Step through Euler Method, reassign values, and plot.
for i = 2: N
y(i) = y(i-1) + h*f(y(i-1)); %Each approximation
t(i) = a + i*h;
yf = y(i);
end
plot(t,y,'b+');
data = [ t' y]; % Turn Y into a percent, and save as columns to write to Excel
xlswrite('Euler_Data.xls',data,1,'A3');
end
source
share