Преобразование массива в полином - PullRequest
1 голос
/ 18 января 2020

Я делаю численный анализ, и в качестве результата я получил матрицу. В результате я хотел бы использовать matrix или массив для быстрого создания полиномов.

import matplotlib.pyplot as plt
import matplotlib.collections
import numpy as np

x1 = -2
x2 = -2 + (8 / 3)
x3 = -2 + (16 / 3)
x4 = -2 + (24 / 3)

A = np.array(
    [
        [1, x1, x1 ** 2, x1 ** 3],
        [1, x2, x2 ** 2, x2 ** 3],
        [1, x3, x3 ** 2, x3 ** 3],
        [1, x4, x4 ** 2, x4 ** 3],
    ]
)

R1 = np.array([[1], [0], [0], [0]])
N1 = np.linalg.solve(A, R1)


# The N1..N4 are my coefficients for my polynomium of third order.
# below I try to transform the N1 into a polynomium N1p`

N1p = np.array(N1.transpose()).tolist()
P1 = np.poly(N1p)

Это дает мне ошибку измерения. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 18 января 2020

Это ваш ожидаемый результат?

N1p = N1.transpose().reshape(-1)
P1 = np.poly(N1p)
P1
array([ 1.00000000e+00,  3.41796875e-02, -3.67412567e-02,  2.04887241e-03,
    2.08630809e-05])

P1.tolist()

[1.0,
 0.0341796875,
 -0.03674125671386719,
 0.002048872411251068,
 2.0863080862909555e-05]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...