
Unable to perform assignment because the left and right sides have a different number of elements
    5 views (last 30 days)
  
       Show older comments
    
I am getting the message, in the title when trying to run this code. How do I sort this?
% Euler's Method
% Initial conditions and setup
h = 0.1;  % step size
x = 0:h:4;  % the range of x
y = zeros(size(x));  % allocate the result y
y(i) = (2);  % the initial y value
n = numel(y);  % the number of y values
% The loop to solve the DE
for i=1:n-1
    f = y(i)*cos(x).^2;
    y(i+1) = y(i) + h * f;
end
0 Comments
Answers (1)
  JESUS DAVID ARIZA ROYETH
      
 on 19 Nov 2019
        
      Edited: JESUS DAVID ARIZA ROYETH
      
 on 19 Nov 2019
  
      congratulations! ,you did very well, just a few small changes: 
% Euler's Method
% Initial conditions and setup
h = 0.1;  % step size
x = 0:h:4;  % the range of x
y = zeros(numel(x),1);  % allocate the result y
y(1) = (2);  % the initial y value
n = numel(y);  % the number of y values
% The loop to solve the DE
for i=2:n
    f = y(i-1)*cos(x(i-1)).^2;
    y(i) = y(i-1) + h * f;
end
syms Y(X)
yy=matlabFunction(dsolve(diff(Y)==Y*cos(X).^2,Y(0)==2));
figure;
plot(x,y,'r*-',x,yy(x),'b*-');
legend('Euler','Real')

2 Comments
  JESUS DAVID ARIZA ROYETH
      
 on 19 Nov 2019
				you did very well, just a few small changes:  
% Euler's Method
% Initial conditions and setup
h = 0.1;  % step size
x = 0:h:4;  % the range of x
y = zeros(numel(x),1);  % allocate the result y
y(1) = (2);  % the initial y value
n = numel(y);  % the number of y values
% The loop to solve the DE
for i=2:n
    f = y(i-1)*cos(x(i-1)).^2;
    y(i) = y(i-1) + h * f;
end
syms Y(X)
yy=matlabFunction(dsolve(diff(Y)==Y*cos(X).^2,Y(0)==2));
figure;
plot(x,y,'r*-',x,yy(x),'b*-');
legend('Euler','Real')
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!