Matlab - sist. ecuaciones exponenciales

 
Vista:

sist. ecuaciones exponenciales

Publicado por lucía (4 intervenciones) el 03/07/2011 14:54:13
Hola!

quiero resolver un sistema de dos ecuaciones en matlab. Se trata de la función integrada de una distribución normal. Las ecuaciones son:

81.17=R^2*a*(1-exp(-100/(R^2)))
983.4=R^2*a*(exp(-100/(R^2))-exp(-3600/(R^2))

He tratado de resolver el sistema en matlab para las incógnitas 'R' y 'a' definiendo 'R' como positiva, pero no lo he logrado. Alguien me puede ayudar?

Muchas gracias.
Un saludo
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

sist. ecuaciones exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 03/07/2011 17:40:39
HolaLucia.
Desconosco "la función integrada de una distribución normal ", pero si quieres resolver el sistema , tienes que utilizar la funcion solve, para mayor informacion digita en la ventana de comandos de matlab. help solve.
%====================================
clear all
e1='R^2*a*(1-exp(-100/(R^2)))-81.17=0';
e2='R^2*a*(exp(-100/(R^2)))-exp(-3600/(R^2))-983.4=0';
[R,A]=solve(e1,e2,'R','a')
%=====================================

>> sistemas
R =
(1/(0.01*log(z) + 0.06283185307179586476925286766559*k*i))^(1/2)


-1.0*(1/(0.01*log(z) + 0.06283185307179586476925286766559*k*i))^(1/2)


A =
exp(log(z) + 6.283185307179586476925286766559*k*i)*(0.01*log(z) + 0.06283185307179586476925286766559*k*i)*(1/exp(36.0*log(z) + 226.19467105846511316931032359612*k*i) + 983.4)

exp(log(z) + 6.283185307179586476925286766559*k*i)*(0.01*log(z) + 0.06283185307179586476925286766559*k*i)*(1/exp(36.0*log(z) + 226.19467105846511316931032359612*k*i) + 983.4)


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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

sist. ecuaciones exponenciales

Publicado por Lucía (4 intervenciones) el 03/07/2011 18:14:52
Hola Jose,

muchas gracias por tu respuesta. Había probado ya con solve, pero sin igualar las ecuaciones a cero.

Creo que me he expresado mal en mi comentario anterior. Las ecuaciones que tengo resultan de integrar en r y en θ la función de una distribución normal o Gaussiana de forma P(r)=a*exp(-r^2/R^2) en coordenadas polares para dos rangos diferentes de la variable r. Tengo el valor de esas dos integrales, es decir P, para los correspondientes rangos de r, pero desconozco 'R' y 'a'´, que son las constantes de la distribución normal. Con tu código obtengo los valores de 'R' y 'a', pero no entiendo qué son k, i y z.

Muchas gracias por tu 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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

sist. ecuaciones exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/07/2011 15:46:39
Hola.
En tu segunda ecuacion te falta cerrar un paréntesis.
Estoy asumiendo que es asi: 983.4=R^2*a*(exp(-100/(R^2)))-exp(-3600/(R^2))

por lo tanto la solucion seria.
%========================================
clear all,clc
%R^2*a*(1-exp(-100/(R^2)))=81.17; %.... (1)
%R^2*a*(exp(-100/(R^2)))-exp(-3600/(R^2))=983.4 %.... (2)
%luego (1) en (2): tenemos
%81.17/(1-exp(-100/(R^2)))-exp(-3600/(R^2))=983.4
%x=R^2;
[x]=solve('81.17/(1-exp(-100/x))*(exp(-100/(x)))-exp(-3600/x)=983.4','x');
R=sqrt(x)
X=double(x);
X=num2str(X);
[a]=solve([X,'*a*(1-exp(-100/(',X,')))=81.17'],'a')
%========================================


EJECUCION

>> ecuacion
R =
35.509737374666452185306271131454

a =
0.8443116515848699994753089227722


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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

sist. ecuaciones exponenciales

Publicado por Lucía (4 intervenciones) el 04/07/2011 18:51:21
Hola Jose,

gracias por tu comentario. Me faltaba cerrar el paréntesis, pero no donde tú lo has hecho, sino al final del todo. Sorry! :(

La segunda ecuación es así:

983.4=R^2*a*(exp(-100/(R^2))-exp(-3600/(R^2)))

Con el código que me has mandado y poniendo entonces la resta de exponenciales dentro del paréntesis, R se calcula en función de z1, i y k, y no me da una solución numérica, que es lo que busco.

He tratado de simplificar la ecuación haciendo lo siguiente:

% R^2*a*(1-exp(-100/(R^2)))=81.17; %.... (1)
% R^2*a*(exp(-100/(R^2))-exp(-3600/(R^2)))=983.4 %.... (2)
% luego (1) en (2): tenemos
% 81.17/(1-exp(-100/(R^2)))*(exp(-100/(R^2))-exp(-3600/(R^2)))=983.4
% x=R^2;
% Pasando el primer término de la izda a la dcha. y reagrupando
% exp(-100/x)-exp(-3600/x)=12.115*(1-exp(-100/x))
% 13.115*(exp(-100/x))-exp(-3600/x)=12.115

[x]=solve('13.115*(exp(-100/x))-exp(-3600/x)=12.115','x');

Pero tampoco me sale. Alguna idea?

Muchas gracias!
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

sist. ecuaciones exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 06/07/2011 15:54:25
hola Lucia.
Una solución alternativa es aproximar mediante métodos iterativos para sistemas de ecuaciones no lineales.
algunas sugerencias:

1). Método de Punto Fijo
2). Método de Newton
Variantes del método de Newton
3). Evaluación diferida del jacobiano
4). Aproximación por diferencias finitas
5). Newton unidimensional
6). Métodos cuasi-Newton (Broyden)

estos temas lo extraje desde internet, la informacion está colgada en la red.

http://www.upv.es/mattel/asig/numerico2/sisnolin/practsnl.ppt

Aunque el metodo de newton para sistemas no lineales tiene problema en el jacobiano especificamente para tu problema.
Porque he aplicado programa de metodo de newton para sistemas no lineales y he tenido justamente problema en la inversa del jacobiano.

Entonces la opcion seria probar con otras metodos.
Aunque te comento que tu pregunta es interesante, problemas asi, son los que a uno lo lleva aun proceso de investigación mas y mas.

Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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

sist. ecuaciones exponenciales

Publicado por Lucía (4 intervenciones) el 20/07/2011 16:07:23
Hola Jose,

muchas gracias por tu respuesta. Intentaré resolverlo con métodos iterativos.

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

sist. ecuaciones exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 20/07/2011 16:19:47
hola Lucia.
1). Primero prueba que tu sistema tenga solucion
2). Ademas que sea unica.
Porque podemos estar trajando en un sistema que no tiene solucion, por lo tanto tampoco los metodos iterativos, podran resolverlo. Ya que el Jacobiano por el metodo de Newton, se vuelve indetermiando.

No me dado tiempo para hacerlo.
Bueno tendras estudiar fuerte matematica. Para eso es la carrera de matematica.


Saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
[email protected]
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