Borrar filtros
Borrar filtros

I receive the output "Empty sym: 0-by-1"

1 visualización (últimos 30 días)
Jesús Ocegueda
Jesús Ocegueda el 28 de En. de 2022
Comentada: Jesús Ocegueda el 31 de En. de 2022
I'm using the following code to solve a differential equation non homogenous but when I try to get the value of the variables C_1 and C_2, i receive the following output Empty sym: 0-by-1. Here is the code:
I would really appreciate your support, thank you in advance!
%Segunda ecuación diferencial
fprintf('Actividad #2 Resolución de Ecuaciones Diferenciales No Homogéneas');
pause(2);
fprintf('Acontinuación se presentaran los pasos para la resolución:');
pause(2);
fprintf(['La segunda ecuación diferencial no homogénea es:' ...,
'(d^2x)/(dt^2) + 2 * (dx)/(dt)+ x = 5 * (exp((-2)*t) + t)']);
pause(2);
fprintf(['El primer paso es cambiar la ecuación a su forma estándar: \n\n' ...,
'r^2 + (2 * r) + 1 ' ...,
'El segundo es igualar g(t) = 0. En este caso g(t)= 5 * (exp((-2)*t) + t).\n\n' ...,
'Por lo tanto tenemos que r^2 + (2 * r) + 1 = 0\n\n' ...,
'El tercer paso es resolver la ecuación, cómo si fuera de coeficientes constantes.']);
p = [1 2 1];
r = roots(p);
pause(2);
fprintf('Las raíces que se obtuvieron son las siguientes: \n');
display(r);
pause(2);
fprintf(['El cuarto paso es proponer la solución complementaria de acuerdo a las raíces: \n\n' ...,
'y(t) = C_1 * e^(-t) + C_2 * e^(-t) \n\n' ...,
'El quinto paso es observar la forma de g(t) = 5 * (exp((-2)*t) + t).\n\n' ...,
'Mientras que el paso sexto es proponer una solución particular y_p, de acuerdo con la forma de g(t), por lo tanto esta sería:\n\n' ...,
'y_p = A * e^(-2*t) + A * t + B \n\n']);
pause(2);
fprintf('El paso séptimo es derivar dependiendo el grado de la ecuación principal.\n\n');
syms A B t;
yp = A * exp(-2*t) + A * t + B;
yprima = diff(yp);
ybiprima = diff(yprima);
fprintf('La primer derivada de y_p es:');
display(yprima);
fprintf('La segunda derivada de y_p es:');
display(ybiprima);
pause(2);
fprintf(['El octavo paso es sustituir las derivadas obtenidas, en la ecuación original:\n\n' ...,
'4*A*exp(-2*t) + A - 2*A*exp(-2*t) + A * exp(-2*t) + A * t + B = 5 * (exp((-2)*t) + t\n\n' ...,
'El paso nueve es obtener los coeficientes por el método de coeficientes indeterminados.\n\n' ...,
'A continuación se muestran los resultados:\n\n']);
sustyp = 4*A*exp(-2*t) + A - 2*A*exp(-2*t) + A * exp(-2*t) + A * t + B - 5 * (exp((-2)*t)) + t;
coeficientes = solve(sustyp,A,B);
display(coeficientes);
pause(2);
fprintf('El último paso es escribir la ecuación final y obtener los valores C_n');
syms C_1 C_2
y(t) = C_1 * exp(-t) + C_2 * exp(-t) + (coeficientes.A) * exp(-2*t) + (coeficientes.A) * t + (coeficientes.B);
dy(t) = diff(y(t));
ynatural = vpa(y(2));
yderivada = vpa(dy(-3));
%[C_1 C_2] = solve(C_1 + C_2 + 1.25==0,- 1.0*C_1 - 1.0*C_2 - 2.4375==0);
solucion = solve([ynatural,yderivada],[C_1,C_2]);
c1sol = solucion.C_1;
c2sol = solucion.C_2;
pause(2);
fprintf('El resultado de evaluar y(t) donde t = 2 es: ');
display(ynatural);
fprintf('El resultado de evaluar y''(t) donde t = -3 es: ');
display(yderivada);
pause(2);
fprintf('Tras resolver las dos ecuaciones resultantes se llega a la conclusión de que no hay solución:\n\n ');
display(c1sol);
display(c2sol);
pause(2);
fprintf(['Por lo tanto, el resultado es el siguiente:\n\n' ...,
'y(t) = 5 * (exp((-2)*t) + t)']);
  2 comentarios
Torsten
Torsten el 28 de En. de 2022
Editada: Torsten el 28 de En. de 2022
It doesn't answer your question, but I think
sustyp = ...- 5*(exp(-2*t) + t)
instead of
sustyp = ...-5*exp(-2*t) + t
Maybe now it works to solve for C_1 and C_2 because the two equations that are written above
solucion = ...
don't give a solution for C_1 and C_2 - they are contradictory.
Jesús Ocegueda
Jesús Ocegueda el 31 de En. de 2022
Thank you for the reply!

Iniciar sesión para comentar.

Respuesta aceptada

Yongjian Feng
Yongjian Feng el 28 de En. de 2022
Editada: Yongjian Feng el 28 de En. de 2022
Ok, the coefficients are the same for both equations. You basically have
A*C_1+B*C_2+C ==0 and A*C_1+B*C2+D ==0. These two straight lines are parallel. So no interception (solution).
print out your ynatural and yderivada, and you will see.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by