Matlab - resolver sistema ecuaciones no linealies matlab

   
Vista:

resolver sistema ecuaciones no linealies matlab

Publicado por Juan (6 intervenciones) el 30/03/2011 12:32:23
Hola a todos, intento resolver este sistema de ecuacion en matlab, pero no lo consigo.

declaro variables:

syms xy;

y luego:

solve('x=sec(1+y)','y=1-(sqrt((x^2)-1)+(cos(1/x))^-1)')

que hago mal?
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 30/03/2011 16:51:17
Hola Juan, el problema estaba en la utilización de la funcion de solve, puedes ver su sintaxis de esta funcion en matlab digitando el comando: help dsolve en la ventana de comando de matlab y luego haces enter en tal ventana.

>> syms x y
>> [x,y]=solve('x=sec(1+y)','y=1-(sqrt((x^2)-1)+(cos(1/x))^-1)')
x =
-5.6068552713482868907626753084751

y =
-5.5330765230698902179229056924361


Saludos: JOSE JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS EN DONDE SE NECESITA MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjccc94@hotmail.com (1 intervención) el 30/03/2011 16:53:46
30/03/2011 16:51:17
En el envio anteriror: hubo un pequeño error, por eso te vuelvo a enviar.

Hola Juan, el problema estaba en la utilización de la funcion de solve, puedes ver su sintaxis de esta funcion en matlab digitando el comando: help solve en la ventana de comando de matlab y luego haces enter en tal ventana.

>> syms x y
>> [x,y]=solve('x=sec(1+y)','y=1-(sqrt((x^2)-1)+(cos(1/x))^-1)')
x =
-5.6068552713482868907626753084751

y =
-5.5330765230698902179229056924361


Saludos: JOSE JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS EN DONDE SE NECESITA MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 30/03/2011 16:55:29
En el envio anteriror, hubo un pequeño error, por eso te vuelvo a enviar.

Hola Juan, el problema estaba en la utilización de la funcion de solve, puedes ver su sintaxis de esta funcion en matlab digitando el comando: help solve en la ventana de comando de matlab y luego haces enter en tal ventana.

>> syms x y
>> [x,y]=solve('x=sec(1+y)','y=1-(sqrt((x^2)-1)+(cos(1/x))^-1)')
x =
-5.6068552713482868907626753084751

y =
-5.5330765230698902179229056924361


Saludos: JOSE JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS EN DONDE SE NECESITA MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 16:40:36
Hola,

Quiero resolver estas tres ecuaciones, para las variables UA, Q y Tcout
0=F/V*(T0-T)-Q/(V*rho*Cp)
0=Fc*(Tcin-Tcout)/Vc+Q/(Vc*rhoc*cp)
Q=UA*(T-Tcout)

He probado con
ec1='0=F/V*(T0-T)-Q/(V*rho*Cp)';
ec2='0=Fc*(Tcin-Tcout)/Vc+Q/(Vc*rhoc*cp)';
ec3='Q=UA*(T-Tcout)';
[UA,Q,Tcout]=solve(ec1,ec2,ec3, 'UA,Q,Tcout')

y con
syms UA Q Tcout
[UA,Q,Tcout]=solve('0=F/V*(T0-T)-Q/(V*rho*Cp)','0=Fc*(Tcin-Tcout)/Vc+Q/(Vc*rhoc*cp)','Q=UA*(T-Tcout)');

pero no consigo resolverlo. Muchas gracias de antemano
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 31/03/2011 16:53:24
Hola José
Me gustaria ver, que te esta arrojando cuando ejecutas en matlab.
Seria de mucha ayuda para poderte ayudar. Hay veces el problema esta en las versiones matlab, asi un programa que se ejecuta muy bien en una version actual, pueda que en versiones anteriores no se ejecute bien y arroje errores.

saludos: JOSE JEREMIAS CABALLERO
PROFESOR DE METODOS NUMERICOS Y DE MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 17:00:15
Esto es lo que obtengo con la 1ª opcion:
UA =

Cp*F*T0*rho - Cp*F*T*rho


Q =

(Cp*F*T0*rho - Cp*F*T*rho + Fc*Tcin*cp*rhoc)/(Fc*cp*rhoc)


Tcout =

