Matlab - usar función solve

 
Vista:
sin imagen de perfil

usar función solve

Publicado por noemi (5 intervenciones) el 06/04/2018 20:27:58
Buenas tardes, tengo el siguiente problema:
En una función (script) tengo que resolver dos sistemas de ecuaciones, no sé como arreglarlo y no sé si estoy usando la función correctamente.
Mando el código del primer sistema de ecuaciones no lineales. Estaría muy agradecida si pudieran ayudarme!

Lo que está comentado (% ) es otra cosa que he intentado para probar, pero no hay manera :(:(

Las variables que no son sym son ya conocidas a esa altura del script.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
syms coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c;
ec1_compr='coef_flujo_c=cr_2c/u_2c';
ec2_compr='c_1c=cr_2c'; %entrada axial
ec3_compr='cteta_2c=u_2c*sigma_2c';
ec4_compr='c_2c=sqrt(cteta_2c^2+cr_2c^2)';
ec5_compr='T_2c=T_02c-(c_2c^2/(2*Cp_air))';
ec6_compr='T_1c=T_2c-(Reaccion_c*W_C/Cp_air)';
ec7_compr='c_1c=sqrt((T_01c-T_1c)*2*Cp_air)';
% A=zeros(1,7);
[coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c]=solve(ec1_compr,ec2_compr,ec3_compr,ec4_compr,ec5_compr,ec6_compr,ec7_compr,'coef_flujo_c','cr_2c','c_1c','cteta_2c','c_2c','T_2c','T_1c');
% coef_flujo_c=A(1,1);
% cr_2c=A(1,2);
% c_1c=A(1,3);
% cteta_2c=A(1,4);
% c_2c=A(1,5);
% T_2c=A(1,6);
% T_1c=A(1,7);
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

usar función solve

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/04/2018 14:50:39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
syms coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c;
u_2c=rand;
sigma_2c=rand;
T_02c=rand;
Cp_air=rand;
Reaccion_c=rand;
W_C=rand;
T_01c=rand;
ec1_compr=coef_flujo_c-cr_2c/u_2c;
ec2_compr=c_1c-cr_2c; %entrada axial
ec3_compr=cteta_2c-u_2c*sigma_2c;
ec4_compr=c_2c-sqrt(cteta_2c^2+cr_2c^2);
ec5_compr=T_2c-T_02c-(c_2c^2/(2*Cp_air));
ec6_compr=T_1c-T_2c-(Reaccion_c*W_C/Cp_air);
ec7_compr=c_1c-sqrt((T_01c-T_1c)*2*Cp_air);
% A=zeros(1,7);
[coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c]=solve(ec1_compr,ec2_compr,ec3_compr,ec4_compr,ec5_compr,ec6_compr,ec7_compr,'coef_flujo_c','cr_2c','c_1c','cteta_2c','c_2c','T_2c','T_1c')


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
>> solve20
 
coef_flujo_c =
 
270181087950126043041309795141602^(1/2)/12263688254206664
 
 
cr_2c =
 
270181087950126043041309795141602^(1/2)/36028797018963968
 
 
c_1c =
 
270181087950126043041309795141602^(1/2)/36028797018963968
 
 
cteta_2c =
 
3588770621628323/18014398509481984
 
 
c_2c =
 
321698186248776202590077618310918^(1/2)/36028797018963968
 
 
T_2c =
 
379110585590691593516679403039699/975200397988359835144121667813376
 
 
T_1c =
 
546649354184135382673866488647455/975200397988359835144121667813376


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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

usar función solve

Publicado por noemi (5 intervenciones) el 08/04/2018 16:35:14
Muchísimas gracias!!

Pero aún así sigue saliendo que no encuentra solución

Warning: Explicit solution could not be found.
> In solve at 179
In CICLO_TERMO at 101

Hay algún modo de poner un buen punto de inicio para que empiece la iteración?

Muchas gracias de antemano!

Saludos!
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

usar función solve

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/04/2018 17:49:33
Estimada Noemi.
Sería de ayuda, si pudiera subir el código con los datos pertinente que tiene.En mi caso, su código poniendo unos valores aleatorios si
da una respuesta en lineas arriba.

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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

usar función solve

Publicado por noemi (5 intervenciones) el 08/04/2018 18:49:24
Buenas tardes, aquí subo el código. He sacado los datos, porque forma parte de un ejercicio engorroso.

Sigue poniendo que no encuentra solución.

Espero pueda ayudarme.

Y de nuevo, muchísimas gracias!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function ejemplo
T_02c= 485.8118;
W_C=108078.359448;
Cp_air=1007;
Reaccion_c=0.5;
T_01c=15+273;
 Z_c=20;   %abajo, con la formula de FLE. se comprueba que está bien
espesor_alabe_c=0.004;  %supongo
sigma_c=1-(0.63*pi/Z_c);
coeficiente_deslizamiento_c=1.03;   %entre 1.02 y 1.04
u_2c=sqrt(W_C/(sigma_c*coeficiente_deslizamiento_c));
 
syms coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c;
ec1_compr=coef_flujo_c-(cr_2c/u_2c);
ec2_compr=c_1c-cr_2c;          %entrada axial
ec3_compr=cteta_2c-(u_2c*sigma_c);
ec4_compr=c_2c-sqrt(cteta_2c^2+cr_2c^2);
ec5_compr=T_2c-T_02c-(c_2c^2/(2*Cp_air));
ec6_compr=T_1c-T_2c-(Reaccion_c*W_C/Cp_air);
ec7_compr=c_1c-sqrt((T_01c-T_1c)*2*Cp_air);
[coef_flujo_c cr_2c c_1c cteta_2c c_2c T_2c T_1c]=solve(ec1_compr,ec2_compr,ec3_compr,ec4_compr,ec5_compr,ec6_compr,ec7_compr,'coef_flujo_c','cr_2c','c_1c','cteta_2c','c_2c','T_2c','T_1c')
end
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

usar función solve

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/04/2018 22:17:37
Ejecuté su codigo.
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
>> ejemplo
 
coef_flujo_c =
 
(1007^(1/2)*2014^(1/2)*186006010902425893684845900534209^(1/2)*1i)/12090883595870726176
 
 
cr_2c =
 
(1007^(1/2)*2014^(1/2)*186006010902425893684845900534209^(1/2)*1i)/35430662693453824
 
 
c_1c =
 
(1007^(1/2)*2014^(1/2)*186006010902425893684845900534209^(1/2)*1i)/35430662693453824
 
 
cteta_2c =
 
5409318628026081/17592186044416
 
 
c_2c =
 
(2^(1/2)*127484554863405967160297068097087^(1/2)*1i)/35184372088832
 
 
T_2c =
 
478131165065336453470726833377729/1246605619560377936823418093568
 
 
T_1c =
 
545028429335814739489990311481793/124660561956037793682341809356


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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

usar función solve

Publicado por noemi (5 intervenciones) el 10/04/2018 08:49:41
El código finalmente estaba bien, pero no es la solución que quiero para mi problema. Pues me interesa conseguir soluciones en el plano real, ya que son temperaturas y velocidades las incógnitas del problema. Buscaré otro modo de hallarlos.

Muchísimas gracias por su ayuda, y disculpe las molestias.

Saludos!
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

usar función solve

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/05/2018 02:30:45
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
Name                             Size            Bytes  Class     Attributes
 
  Cp_air                           1x1                 8  double
  Reaccion_c                       1x1                 8  double
  T_01c                            1x1                 8  double
  T_02c                            1x1                 8  double
  T_1c                             1x1                 8  sym
  T_2c                             1x1                 8  sym
  W_C                              1x1                 8  double
  Z_c                              1x1                 8  double
  c_1c                             1x1                 8  sym
  c_2c                             1x1                 8  sym
  coef_flujo_c                     1x1                 8  sym
  coeficiente_deslizamiento_c      1x1                 8  double
  cr_2c                            1x1                 8  sym
  cteta_2c                         1x1                 8  sym
  ec1_compr                        1x1                 8  sym
  ec2_compr                        1x1                 8  sym
  ec3_compr                        1x1                 8  sym
  ec4_compr                        1x1                 8  sym
  ec5_compr                        1x1                 8  sym
  ec6_compr                        1x1                 8  sym
  ec7_compr                        1x1                 8  sym
  espesor_alabe_c                  1x1                 8  double
  sigma_c                          1x1                 8  double
  u_2c                             1x1                 8  double


todos están en el plano real

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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