Мне нужно решить задачу наименьших квадратов без каких-либо известных оценок параметра. Я налагаю ограничение на то, чтобы желаемое решение было гладким (параметры модели меняются медленно), поэтому я минимизирую разницу между соседними параметрами (традиционное средство, используемое для решения этой геологической проблемы).
Ограничения реализуются путем размещения уравнений ограничения в виде строк в уравнении исходных данных d = Gm. Вспомогательный параметр w выбирается методом проб и ошибок (в некоторых учебниках w называется множителем Лагранжа).
У меня есть следующее:
G = np.array([[1,0,1,0,0,6],
[1,0,0,1,0,6.708],
[1,0,0,0,1,8.485],
[0,1,1,0,0,7.616],
[0,1,0,1,0,7],
[0,1,0,0,1,7.616]])
d = np.array([[2.323],
[2.543],
[2.857],
[2.64],
[2.529],
[2.553]])
Теперь добавляем ограничение произвольной w-взвешенной гладкости (w = 0,01):
w = 0.01
G = np.array([[1,0,1,0,0,6],
[1,0,0,1,0,6.708],
[1,0,0,0,1,8.485],
[0,1,1,0,0,7.616],
[0,1,0,1,0,7],
[0,1,0,0,1,7.616],
[w,-w,0,0,0,0],
[0,w,-w,0,0,0],
[0,0,w,-w,0,0],
[0,0,0,w,-w,0],
[0,0,0,0,w,-w]])
d = np.array([[2.323],
[2.543],
[2.857],
[2.64],
[2.529],
[2.553],
[0],
[0],
[0],
[0],
[0]])
Однако, выбирая правильное значение w является ключевым шагом для ограничения хорошего решения для параметров модели.
Итак, мой вопрос: с Python есть ли способ, которым я могу l oop по многим расчетным решениям с различными значениями для w и выбрать значение, которое использовалось для достижения решения с наилучшим качеством