Matlab - Iteracion matlab elementos finitos

 
Vista:

Iteracion matlab elementos finitos

Publicado por Marimar (4 intervenciones) el 30/03/2019 19:34:29
hola tengo un problema de fractura de elementos finitos (aunque no sepais del tema podeis ayudar). En este tengo dos ecuaciones.
>> z(1) = f_t/y(2)*(h-a_0-y(1))^2*b/2-y(1)*f_t/2*b-f_t/2*max(1-y(1)/y(2)*eps_t/eps_max,0)*(y(1)-y(2))*b;
>>z(2) = f_t/y(2)*(h-a_0-y(1))^3*b/3+f_t*y(2)^2*b/3+f_t*max(1-y(1)/y(2)*eps_t/eps_max,0)*(y(1)^2-y(2)^2)*b/2 +f_t/2*(1-max(1-y(1)/y(2)*eps_t/eps_max,0))*(y(1)^2 +y(1)*y(2)-2*y(2)^2)*b/3-P*L/4;


Estas dos las defino en una funcion y realizo un fsolve (z=0) y hallo mi incognita y y el error cometido (FVAL de fsolve). Mi problema es que para realizar esto debo de probar diferentes valores de P hasta que me salga un error 0. Me preguntaba si habria una manera de resolver el problema para no ir yo manualmente o con un for, variando el valor de P. Es decir, si habria una manera de obtener "y" y "P" minimizando el error.
NOTA: de las ecuaciones todos son valores conocidos menos P e y(1), y(2).

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

Iteracion matlab elementos finitos

Publicado por JOSE JEREMIAS CABALLERO (5862 intervenciones) el 30/03/2019 22:36:07
1
2
3
4
5
6
7
8
clear
 
P=[0.1576    0.9706    0.9572    0.4854    0.8003    0.1419    0.4218    0.9157    0.7922    0.9595]
for i=1:lenth(P)
z(1) = f_t/y(2)*(h-a_0-y(1))^2*b/2-y(1)*f_t/2*b-f_t/2*max(1-y(1)/y(2)*eps_t/eps_max,0)*(y(1)-y(2))*b;
z(2) = f_t/y(2)*(h-a_0-y(1))^3*b/3+f_t*y(2)^2*b/3+f_t*max(1-y(1)/y(2)*eps_t/eps_max,0)*(y(1)^2-y(2)^2)*b/2 +f_t/2*(1-max(1-y(1)/y(2)*eps_t/eps_max,0))*(y(1)^2 +y(1)*y(2)-2*y(2)^2)*b/3-P(i)*L/4;
T=fsolve(z)
end

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
Val: 919
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Iteracion matlab elementos finitos

Publicado por Daniel (348 intervenciones) el 31/03/2019 11:26:14
Hola,

En lugar de optimizar un vector de dos elementos (y) puedes optimizar uno de tres en el que añades P. Es decir, crear un nuevo vector w = [y, P] y optimizar este para tanto y como P de solver.

Saludos,
Daniel Rodríguez.
Analytics Lane
Matlab en Analytics Lane
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

Iteracion matlab elementos finitos

Publicado por Maria del Mar (4 intervenciones) el 31/03/2019 11:53:15
Muchas gracias, no entiendo muy bien lo que me dices. Me lo podrías explicar mejor porfi.
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: 919
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Iteracion matlab elementos finitos

Publicado por Daniel (348 intervenciones) el 31/03/2019 12:03:21
Hola,

Entiendo que tienes una función fz(y, P) que es la que usas en solver para encontrar los valores tanto de y como P y que minimizan la función. Ahora, si creas una función

1
2
3
function z = fw(w)
    z = fz(w(1:2), w(3))
end

Puedes usar solver para obtener a la vez los tres parámetros que minimizan la función z. Así se tiene y = w(1:2) al mismo tiempo que P = w(3). Entiendo que esto es lo que buscas, ¿no?

Saludos,
Daniel Rodríguez.
Analytics Lane
Matlab en Analytics Lane
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

Iteracion matlab elementos finitos

Publicado por Maria del Mar (4 intervenciones) el 31/03/2019 12:28:15
Yo tengo esas dos funciones que son balances de fuerzas y de momentos (que se igualan a 0). Mis incógnitas son "y" y "P". Lo qué he hecho hasta ahora ha sido dar valores a P y calcular y con fsolve (z=0) el valor de y. En la función fsolve da un parámetro que es FVAL que es lo que yo considero como el error. Yo quiero que este valor sea mínimo no z. Ese es mi problema. No sé cómo realizarlo
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: 919
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Iteracion matlab elementos finitos

Publicado por Daniel (348 intervenciones) el 31/03/2019 12:31:30
¿Has probado con fminsearch en lugar de fsolve?
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