Numpy-задача с большими числами, вычисление собственных значений и определителяPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Numpy-задача с большими числами, вычисление собственных значений и определителя

Сообщение Гость »


У меня есть этот код:

импортировать numpy как np из опыта импорта numpy Защиту foo(a,b): return np.array([[exp(-2*b*a), 0,-exp(b*a)/3 + exp(-2*b*a)/3], [0, exp(-2*b*a), 0], [-exp(b*a)/3 + exp(-2*b*a)/3,0, 10*exp(4*b*a)/9 - 2*exp(b*a)/9 + exp (-2*b*a)/9]]) a_s = np.linspace(0, 10, 100) b_s = np.linspace(0,1, 5, 100) store_det = np.zeros((len(a_s), len(b_s))) для i, b в перечислении (b_s): для j, a в enumerate(a_s): store_det[i,j] = np.linalg.det(foo(a,b)) print(f'max: {np.max(store_det)} \t min: {np.min(store_det)}') store_det_by_eigen = np.zeros((len(a_s), len(b_s))) для i, b в перечислении (b_s): для j, a в enumerate(a_s): w,v = np.linalg.eig(foo(a,b)) store_det_by_eigen[i,j] = w[0]*w[1]*w[2] print(f'max: {np.max(store_det_by_eigen)} \t min: {np.min(store_det_by_eigen)}') Определитель этого уравнения должен быть один для каждого действительного значения a и b.

Учитывая, что это дает массив 3x3, я хотел бы вычислить собственные значения и использовать их в расчетах. Произведение собственных значений должно быть равно определителю. Однако для определенных значений a и b произведение больше не равно 1.

Я делаю что-то не так? Как я могу это исправить?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»