-(Cp*F*Fc*T*cp*rho*rhoc - Cp*F*Fc*T0*cp*rho*rhoc)/(Cp*F*T*rho - Cp*F*T0*rho + Fc*T*cp*rhoc - Fc*Tcin*cp*rhoc)

Se me crean las variables UA, Q and Tcout y en la columna value pone "<1x1 sym>", el contenido de ellas es lo mostrado arriba.

Con la 2ª opción me sale esto:
Warning: Explicit solution could not be found.
> In solve at 81
In Task1 at 34

Y se me crea solamente una variable UA de valor <0x0 sym>

Muchísimas gracias por tu pronta respuesta. Versión Matlab: 7.10
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 31/03/2011 17:03:47
Hola José.
Hice lo mismo que tu hicistes en Matlab y arrojo este resultado, solo que yo utilizo Matlab r2010b v7.11, derepente por alli esta el problema, observa que version de matlab tienes, para ello, digitas la sentencia "version" en la ventana de comandos y mostrará la version de matlab.

%el programa es:
%Quiero resolver estas tres ecuaciones, para las variables UA, Q y Tcout
clear
ec1='0=F/V*(T0-T)-Q/(V*rho*Cp)';
ec2='0=Fc*(Tcin-Tcout)/Vc+Q/(Vc*rhoc*cp)';
ec3='Q=UA*(T-Tcout)';
[UA,Q,Tcout]=solve(ec1,ec2,ec3, 'UA,Q,Tcout')

%EJECUCION DEL PROGRAMA

>> ecsimbolica
UA =
Cp*F*T0*rho - Cp*F*T*rho

Q =
(Cp*F*T0*rho - Cp*F*T*rho + Fc*Tcin*cp*rhoc)/(Fc*cp*rhoc)

Tcout =
-(Cp*F*Fc*T*cp*rho*rhoc - Cp*F*Fc*T0*cp*rho*rhoc)/(Cp*F*T*rho - Cp*F*T0*rho + Fc*T*cp*rhoc - Fc*Tcin*cp*rhoc)



Si hay dudas vuelves a escribir.

saludos: JOSE JEREMIAS CABALLERO
PROFESOR DE METODOS NUMERICOS Y DE MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 17:03:06
Acabo de dar con la solución. Simplemente copiar el resultado obtenido en command window y la solución aparece...

Aún así, ya que estoy: ¿cómo puedo poner para que asigne el valor a la variable (no la resolución explicíta de la variable)

Gracias
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 31/03/2011 17:12:33
Nuevamente Hola Jose:

No entiendo mucho tu pregunta, pero parece que quieres decir como sacar un valor numerico a UA, Q, Tcout, si ese es tu pregunta necesitas los valores numericoss de los que no son variales. Si es asi mandame tus datos numericos de los demas q no son variables, ademas dime solo quieres resolver el problema solo para un unico datos o para un conjunto de datos, por ejemplo:
quiero resolver: x=5, y=6; x=10; y=13, x=20; y=24.


Si hay dudas vuelves a escribir.

saludos: JOSE JEREMIAS CABALLERO
PROFESOR DE METODOS NUMERICOS Y DE MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 17:21:50
Solamente para estos valores:
%Data tank
V=2.1; %m3;
T=85.4; %ºC

%Data inlet flow
F=0.085; %m3/min
T0=150; %ºC
rho=10^6; %g/m3
Cp=1; %cal/(g ºC)

%Data cooling coil
Tcin=25; %ºC
Fc=0.5; %m3/min. Max=1, Min=0
cp=1; %ºC
rhoc=10^6; %g/m3
Vc=0.2; %m3

Muchísimas gracias José
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 31/03/2011 17:58:50
Nuevamente Hola Jose.
Ya cambie tu problema para que arroje valores numericos. Verifica lo valores que cambiado, porq ahorita estoy aserando a 3 personas al mismo, derepente haya errores solo en el cambio de variables.

%elprograma
ec1='0=0.085/2.1*(150-85.4)-Q/(2.1*10^6*1)';
ec2='0=0.5*(25-Tcout)/0.2+Q/(0.2*10^6*1)';
ec3='Q=UA*(85.4-Tcout)';
[UA,Q,Tcout]=solve(ec1,ec2,ec3, 'UA,Q,Tcout')

Ejecucion del programa
>> ecsimbolica
UA =
5491000.0


Q =
35.982


Tcout =
111113.35950463393905054838318022

