Euler's method
2 views (last 30 days)
Show older comments
Hello,
Where is the problem? Can you look at it?
h=0.25;
a=1; %start
b=2; %end
n=5; %iteration number
x=zeros(n,1);
y=zeros(n,1);
x=linspace(a,b,n);
y(1)=2;
for i= 1:n-1
y(i+1)=y(i)+ h*(((sin(2*x))/x^2)-(2*y/x));
end
[x y]
Unable to perform assignment because the left and right sides have a different number of
elements.
Error in foo (line 16)
y(i+1)=y(i)+ h.*(((sin(2.*x))./x.^2)-(2.*y./x));
0 Comments
Answers (1)
Wan Ji
on 22 Aug 2021
Hi,
Use
y(i+1)=y(i)+ h*(((sin(2*x(i)))/x(i)^2)-(2*y(i)/x(i)));
instead of
y(i+1)=y(i)+ h*(((sin(2*x))/x^2)-(2*y/x));
2 Comments
Wan Ji
on 23 Aug 2021
@Ahmet Akcura Hi,
Your x array is not transposed, its size 1 by n while y array is n by 1. So I transpose it for you.
h=0.25;
a=1; %start
b=2; %end
n=5; %iteration number
y=zeros(n,1);
x=linspace(a,b,n)';
y(1)=2;
for i= 1:n-1
y(i+1)=y(i)+ h*(((sin(2*x(i)))/x(i)^2)-(2*y(i)/x(i)));
end
[x y]
plot(x,y,'r-o') % plot the result
xlabel('x'); ylabel('y')
See Also
Categories
Find more on Digital Filter Analysis 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!