Borrar filtros
Borrar filtros

Unable to find symbolic solution

2 visualizaciones (últimos 30 días)
Fatemeh
Fatemeh el 23 de Mzo. de 2023
Comentada: John D'Errico el 23 de Mzo. de 2023
I'm getting this error when I'm running my code. "Unable to find symbolic solution". Can you please help me?
clear; syms y(x)
Dy = diff(y);
D2y = diff(y,2);
ode = y+((0.05*Dy)/y)-((0.5*D2y*x)/y)-(0.2/x)-(0.05/x) == 0;
ySol = dsolve(ode , y(80) == 0);
  1 comentario
John D'Errico
John D'Errico el 23 de Mzo. de 2023
syms y(x)
Dy = diff(y);
D2y = diff(y,2);
ode = y+((0.05*Dy)/y)-((0.5*D2y*x)/y)-(0.2/x)-(0.05/x) == 0
ode(x) = 
Why do you think a solution exists in the first place? Anyway, you have supplied only one boundfary condition, and this is a second order ODE, so you could not even find a numerical solution.

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 23 de Mzo. de 2023
The system is nonlinear, so it quite likely does not have an analytic solutioon.
Try something like this—
syms y(x) x Y
Dy = diff(y);
D2y = diff(y,2);
ode = y+((0.05*Dy)/y)-((0.5*D2y*x)/y)-(0.2/x)-(0.05/x)
ode(x) = 
% ySol = dsolve(ode , y(80) == 0)
[VF,Subs] = odeToVectorField(ode)
VF = 
Subs = 
odefcn = matlabFunction(VF, 'Vars',{x,Y})
odefcn = function_handle with value:
@(x,Y)[Y(2);(1.0./x.^2.*(x.*Y(2)-Y(1).*5.0+x.*Y(1).^2.*2.0e+1))./1.0e+1]
tspan = [80 0]; % Begin Solution At 80 And Go Backwards
ic = [0 eps]; % Supply Appropriate Initial Conditions, Specifically For 'Dy'
[x,y] = ode45(odefcn, tspan, ic);
figure
plot(x, y)
grid
legend(string(Subs), 'Location','best')
.

Más respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by