Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
Jesús Ocegueda
Jesús Ocegueda le 28 Jan 2022
Commenté : Jesús Ocegueda le 31 Jan 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 commentaires
Torsten
Torsten le 28 Jan 2022
Modifié(e) : Torsten le 28 Jan 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 le 31 Jan 2022
Thank you for the reply!

Connectez-vous pour commenter.

Réponse acceptée

Yongjian Feng
Yongjian Feng le 28 Jan 2022
Modifié(e) : Yongjian Feng le 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.

Plus de réponses (0)

Catégories

En savoir plus sur Scope Variables and Generate Names 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!

Translated by