Рубрики
Без рубрики

Построение полиномов с Python

Узнайте, как участвовать полиномы, используя Python и Matplotlib.

Автор оригинала: Robin Andrews.

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

Будучи твердым верующим в обучении, я сразу застрял и начал изучать. Это было некоторое время с тех пор, как я много работал с полиномами, поэтому чтобы почувствовать, что я делал, я написал программу Python, чтобы помочь мне визуализировать полиномиальные функции с заданными коэффициентами. Это то, что я хочу поделиться в этом сообщении в блоге.

Полиномиальная функция – это функция, такая как квадратичная, кубическая, кварция и т. Д., включающая только неотрицательные целочисленные силы его входной переменной.

Форма полинома

Где А являются реальными числами (называются коэффициентами полинома). Например:

является полиномом степени 3, как 3 – самая высокая мощность X в формуле. Это называется кубическим полиномом. Обратите внимание, что нам не нужна каждая сила X до 3: нам нужно только знать самую высокую мощность X, чтобы узнать степень.

Листинг кода Python для построения полиномов

Эта программа использует Матплотлиб Для построения и numpy Для простого манипуляции массива, поэтому вам придется установить эти пакеты, если вы еще этого не сделали. Код прокомментирован, чтобы помочь вам понять, как он работает.

import numpy as np
import matplotlib.pyplot as plt

plt.style.use("fivethirtyeight")


def polynomial_coefficients(xs, coeffs):
    """ Returns a list of function outputs (`ys`) for a polynomial with the given coefficients and
    a list of input values (`xs`).

    The coefficients must go in order from a0 to an, and all must be included, even if the value is 0.
    """
    order = len(coeffs)
    print(f'# This is a polynomial of order {order - 1}.')

    ys = np.zeros(len(xs))  # Initialise an array of zeros of the required length.
    for i in range(order):
        ys += coeffs[i] * xs ** i
    return ys


xs = np.linspace(0, 9, 10)  # Change this range according to your needs. Start, stop, number of steps.
coeffs = [0, 0, 1]  # x^2

# xs = np.linspace(-5, 5, 100)  # Change this range according to your needs. Start, stop, number of steps.
# coeffs = [2, 0, -3, 4]  # 4*x^3 - 3*x^2 + 2

plt.gcf().canvas.set_window_title('Fun with Polynomials')  # Set window title
plt.plot(xs, polynomial_coefficients(xs, coeffs))
plt.axhline(y=0, color='r')  # Show xs axis
plt.axvline(x=0, color='r')  # Show y axis
plt.title("y =4*x^3 - 3*x^2 + 2")  # Set plot title
plt.show()

Есть пара примеров многочленов, предусмотренных в коде. После того, как вы проверили простые квадратичные ^ 2), используя две строки ниже:

xs = np.linspace(0, 9, 10)
coeffs = [0, 0, 1]  # x^2

Вы можете воткомить эти две линии, затем, как только у вас будет зависеть от того, как работает программа, вы можете попробовать настройку и построение собственных полиномов:

# xs = np.linspace(-5, 5, 100)  # Change this range according to your needs. Start, stop, number of steps.
# coeffs = [2, 0, -3, 4]  # 4*x^3 - 3*x^2 + 2

Введение программиста к математике: второе издание Джереми Кун

Я полностью рекомендую эту книгу для всех, кто стремится исследовать отношения между математикой и программированием на уровне примерно на основе бакалавриата. Это дружелюбный и тщательный, и есть полное хранилище примеров кода Python Code на Github.

Как ассортимент Amazon, я зарабатываю от квалификационных покупок.

Этот пост изучил, как участвовать полиномы с Python и Matplotlib. Я надеюсь, что вы нашли это интересно и полезно. Счастливые вычисления!