saludos: JOSE JEREMIAS CABALLERO
PROFESOR DE METODOS NUMERICOS Y DE MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 18:03:42
Entonces, ¿tengo que poner OBLIGATORIAMENTE el valor de las variables para resolverlo?

No te tendrías que haber molestado en hacerlo; y sí, esos son los valores que salen, sólo que los datos están cambiados.

Si puedes, y ya por curiosidad más que necesidad, respóndeme a la pregunta cuando puedas. Gracias
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 31/03/2011 18:14:25
"Entonces, ¿tengo que poner OBLIGATORIAMENTE el valor de las variables para resolverlo?"
no entiendo tu pregunta, porque si quieres un valor numerico necesariamente tienes q ponerlo en la ecuacion los valores numericos q tienes. Ahora si quieres q los valores numericos sean arbitrarios entoces alli cambia las cosas. Para mas preguntas conectate via messenger ahorita, para poder absolver tus dudas con mas facilidad. Porq dentro de 30 minutos me voy a universidad nacional mayor de San Marcos- Peru. Bueno mi correo lo tienes arriba

saludos: JOSE JEREMIAS CABALLERO
PROFESOR DE METODOS NUMERICOS Y DE MATLAB
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 02/04/2011 00:45:00
"Y a lo que me refiero es si puedo dejar el sistema en función de las variables para, en caso de que esté trabajando en otro punto de operación, sólo con cambiar el valor numérico de las "no variables" obtenga el resultado"
La respuesta esta pregunta es: si se puede hacer lo pides.

Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 02/04/2011 01:41:36
HOLA JOSE.
Habian algunos errores en tus avances que hicistes, pero que ya los arreglé y ademas lo he puesto en cierta manera para datos arbitrarios pero fijos. Ah tambien se puede leer datos desde el teclado, eso si seria más general.


%Aqui esta el programa.
clear
V=num2str(2.1); T=num2str(85.4);
F=num2str(0.085); T0=num2str(150); rho=num2str(10^6); Cp=num2str(1);
Tcin=num2str(25); Fc=num2str(0.5); cp=num2str(1); rhoc=num2str(10^6); Vc=num2str(0.2);

ec1=['0=',F,'/',V,'*','(',T0,'-',T,')','-','Q','/','(',V,'*',rho,'*',Cp,')'];
ec2=['0=',Fc,'*(',Tcin,'-','Tcout',')/',Vc,'+','Q','/(',Vc,'*',rhoc,'*',cp,')'];
ec3=['Q=','UA*(',T,'-','Tcout)'];
[Q,Tcout,UA]=solve(ec1,ec2,ec3, 'Q,Tcout,UA')

%EJECUCION:
>> ecsimbolica
Q =
5491000.0

Tcout =
35.982

UA =
111113.35950463393905054838318022


Saludos: JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
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

resolver sistema ecuaciones no linealies matlab

Publicado por José David (6 intervenciones) el 31/03/2011 22:19:24
Algo está mal.
El valor que has obtenido de Q es el de Tcout, el de Tcout es el de UA, y el de UA es Tcout. La solución debería ser esta:
% UA=111113.359504634; %cal/(min ºC)
% Q=5490999.999999999; %cal/min
% Tcout=35.982; %ºC

Y a lo que me refiero es si puedo dejar el sistema en función de las variables para, en caso de que esté trabajando en otro punto de operación, sólo con cambiar el valor numérico de las "no variables" obtenga el resultado.

Gracias por tu ayuda. PD: Ya te agregué al Messenger
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

resolver sistema ecuaciones no linealies matlab

Publicado por david (1 intervención) el 06/11/2012 11:28:24
Perdona José, podrías decirme como se usa el comando csolve en matlab para ecuaciones no lineales, gracias!
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 06/11/2012 16:46:48
No existe el comando csolve() en matlab,
lo que si existen son: solve() para ecuaciones, y dsolve() ecuaciones diferenciales.
De como se usa el solve(), lo tienes en la primera respuesta que le doy al usuario original que hizo la pregunta.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
jjcc94@hotmail.com

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

resolver sistema ecuaciones no linealies matlab

