function [xa, ya] = euler(derivative, x_initial, y_initial, step, x_final) % Define intial values for x and y %x_initial=0; %y_initial=2; %% Set the step size between calculations %step=0.0003; %% Define an endpoint %x_final=1; %% Define a dy/dx %derivative=@(x,y) x+y; % Determine how many times to step forward N=round((x_final-x_initial)/step); % use this determine size % Define and initialise arrays to contain coordinates ya=zeros(1,N); xa=zeros(1,N); xa(1)=x_initial; ya(1)=y_initial; for j=1:N-1 % loop for N-1 steps ya(j+1)=ya(j) + step*feval(derivative, xa(j),ya(j)); % next value xa(j+1)=xa(j)+step; % increase x by stepsize end