Scipy минимизируется с кондиционированиемPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Scipy минимизируется с кондиционированием

Сообщение Anonymous »

У меня есть функция трех переменных, которую я хочу оптимизировать. К сожалению, переменные имеют разные порядки величины, а это означает, что задача очень плохо обусловлена. Я справляюсь с этим, умножая переменную оптимизации на матрицу условий. (В приведенном ниже примере моя матрица обусловления является диагональной, поэтому я реализовал ее как вектор. Могут быть приложения для недиагональных матриц обусловления.)

Код: Выделить всё

import numpy as np
from scipy.optimize import minimize

def penalty(x):
# do stuff
return # result

conditioner = np.array([1000, 1, 0.1])
x0 = np.array([0.003, 1.415, 9.265]) * conditioner
optim_result = minimize(penalty, x0)
bestfit = optim_result.x / conditioner
Есть ли способ сделать это, который не требует ручного применения кондиционера или не требует от меня отслеживать, какие данные обрабатываются (например, bestfit) а какие нет (например, optim_result)?
Думаю, я мог бы поместить часть арифметики в функцию штрафа, вот так:

Код: Выделить всё

def penalty(x):
x_cond = x * conditioner
# do stuff
return # result
но это решает только половину проблемы.


Подробнее здесь: https://stackoverflow.com/questions/792 ... nditioning
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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