Publicado por Alvaro (2 intervenciones) el 28/01/2013 09:51:26
Buenos Dias:
Necesito resolver el lugar geométrico de los puntos cuya distancia a una recta y una circunferencia medida sobre radios lanzados desde el centro de la segunda guarda una proporcion constante en las coordenadas que se muestran en las ecuaciones.
beta se encuentra comprendido en el intervalo [0°,45°].

1. x=r(beta)*sin(beta);
2. y=r(beta)*sin(beta);
re>=ri (Valores fijos ctes); n=Proporcion cte.
3. r(beta)=((re/cos(beta))-ri)*n+ri;

Necesito obtener y(x). Llego a la siguiente ecuacion en la que me gustaria despejar beta(x):
4. x(beta)= [((re/cos(beta))-ri)*n+ri]*sin(beta);
De momento he resuelto el problema en otras coordenadas y saco los puntos por interpolacion de valores predefinidos. Hay alguna manera aparte de solve para despejar esta ecuacion con Matlab. Se les ocurre alguna relacion trigonometrica que se me haya pasado por alto para poder despejar la ecuacion (4).
Muchisimas gracias de antemano
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 JEREMIA CABALLERO

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIA CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 29/01/2013 16:45:19
Tu pregunta no es clara.
r(beta), ese como se entiende. Se mas claro en tus preguntas.
porque no pones los valores de tus datos.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

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

resolver sistema ecuaciones no linealies matlab

Publicado por Alvaro (2 intervenciones) el 29/01/2013 17:02:17
Hola,
siento la falta de claridad. r(beta) es el modulo del vector definido por cada punto del lugar geometrico con el origen. Esta distancia varia con el angulo al que he llamado beta en este caso. r(beta) esta definido en la ecuacion 3.

la constante n esta comprendida en el intervalo [0,1] que tambien falta por definir.
Mi pregunta es simplemente si hay alguna funcion de matlab que me per
mita despejar y en funcion de x, y si no es asi si se les ocurre algun metodo para hacerlo.
Espero haber sido mas claro en la exposicion del problema esta vez.
Muchas gracias por la respuesta. Un saludo.
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 29/01/2013 17:27:04
Tu pregunta sigue mal planteada.
No mencionas cuales son tus datos y cuales son tus incógnitas.
Mejora tu idea en hoja y luego haz una pregunta bien clara.
Recuerda que muchos personas entran el foro y leen las pregunta que se encuentran, unos por querer ayudar y otros porque buscan informacion. Y por lo general cada persona que lee, en la primera leída quiere entender la pregunta y si no le entiende la pregunta simplemente lo deja, y se va a otra pregunta.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

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

resolver sistema ecuaciones no linealies matlab

Publicado por andres galvis (1 intervención) el 23/03/2014 18:45:19
Hola Jose , me parece muy buena tu ayuda a los que estamos aprendiendo matlab, por eso recurro a ella preguntándote lo siguiente:

De una grafica tengo los puntos C1,C2, C3 y Phid1, Phid2, Phid3 (Phid vs. C). Ademas tengo una ecuacion que representa la forma de estos puntos. De esta ecuacion debo conseguir unas constantes a1, a2, a3, y por consiguiente e implementado solve para hacerlo, sin embargo me aparece lo siguiente: Warning: Explicit solution could not be found.
> In solve at 81

El programa que llevo hasta ahora es el siguiente:

% pido las variables
T= input('la temperatura en K es:');
R=0.082; %atm*l / mol*K

% representa la curva total
curvexp;
hold on

% valores de concentración para la región alfa
C=C(1:3);
% valores de presión para la región alfa
Phid=Phid(1:3);
% representa puntos experimentales
semilogy(C,Phid,'r o');
hold on


% aproximación de coeficientes para ajuste de curva (valores iniciales)
F1=sym('(a1*(Phid(1)^(a2))*exp(-a3*Phid(1)))=C(1)');
F2=sym('(a1*(Phid(2)^(a2))*exp(-a3*Phid(2)))=C(2)');
F3=sym('(a1*(Phid(3)^(a2))*exp(-a3*Phid(3)))=C(3)');

[a1,a2,a3] = solve(F1,F2,F3);

a1=eval(a1);
a2=eval(a2);
a3=eval(a3);

disp(a1);
disp(a2);
disp(a3);

% determinación de las primeras variables de la ecuación a partir de las constantes
% encontradas
gam=a2*2;
Vmol=(a3*R*T)/gam;

disp(gam)
disp(Vmol)

