Euler's method
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Wan Ji
le 22 Août 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 commentaires
Wan Ji
le 23 Août 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')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/718374/image.jpeg)
Voir également
Catégories
En savoir plus sur Digital Filter Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!