Matlab - Sist. de ecuaciones no lineales - FSOLVE

 
Vista:

Sist. de ecuaciones no lineales - FSOLVE

Publicado por Pablo (8 intervenciones) el 02/09/2007 02:25:04
Hola, agradeceré cualquier ayuda con el comando FSOLVE.

Por ejemplo, quiero solucionar el siguiente sistema:

xy = 12
x + y = 7

¿Cómo escribo el código?

Mi problema es bastante más complejo que ese sistema (el mío es de 15 ecuaciones), pero con un ejemplo sencillo podré entender la idea.

Muchas gracias.

Pablo
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
sin imagen de perfil

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por Raúl Santiago (211 intervenciones) el 02/09/2007 13:57:53
Simplemente defines las variables simbólicas

syms x y

luego pones las ecuaciones y en función de que variables quieres resolver, para que te lo pueda hacer si tienes más variables qeu ecuaciones.ç

solve('x*y=12','x+y=5','x','y')

esta te saca dos respuestas por cada una, por tanto para verla, por ejm pon

ans.x

Luego puedes evaluar con eval, y si estás con simbólico simplificar, expandir o algo por el estilo que te sirva con

expand, eval, simplify, collect, pretty, etc

Aunqeu para simbólico es mejor maple.

Regresando a tu problema, como tienes el mismo numero de variables que ecuaciones puedes simplemente ponerlo así:

solve('x*y=12','x+y=5')

Como dices qeu tienes un sistema complejo, si matlab no es capaz lo que puedes es ayudarlo haciendolo por pasos, algo así

x1=solve(eq1,eq2,....,eqn,'x1')

x1=eval(x1)

y así para cada variable,

Si definitivamente no te sirva, mira maple, es mejor para resolver sistemas complejos
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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por Pablo (8 intervenciones) el 02/09/2007 21:22:23
Raúl, muchas gracias por tu respuesta, es lo que andaba buscando. Pero siempre que uno encuentra una respuesta, surge una nueva duda.

Debo resolver el sistema para hacer unos cálculos posteriores con el vector de soluciones. Supongamos que tengo un sistema de dos ecuaciones y 2 incógnitas, y quiero construir un vector que contenga esas soluciones. ¿Cómo lo hago? La solución queda en un "sym object", que no puedo manipular (o al menos no sé cómo).

Muchas gracias, nuevamente,

Pablo
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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por Raúl Santiago (211 intervenciones) el 06/09/2007 08:07:29
La cuestión es solo de almacenar, evaluar y almacenar en otra variable

Algo así

sol=solve(.....)

xs=eval(sol.x);

ys=eval(sol.y);

ya evaluando tienes los datos numéricos, y puedes trabajar todo lo que quieras
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 patrick sarmiento

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por patrick sarmiento (1 intervención) el 20/06/2009 18:06:05
tengo que resolver el siguiente sistema en matlab es un poco mas complejo pero me ayudaria el codigo de matlab


----------------------------------------------------------------------------------------------------------------
EN MATLAB

syms x y z

f= 6*exp(-1.8*(x^2+y^2))+ 5*exp(-1.5*(x^2+(y-1)^2)) +6.5*exp(-1.6*( (x-1)^2 + (y+1)^2 ) );

dfx=diff(f,x)

dfy=diff(f,y)

rta=solve(dfx,dfy)
----------------------------------------------------------------------------------------------------------------
..........llegados a este punto el matlab no logra la solucion
...............ahora nos vamos a el editor
----------------------------------------------------------------------------------------------------------------
EN MATLAB
edit

----------------------------------------------------------------------------------------------------------------
..........esto nos abre un editor .........ahora en el editor
----------------------------------------------------------------------------------------------------------------
EN EDITOR


function ps=nf(pe)
x=pe(1)
y=pe(2)
e1=dfx
e2=dfy
ps=(e1,e2)

----------------------------------------------------------------------------------------------------------------
..........guardamos el archivo como nf.m
...............ahora nos vamos a de nuevo a matlab
----------------------------------------------------------------------------------------------------------------

DE NUEVO EN MATLAB

rta=fsolve(@nf,[ 0 0])

----------------------------------------------------------------------------------------------------------------
..........esto nos debe resolver el sistema pero no lo hace
----------------------------------------------------------------------------------------------------------------




¿QUE ESTA MAL EN EL PROGRAMA? ¡ AYUDA POR FAVOR?
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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por kilburn (1 intervención) el 27/06/2009 17:28:35
good luck boy----
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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por Cesar (1 intervención) el 31/10/2009 17:36:02
Hola a todos: No se si se puede aplicar esta funcion en este caso pero igual mensiono mi problema y espero me puedan ayudar.

Debo hallar "A" para valores de P que van desde 0 a 380

La funcion es la siguiente:

P= 192.0635 - { [ 192.0635*( sen(2A) ) ] / ( pi - A ) }

Alguna idea de como resolverlo?

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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por Pedro (1 intervención) el 05/03/2014 12:59:01
Tengo un problema parecido y agradecería cualquier idea para poder resolverlo.

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

RE:Sist. de ecuaciones no lineales - FSOLVE

Publicado por ricarte briceño (1 intervención) el 09/09/2010 04:31:47
Hola, agradeceré cualquier ayuda con el comando FSOLVE.
buenas noches amigo le escribo para ver como activo en las opciones del fsolve
el metodo d gaus newton ya q el matlab me lo exige pero me arroja un 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