De antemano te agradezco la ayuda y cualquier inquietud me la comunicas, Gracias.
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

resolver sistema ecuaciones no linealies matlab

Publicado por Edinson (1 intervención) el 23/07/2014 11:42:07
>> syms a b c d
>> [a,b,c,d] = solve('a=29.6-b* sin(c-d)','b=(34.7-a)/sin(2c-d)','a+b*Sin(3c-d)=46.1','a+b*sin(4c-d)=59.0')
me ayudan por favor no me sale el ejercicio
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 28/07/2014 04:53:11
1
2
>> syms a b c d
>> [x] = solve(a-(29.6-b*sin(c-d)),b-((34.7-a)/sin(2*c-d)),a+b*sin(3*c-d)-46.1,a+b*sin(4*c-d)-59.0,'a','b','c','d')

no resuelve.
Usa un método iterativo para resolver, una opción seria método de Newton para sistemas no lineales.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
Estimado Usuario de Matlab, el correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

resolver sistema ecuaciones no linealies matlab

Publicado por Karen (1 intervención) el 24/06/2015 19:36:55
Buenas Tardes
Muy buenas tu ayuda en matlab
Quisiera saber si existe um comando que puede ajudarme a resolver la siguiente ecuacion o a simplificar
syms alfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Parte de un x=[0.4248;   -0.0104;   -0.5884;   -0.9603;    1.5596]
A=[-1,-1,-1,-1,-1;-2,-1,-2,-1,-2;-1,-1,-1,1,1;-3,-2,-1,0,1;-2,-4,1,2,0;1,1,1,0,0;0,1,1,1,0;0,0,1,1,1]
%% Restriciones ativas 2 3 4 5 6
Aq=A([2,6,8],:)
I=eye(5)
Aux=Aq*Aq';
Au=inv(Aux)
Pk=I-Aq'*Au*Aq
 
f = x(1)^2+2*x(2)^2+3*x(3)^2+x(4)^2+3*x(5)^2-0.1*x(1)*sin(x(1)/5)-0.5*x(2)*cos(x(2)/4)+x(1)*x(3)-x(2)*x(4)+x(3)*x(5)-(2*x(1)/(x(3)^2+1))+(2*x(3)/(x(5)^2+1))-(30*x(5)/(x(1)^2+4))+x(2)+x(4)
% gradiente
gradiente=[ 2*x(1) + x(3) - sin(x(1)/5)/10 - (x(1)*cos(x(1)/5))/50 - 2/(x(3)^2 + 1) + (60*x(5)*x(1))/(x(1)^2 + 1)^2
            4*x(2) - x(4)- cos(x(2)/4)/2 + (x(2)*sin(x(2)/4))/8 + 1
            x(5)+ x(1) + 6*x(3) + 2/(x(5)^2 + 1) + (4*x(1)*x(3))/(x(3)^2 + 1)^2
            2*x(4)- x(2) + 1
            6*x(5) + x(3) - 30/(x(1)^2 + 1) - (4*x(5)*x(3))/(x(5)^2 + 1)^2]
Direcion=-Pk*gradiente
digits(5)
x=sym(x,'d')
Direcion=sym(Direcion,'d')
 
funcaoalfa=((x(1)+alfa*Direcion(1))^2+2*(x(2)+alfa*Direcion(2))^2+3*(x(3)+alfa*Direcion(3))^2+(x(4)+alfa*Direcion(4))^2+3*(x(5)+alfa*Direcion(5))^2-0.1*(x(1)+alfa*Direcion(1))*sin((x(1)+alfa*Direcion(1))/5)-0.5*(x(2)+alfa*Direcion(2))*cos((x(2)+alfa*Direcion(2))/4)+(x(1)+alfa*Direcion(1))*(x(3)+alfa*Direcion(3))-(x(2)+alfa*Direcion(2))*(x(4)+alfa*Direcion(4))+(x(3)+alfa*Direcion(3))*(x(5)+alfa*Direcion(5))-(2*(x(1)+alfa*Direcion(1))/((x(3)+alfa*Direcion(3)).^2+1))+2*(x(3)+alfa*Direcion(3))-(30*(x(5)+alfa*Direcion(5))/((x(1)+alfa*Direcion(1)).^2+4))+(x(2)+alfa*Direcion(2))+(x(4)+alfa*Direcion(4))==0)
[alfa]=solve(funcaoalfa)

