Эквивалент `polyfit` для двумерного полинома в Python

Я хотел бы найти решение наименьших квадратов для коэффициентов a в

 z = (a0 + a1*x + a2*y + a3*x**2 + a4*x**2*y + a5*x**2*y**2 + a6*y**2 + a7*x*y**2 + a8*x*y) 

заданные массивы x , y и z длины 20. В основном я ищу эквивалент numpy.polyfit но для двумерного многочлена.

Этот вопрос аналогичен, но решение предоставляется через MATLAB.

One Solution collect form web for “Эквивалент `polyfit` для двумерного полинома в Python”

Вот пример, показывающий, как вы можете использовать numpy.linalg.lstsq для этой задачи:

 import numpy as np x = np.linspace(0, 1, 20) y = np.linspace(0, 1, 20) X, Y = np.meshgrid(x, y, copy=False) Z = X**2 + Y**2 + np.random.rand(*X.shape)*0.01 X = X.flatten() Y = Y.flatten() A = np.array([X*0+1, X, Y, X**2, X**2*Y, X**2*Y**2, Y**2, X*Y**2, X*Y]).T B = Z.flatten() coeff, r, rank, s = np.linalg.lstsq(A, B) 

корректирующие коэффициенты coeff :

 array([ 0.00423365, 0.00224748, 0.00193344, 0.9982576 , -0.00594063, 0.00834339, 0.99803901, -0.00536561, 0.00286598]) 

Заметим, что coeff[3] и coeff[6] соответственно соответствуют X**2 и Y**2 , и они близки к 1. потому что примерные данные были созданы с Z = X**2 + Y**2 + small_random_component .

  • Интерполяция 3d-массива в Python. Как избежать циклов?
  • Обмен столбцами с массивами NumPy
  • Эффективное создание массивов numpy из понимания списка и в целом
  • Передача numpy массивов строковых форматов в fortran с использованием f2py
  • Повторить массив NumPy без репликации данных?
  • Установка гауссова на гистограмму с помощью MatPlotLib и Numpy - неправильное масштабирование Y?
  • Нужна помощь в решении нелинейного ODE второго порядка в python
  • Map numpy `in1d` над двумерным массивом
  •  
    Interesting Posts for Van-Lav

    Ошибки модуля подпроцесса с «export» в python на linux?

    Инвертирование буферизированного массива numpy с использованием ~

    Если нарезка не создает копию списка или список (), как я могу получить реальную копию моего списка?

    TypeError: unhashable type: 'dict', когда dict используется как ключ для другого dict

    В чем смысл «_» в python?

    Напишите скрипт python, который рекурсивно просматривает ссылки на странице

    Получение пути модуля python

    python сохранение выходных данных из а для итерации и подпроцесса для контрольной суммы

    Обновление XML-элементов и значений атрибутов с использованием Python etree

    z3python: преобразование строки в выражение

    добавьте объект вместе с связанными объектами в том же виде в django admin

    Аргумент TypeError: function () после * должен быть последовательностью, а не генератором

    Python WX – возврат пользовательского ввода из wx-диалога

    Ярлык, на который не влияет AnchorLayout – Kivy

    Когда следует использовать list.count (0) и как мне сбрасывать товар «False»?

    Python - лучший язык программирования в мире.