Решите Матрицу для неизвестных в Python / Numpy / Scipy
Мне нужно решить эту систему матриц для неизвестных u4
,f1
,f2
,f3
,f5
а также f6
для конкретного FEA
проблема. Я сгенерировал матрицу, содержащую числа с моим входом, и мне нужно решить ее для этих известных.
Код должен действовать следующим образом:
0 + 0 + 0 + 150*1000*u4 + 0 + 0 = −1732
следовательно, u4=-0.01154
поэтому другие неизвестные могут быть обнаружены следующим образом:
0 + 0 + 0 + (43:4)(−0:0115) 1000 + 0 + 0 = f1
следовательно f1=-500
и так далее....
Я новичок и знаком с основами Numpy и Python ООП. Пожалуйста, помогите мне настроить код для этого.
2 ответа
Вот:
from __future__ import division
from numpy import asarray as ar,sum as sums
A = ar([[25,-43.3,-25,43.3,0,0],
[-43.3,75,43.3,-75,0,0],
[-25,43.3,50,0,-25,-43.3],
[43.3,-75,0,150,-43.3,-75],
[0,0,-25,-43.3,25,43.3],
[0,0,-43.3,-75,43.3,75]])*1e3
u4 = -0.01154
B = ar([0,0,0,u4,0,0])
F = sums(A*B,axis=1)
Итак, вы будете иметь:
>>> F
array([ -499.682, 865.5 , 0. , -1731. , 499.682, 865.5 ])
In [0]: import numpy as np
In [1]: A = np.random.rand(6,6)
In [2]: a4 = A[3,:]
In [3]: u4 = -1732/a4[3]
In [4]: f = a4*u4
In [5]: f
Out[5]:
array([ -246.6101995 , -589.6732277 , -574.67690895, -1732. ,
-2592.99948033, -2383.52077134])
замещать A
или хотя бы четвертый столбец a4
по вашим данным...