La que me da matlab es lo siguiente alfa =[ empty sym ]
Y quisiera si existe otra forma de resolvel la funcaoalfa

Muchas Gracias por la ayuda
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

resolver sistema ecuaciones no linealies matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 24/06/2015 19:54:56
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
>> sistemas
 
x =
 
    0.4248
   -0.0104
   -0.5884
   -0.9603
    1.5596
 
 
A =
 
    -1    -1    -1    -1    -1
    -2    -1    -2    -1    -2
    -1    -1    -1     1     1
    -3    -2    -1     0     1
    -2    -4     1     2     0
     1     1     1     0     0
     0     1     1     1     0
     0     0     1     1     1
 
 
Aq =
 
    -2    -1    -2    -1    -2
     1     1     1     0     0
     0     0     1     1     1
 
 
I =
 
     1     0     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     0     1     0
     0     0     0     0     1
 
 
Au =
 
    0.6667    0.8333    0.8333
    0.8333    1.4167    0.9167
    0.8333    0.9167    1.4167
 
 
Pk =
 
    0.2500   -0.2500    0.0000    0.2500   -0.2500
   -0.2500    0.5833   -0.3333    0.0833    0.2500
    0.0000   -0.3333    0.3333   -0.3333         0
    0.2500    0.0833   -0.3333    0.5833   -0.2500
   -0.2500    0.2500         0   -0.2500    0.2500
 
 
f =
 
   -4.8742
 
 
gradiente =
 
   27.2852
    1.4187
   -1.5150
   -0.9102
  -16.3332
 
 
Direcion =
 
  -10.3224
    9.6479
    0.6745
  -10.9969
   10.3224
 
 
x =
 
  0.4248
 -0.0104
 -0.5884
 -0.9603
  1.5596
 
 
Direcion =
 
 -10.322
  9.6479
  0.6745
 -10.997
  10.322
 
 
funcaoalfa =
 
3*(10.322*alfa + 1.5596)^2 - 0.0001*alfa - (309.66*alfa + 46.788)/((10.322*alfa - 0.4248)^2 + 4) + (10.997*alfa + 0.9603)^2 + (0.6745*alfa - 0.5884)*(10.322*alfa + 1.5596) + (10.322*alfa - 0.4248)^2 + (9.6479*alfa - 0.0104)*(10.997*alfa + 0.9603) + 2*(9.6479*alfa - 0.0104)^2 + 3*(0.6745*alfa - 0.5884)^2 - (10.322*alfa - 0.4248)*(0.6745*alfa - 0.5884) + (20.644*alfa - 0.8496)/((0.6745*alfa - 0.5884)^2 + 1) - sin(2.0644*alfa - 0.08496)*(1.0322*alfa - 0.04248) - cos(2.412*alfa - 0.0026)*(4.8239*alfa - 0.0052) - 2.1475 == 0
 
 
alfa =
 
0.060195


Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com
Estimado Usuario de Matlab, el correo es para servicios de programación, toda ayuda gratuita es vía foro.


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

resolver sistema ecuaciones no linealies matlab

Publicado por dilialopez (1 intervención) el 15/10/2015 22:32:28
hola estoy tratando de resolver este sistema de ecuaciones pero no ha sido posible.

1
2
3
4
5
6
input en matlab
>> ec1='0=(x1*(sxx-s1))+(x2*sxy)+(x3*sxz)';
ec2='0=(x1*sxy)+(x2*(syy-s1))+(x3*syz)';
ec3='0=(x1*sxz)+(x2*syz)+(x3*(szz-s1))';
ec4='1=(x1^2)+(x2^2)+(x3^2)';
[x1,x2,x3]=solve(ec1,ec2,ec3,ec4, 'x1,x2,x3')

respuesta obtenida

Warning: 4 equations in 3 variables.
> In C:\Program Files\MATLAB\R2013b\toolbox\symbolic\symbolic\symengine.p>symengine at 56
In mupadengine.mupadengine>mupadengine.evalin at 97
In mupadengine.mupadengine>mupadengine.feval at 150
In solve at 170
Warning: Explicit solution could not be found.
> In solve at 179

x1 =

[ empty sym ]


x2 =

[]


x3 =

[]
agradeceria su ayuda lo mas pronto posible muchas gracias
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