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

3 views (last 30 days)
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 Comments

Sign in to comment.

Accepted Answer

Yongjian Feng
Yongjian Feng on 28 Jan 2022
Edited: Yongjian Feng on 28 Jan 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.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by