Matlab - Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

 
Vista:
sin imagen de perfil
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por André (23 intervenciones) el 07/09/2018 03:50:28
Hola, en mi curso de cálculo numérico los sistemas de ecuaciones que tenía que resolver eran de la forma K*q=F, con todos los elementos de la matriz K completamente conocidos, así como también conocía todos los elementos del vector q, solo debía invertir la matriz K y ya tenía la solución del vector F.
Esta vez el problema es distinto, hay incógnitas tanto en el vector q como en el F, ¿cómo puedo resolver fácilmente este tipo de sistemas de ecuaciones?
Es importante destacar que el sistema que necesito resolver es lineal, donde K es una matriz de rigidez (cuadrada simetrica), q el vector desplazamiento, F el vector fuerzas


foto1
foto2


Esas imágenes que ven son capturas de pantalla de la propuesta para resolver ese tipo de sistemas, la cuestión me es que es muy complicado hacer eso en Matlab, ya que cuando reordeno el sistema, debo llevar las incógnitas del vector “q” a las primeras filas y al hacer esto la matriz K se desordena.
Maltab es un programa diseñado para trabajar con matrices, debe existir una forma fácil que desconozco para resolver ese tipo de sistemas.

Gracias por ayuda!
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
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por André (23 intervenciones) el 07/09/2018 13:52:06
Me equivoqué en la primera parte, deberia decir:
.... en mi curso de cálculo numérico los sistemas de ecuaciones que tenía que resolver eran de la forma K*q=F, con todos los elementos de la matriz K completamente conocidos, así como también conocía todos los elementos del vector F, solo debía invertir la matriz K y ya tenía la solución del vector q

No pude encontrar la opción para editar mi pregunta, no existe esa opcion?
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

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/09/2018 15:18:08
Podría poner un ejemplo en concreto.
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: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por André (23 intervenciones) el 07/09/2018 16:52:12
ejemplo_sistema

Ahí puede ver un ejemplo en concreto, pero el codigo debe ser valido para cualquier matriz nxn, como puede ver las incognitas son X2, X3 y F1 y F4
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

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/09/2018 17:19:28
¿como seria un ejemplo concreto para n=7, n=8?
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 JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/09/2018 17:29:11
Andrés la forma más rápida es que lo resuelvas con variables simbólicas de lo contrario debes aplicar una metodología similar al entrenamiento de redes neuronales artificiales en las que te tocaría ir iterando , pero puedes plantearlo simple así :

1
2
3
4
5
6
7
8
9
syms X2 X3 F1 F4
K=[8.5 -8.5 0 0;-8.5 132.5 -8.5 0; 0 -8.5 132.5 -8.5; 0 0 -8.5 8.5];
X=[400 X2 X3 100]';
F=[F1 0 0 F4]';
sol=solve(K*X==F);
disp('X2'); disp(vpa(sol.X2))
disp('X3'); disp(vpa(sol.X3))
disp('F1'); disp(vpa(sol.F1))
disp('F4'); disp(vpa(sol.F4))


X2
26.179649965682910089224433768016

X3
8.0945435827041866849691146190803

F1
3177.4729752916952642415923129719

F4
781.19637954701441317776252573782
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
6
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/09/2018 18:08:17
otra forma en que lo puedes hacer sin utilizar simbólicas es creando una función :

1
2
3
4
5
6
7
8
9
10
function evalua%dale el nombre que quieras pero este nombre debe coincidir con el nombre con que la guardes
format longG
clc
x = fminsearch(@resolver,[2 3 4 5]);
disp(x)
function y=resolver(x)
K=[8.5 -8.5 0 0;-8.5 132.5 -8.5 0; 0 -8.5 132.5 -8.5; 0 0 -8.5 8.5];
X=[400 x(1) x(2) 100]';
F=[x(3) 0 0 x(4)]';
y=sum((K*X-F).^2);


llegas a la misma respuesta :

26.1796499584773 8.09454364802933 3177.47301887768 781.196425221965
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
6
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

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/09/2018 18:42:36
1
2
3
4
5
6
7
8
9
10
clear
A=rand(4)
n=size(A,1)
X=sym('X%d',[n 1]);
F= sym('F%d', [n 1]);
X([1 4])=[400 100]
F(2:3)=0
R=solve(A*X-F)
R=struct2cell(R);
R=vpa(R,6)

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
>> rigidez1
 
A =
 
    0.6791    0.0377    0.0987    0.1366
    0.3955    0.8852    0.2619    0.7212
    0.3674    0.9133    0.3354    0.1068
    0.9880    0.7962    0.6797    0.6538
 
 
n =
 
     4
 
 
X =
 
 400
  X2
  X3
 100
 
 
F =
 
 F1
  0
  0
 F4
 
 
R =
 
  struct with fields:
 
    F1: [1×1 sym]
    F4: [1×1 sym]
    X2: [1×1 sym]
    X3: [1×1 sym]
 
 
R =
 
  382.957
  798.644
 -623.368
  1227.54


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
2
Comentar
sin imagen de perfil
Val: 45
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Resolver sistema de ecuaciones de la forma Kq=F, con incógnitas en q como en F

Publicado por André (23 intervenciones) el 09/09/2018 03:59:49
Gracias a todos por sus respuestas, ya solucionè el problema! Mi error fue tratarl el problema como un simple ejercicio de calculo numerico, pero debia tratarlo pensando con el método de elemetos finitos

Gracias a todos, 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