Python построение полинома - PullRequest
1 голос
/ 16 марта 2019

Я немного борюсь с питоном, так как я новичок в этом языке.В основном то, что я пытаюсь сделать, это прочитать из текстового файла x, y точек и построить их.Затем построите полином, коэффициенты которого сохранены в другом текстовом файле.Мне кажется, я добился построения координат x, y, но не могу обернуть голову вокруг этого пиплота и способа ввода данных, чтобы нарисовать полином.Полином и координаты x, y не имеют ничего общего.

import matplotlib.pyplot as plt
import numpy as np
x = []
y = []
with open ( "Points.txt","r") as f:
    for line in f:
        x.append(line.split()[0])
        y.append(line.split()[1])
x = list(map(int, x))
y = list(map(int, y))
plt.figure(figsize=(10,10))
plt.gca().set_aspect("equal")
plt.plot(x,y,'ro')
plt.axis([-15, 15, -15, 15])
j = open ("Lines.txt")
z = []
myReadLine = j.readline()
for i in range (6):
    z.append(myReadLine.split()[i])
z = list(map(int, z))
poly = np.poly1d(z)
plt.plot(i,poly(i))
plt.show()
j.close()

Некоторые входные данные для Points.txt:

-2 1
8 0
1 -3
-7 -7

Некоторые входные данные для Lines.txt:

6 4 1 1 -3 -5 
10 -5 -9 -10 1 -3 
9 3 -9 -1 1 5 

1 Ответ

0 голосов
/ 17 марта 2019

Вам нужно дать объекту poly более одной x-координаты для построения, линия

plt.plot(i,poly(i), label="Poly")

построит точку (i, poly(i) (это одна точка, потому что iодин скаляр), это то же самое, что построение (x, f (x)).Вам нужно дать массивоподобный объект, чтобы построить многочлен в заданном диапазоне.Изменение приведенной выше строки на что-то вроде

xi = np.linspace(-15,15, 200)
plt.plot(xi,poly(xi))

даст вам это (ярлык включен для демонстрации):

Polynomial and data

Какой яВера - это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...