Integrating a 2nd order ODE
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
PetronasAMG
le 16 Oct 2021
Réponse apportée : Star Strider
le 17 Oct 2021
I am given an equation,
d^2y/dx^2 + q(x) = 0
x ranges from 0 to 1 and y(0) = 1 and y(L) = 1.5
where L = 1
and q(x) = 2*cos((pi*x)/L)
here is what I have
function dydx = yfunc (x,y)
x = linspace(0,1,30);
L = 1;
for i = 1:length(x)
qx(i)= 2*cos((pi*x(i))/L);
end
dydx= -qx;
end
%main script
[x,y] = ode45(@yfunc,x,[1 1.5]);
I am running into an error stating Dimensions of arrays being concatenated are not consistent. Could you please help me?
0 commentaires
Réponse acceptée
Star Strider
le 17 Oct 2021
syms y(x) x L Y
q(x) = 2*cos(pi*x/L);
Dy = diff(y);
D2y = diff(Dy);
ODE = D2y + q
[VF,Subs] = odeToVectorField(ODE)
bvpfcn = matlabFunction(VF, 'Vars',{x,Y,L})
I solved it completely, however I do not want to deprive you of the same feeling of accomplishment, so I leave the rest to you. It is a straightforward solution. Follow the examples in the documentation I linked to.
.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations 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!