Matlab - Ayuda con ode45 y options

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

Ayuda con ode45 y options

Publicado por benjamin (17 intervenciones) el 08/12/2020 17:30:48
Hola Buenas, tengo que usar ode45 en octave o matlab para poder ver el movimiento de un pendulo doble pero mi problema es que me tira syntax error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clc
close all
clear all
 
m1=10;
m2=12;
L1=5;
L2=6;
g=9.81;
tmax=input("ingrese el tiempo maximo de integracion:  ");
 
alfa=m1/m2;
beta=L1/L2;
gamma=g/L1;
 
x1=1;
v1=1;
x2=3.5;
v2=2;
 
 
options=odeset("Reltol",1e-5,"Abstol",(1e-5 1e-5 1e-5 1e-5));
 
[T,Y]= ode45(@pendulodoble_Grupo4(t,y,L1,L2,g,gamma,beta,alfa,m1,m2),(0 tmax),(x1 v1 x2 v2),options);

Ese es mi codigo ejecutor para ode45

error-ode45


Ese es el error que me aparece y no se como arreglarlo, vi en muchas partes que ponen las cosas sin "," y si las agrego me tira otro error syntax pero con los parentesis.
Si alguien me puede ayudar seria genial
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

Ayuda con ode45 y options

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/12/2020 18:17:59
¿@pendulodoble_Grupo4?. No se encuentra en su consulta.
1
options=odeset('Reltol',1e-5,'Abstol',[1e-5 1e-5 1e-5 1e-5]);


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
global L1 L2 g gamma beta alfa m1 m2
 m1=10;
m2=12;
L1=5;
L2=6;
g=9.81;
%tmax=input('ingrese el tiempo maximo de integracion:  ');
tmax=10;
alfa=m1/m2;
beta=L1/L2;
gamma=g/L1;
x1=1;
v1=1;
x2=3.5;
v2=2;
 
options=odeset('Reltol',1e-5,'Abstol',[1e-5 1e-5 1e-5 1e-5]);
[T,Y]= ode45(@pendulodoble_Grupo4,[0 tmax],[x1 v1 x2 v2],options);
end
 
function dy=pendulodoble_Grupo4(t,y)
global L1 L2 g gamma beta alfa m1 m2
dy(1)=
dy(2)=
dy(3)=
dy(4)=
end

Saludos
JOSE JEREMIAS CABALLERO
Servicios de programación matlab
Servicio de Asesoría Online en proyectos con Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Scilab y Excel.
[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
sin imagen de perfil
Val: 48
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con ode45 y options

Publicado por benjamin (17 intervenciones) el 08/12/2020 18:51:19
Es que esa funciona la tengo aparte.

Esta es:

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
function dy=pendulodoble_Grupo4(t,y,L1,L2,g,gamma,beta,alfa,m1,m2)
 %%Abreviaciones
 O=y(1)-y(3); %%O1 es y(1), O2 es y(3)
  S=1+alfa;
 
%%Ecuacion por partes O1 dos puntos%%
  N1=S*gamma*(sin(y(1)));
  N2=alfa*beta*((y(4))^2)*(sin(O));
  N3=alfa*(cos(O));
  N4=((y(2))^2)*(sin(O));
  N5=gamma*(sin(y(3)));
  N6=1+(alfa*((sin(O))^2);
 
%%Ecuacion por partes O2 dos puntos%%
  M1=S*(((y(2))^2)*(sin(O)))-(gamma*(sin(y(3))));
  M2=cos(O);
  M3=S*gamma*sin(y(1));
  M4=alfa*beta*((y(4))^2)*(sin(O));
  M5=beta*(1+(alfa*((sin(O))^2)));
 
  dy=zeros(4,1);
  dy(1)=y(2);%%O1 punto
  dy(2)=-(N1+N2+N3*(N4-N5))/N6; %%O1 dos puntos
  dy(3)=y(4);%%O2 punto
  dy(4)=(M1+M2*(M3+M4))/(M5);%%O2 dos puntos
 
endfunction

ese es el que tu me preguntas, que lo llamo en el codigo ejecutor del ode45

cambien un error que tenia "y" al inicio pero usaba "u" pero ya lo corregí
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

Ayuda con ode45 y options

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/12/2020 19:02:44
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function ode2020_foro
close all
global L1 L2 g gamma beta alfa m1 m2
 m1=10;
m2=12;
L1=5;
L2=6;
g=9.81;
%tmax=input('ingrese el tiempo maximo de integracion:  ');
tmax=10;
alfa=m1/m2;
beta=L1/L2;
gamma=g/L1;
x1=1;
v1=1;
x2=3.5;
v2=2;
 
options=odeset('Reltol',1e-5,'Abstol',[1e-5 1e-5 1e-5 1e-5]);
[T,U]= ode45(@pendulodoble_Grupo4,[0 tmax],[x1 v1 x2 v2],options)
end
 
function dy=pendulodoble_Grupo4(t,u)
global  gamma beta alfa
 
 %%Abreviaciones
 O=u(1)-u(3); %%O1 es u(1), O2 es u(3)
  S=1+alfa;
 
%%Ecuacion por partes O1 dos puntos%%
  N1=S*gamma*(sin(u(1)));
  N2=alfa*beta*((u(4))^2)*(sin(O));
  N3=alfa*(cos(O));
  N4=((u(2))^2)*(sin(O));
  N5=gamma*(sin(u(3)));
  N6=1+alfa*((sin(O))^2);
 
%%Ecuacion por partes O2 dos puntos%%
  M1=S*(((u(2))^2)*(sin(O)))-(gamma*(sin(u(3))));
  M2=cos(O);
  M3=S*gamma*sin(u(1));
  M4=alfa*beta*((u(4))^2)*(sin(O));
  M5=beta*(1+(alfa*((sin(O))^2)));
 
  dy=zeros(4,1);
  dy(1)=u(2);%%O1 punto
  dy(2)=-(N1+N2+N3*(N4-N5))/N6; %%O1 dos puntos
  dy(3)=u(4);%%O2 punto
  dy(4)=(M1+M2*(M3+M4))/(M5);%%O2 dos puntos
 
end

1
2
3
4
5
6
7
8
9
10
11
12
13
>> ode2020_foro
T =
         0
    0.0199
    0.0398
    0.0597
    0.0796
    0.1539
    0.2281
    0.3023
    0.3765
    0.4468
    0.5170

Saludos
JOSE JEREMIAS CABALLERO
Servicios de programación matlab
Servicio de Asesoría Online en proyectos con Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Scilab y Excel.
[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
sin imagen de perfil
Val: 48
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con ode45 y options

Publicado por benjamin (17 intervenciones) el 08/12/2020 19:17:06
Ooooh genial muchas gracias.

Una consulta, como puedo ver lo de la imagen? es una animacion de pendulo doble y a mi me piden hacer lo mismo pero no se como llegar a esa pestaña de figura

Screenshot_1
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