Matlab - EDO de segundo orden

 
Vista:
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por wil (26 intervenciones) el 10/01/2022 17:57:05
Hola, el siguiente codigo esta en un libro,pero cuando lo copie para correr en matlab sale error.

syms y(t) t
Dy=diff(y, t);
D2y=diff(y, t, 2);
fprintf('To solve: A*ddy+B*dy+C*y=D at ICs: y(0)=a, dy(0)=b \n')
fprintf('Enter the values of [A, B, C, D] and [a, b] \n');
A = input('Enter A = ');
B = input('Enter B = ');
C = input('Enter C = ');
D = input('Enter D = ');
a = input('Enter a = ');
b = input('Enter b = ');
% Given ODE equation:
Equation = D2y==(1/A)*(D - B*Dy-C*y);
ICs = [y(0)==a; Dy(0)==b];
Solution=dsolve(Equation, ICs);
% Display the computed anaytical solution in the command window:
pretty(Solution)
fplot(Solution, [0, 5], 'b-'), grid on
xlabel('\it t')
ylabel('\it Solution, y(t) ')
title('\it Solution of: $$\frac{A*d^2y}{dt^2}+\frac{B*dy}{dt}+C*y=D,y(0)=a, dy(0)=b$$', 'interpreter', 'latex')

gtext(['\it A = ' num2str(A), '\it, B = ' num2str(B), '\it, C = ' num2str(C), '\it, D = ' num2str(D)])
gtext(['\it Initial Conditions: a = ' num2str(a), '\it, b = ' num2str(b)])
grid on; shg
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 11/01/2022 14:20:57
¿Con que EDO ha probado y que error ha mostrado?

Saludos
JOSE JEREMIAS CABALLERO
Asesoría Online en Proyectos con Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Scilab, Freemat, Java, Visual Studio, code, Python, google colab, Excel y C++
Asesorías online por zoom, meet, teams y skype.
[email protected]


https://programacioncaballero.blogspot.com
https://www.facebook.com/programacioncaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 11/01/2022 15:24:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
syms y(t) t
Dy=diff(y, t);
D2y=diff(y, t, 2);
fprintf('To solve: A*ddy+B*dy+C*y=D at ICs: y(0)=a, dy(0)=b \n')
fprintf('Enter the values of [A, B, C, D] and [a, b] \n');
A = input('Enter A = ');
B = input('Enter B = ');
C = input('Enter C = ');
D = input('Enter D = ');
a = input('Enter a = ');
b = input('Enter b = ');
% Given ODE equation:
Equation = D2y==(1/A)*(D - B*Dy-C*y);
ICs = [y(0)==a; Dy(0)==b];
Solution=dsolve(Equation, ICs);
% Display the computed anaytical solution in the command window:
pretty(Solution)
fplot(Solution, [0, 5], 'b-'), grid on
xlabel('\it t')
ylabel('\it Solution, y(t) ')
title('\it Solution of: $$\frac{A*d^2y}{dt^2}+\frac{B*dy}{dt}+C*y=D,y(0)=a, dy(0)=b$$', 'interpreter', 'latex')
if isnumeric(D)
    gtext(['\it A = ' num2str(A), '\it, B = ' num2str(B), '\it, C = ' num2str(C), '\it, D = ' num2str(D)])
else
    gtext(['\it A = ' num2str(A), '\it, B = ' num2str(B), '\it, C = ' num2str(C), '\it, D = ' char(D)])
end
gtext(['\it Initial Conditions: a = ' num2str(a), '\it, b = ' num2str(b)])
grid on; shg


1
2
3
4
5
6
7
8
9
10
11
12
>> ecuacion_diferencial_de_2do_orden
To solve: A*ddy+B*dy+C*y=D at ICs: y(0)=a, dy(0)=b
Enter the values of [A, B, C, D] and [a, b]
Enter A = 1
Enter B = 2
Enter C = -8
Enter D = 2*exp(-2*t)+exp(-t)
Enter a = 1
Enter b = 0
exp(2 t) 29   exp(-4 t) 5   exp(-2 t) (2 exp(t) + 3)   exp(-2 t) (exp(t) + 3)
----------- + ----------- - ------------------------ - ----------------------
     36            9                   36                        18



EDO-2DO-ORDEN


Saludos
JOSE JEREMIAS CABALLERO
Asesoría Online en Proyectos con Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Scilab, Freemat, Java, Visual Studio, code, Python, google colab, Excel y C++
Asesorías online por zoom, meet, teams y skype.
[email protected]
m

https://programacioncaballero.blogspot.com
https://www.facebook.com/programacioncaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por wil (26 intervenciones) el 11/01/2022 16:50:16
Hola, el libro prueba con los valores:
A=1.3
B=1
C=2
D=3
a=1
b=0
Copie el codigo que escribiste , pero me sale el siguiente error:
Error using sym/cat>checkDimensions (line 75)
CAT arguments dimensions are not consistent.

Error in sym/cat>catMany (line 38)
[resz, ranges] = checkDimensions(sz,dim);

Error in sym/cat (line 27)
ySym = catMany(dim, strs);

Error in sym/horzcat (line 19)
ySym = cat(2,args{:});

Error in dsolve>mupadDsolve (line 310)
sys_sym = [sys{~chars}];

Error in dsolve (line 189)
sol = mupadDsolve(args, options);

Error in Unicode_2nd_ODE (line 15)
Solution=dsolve(Equation, ICs);

*************************************************
que estraño, tengo la version de MATLAB R2014a.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 11/01/2022 18:35:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> latex_ecuacion_diferencial_de_2do_orden_11_01_22
To solve: A*ddy+B*dy+C*y=D at ICs: y(0)=a, dy(0)=b
Enter the values of [A, B, C, D] and [a, b]
Enter A = 1.3
Enter B = 1
Enter C = 2
Enter D = 3
Enter a = 1
Enter b = 0
                 /   5 t \    / sqrt(235) t \      /   5 t \    / sqrt(235) t \
    sqrt(235) exp| - --- | sin| ----------- |   exp| - --- | cos| ----------- |
3                \    13 /    \      13     /      \    13 /    \      13     /
- - ----------------------------------------- - -------------------------------
2                       94                                     2


EDO-2DO-ORDEN1


Saludos
JOSE JEREMIAS CABALLERO
Asesoría Online en Proyectos con Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Scilab, Freemat, Java, Visual Studio, code, Python, google colab, Excel y C++
Asesorías online por zoom, meet, teams y skype.
[email protected]
m

https://programacioncaballero.blogspot.com
https://www.facebook.com/programacioncaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por wil (26 intervenciones) el 11/01/2022 19:42:57
Si , esa es la respuesta del libro, pero aqui cuando compilo el codigo me sale error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por wil (26 intervenciones) el 12/01/2022 14:04:30
Tambien lo acabe de probar en Octave online y no compila.
Captura-de-pantalla-de-2022-01-12-100118
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 12/01/2022 17:16:15
En vez de usar sym en el código del libro, use str2num y cadenas para tener expresado en char las ecuaciones Equation = D2y==(1/A)*(D - B*Dy-C*y); ICs = [y(0)==a; Dy(0)==b]; Asi no usaras el syms que te está ocasionando problema la momento de ejecutar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 43
Ha disminuido su posición en 13 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

EDO de segundo orden

Publicado por wil (26 intervenciones) el 12/01/2022 21:27:02
Muy bien gracias, intentare asi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar