Unable to perform assignment because the left and right sides have a different number of elements
1 view (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
Categories
Find more on Function Creation 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!