Как построить уравнение - PullRequest
       1

Как построить уравнение

1 голос
/ 18 октября 2019

Как построить эти уравнения, пожалуйста? Выход пуст - есть только оси, но нет линии

import numpy as np
import matplotlib.pyplot as plt


r = 50
a = 5
n = 20
t = 5
x = (r + a * np.sin(n * t * 360 )) * np.cos (t * 360 )
y = (r + a * np.sin(n * t * 360 )) * np.sin (t * 360 )


fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()

Ответы [ 2 ]

4 голосов
/ 18 октября 2019

Вы в настоящее время просто рассчитываете отдельные значения для x и y:

>>> import numpy as np
>>> r, a, n, t = 50, 5, 20, 5
>>> x = (r + a * np.sin(n * t * 360 )) * np.cos (t * 360 )
>>> y = (r + a * np.sin(n * t * 360 )) * np.sin (t * 360 )
>>> print(x, y)
-47.22961311822641 6.299155241288046

Это означает, что нет линии для построения matplotlib.

Для построения линии,вам нужно пройти две или более точек, чтобы matplotlib проводил линии между.

import matplotlib.pyplot as plt
import numpy as np

t = np.linspace(0, 2*np.pi, 100)  # create an array of 100 points between 0 and 2*pi
x = np.sin(2*t)
y = np.cos(t)

plt.plot(x, y)
plt.show()

Или в вашем случае:

t = np.linspace(0, 2*np.pi, 1000) 
# removed the factor *360 as numpy's sin/cos works with radians by default
x = (r + a * np.sin(n * t)) * np.cos(t) 
y = (r + a * np.sin(n * t)) * np.sin(t) 
plt.plot(x, y) 
plt.show()  

resulting image

2 голосов
/ 18 октября 2019

Вы оцениваете функцию только на t=5. Вы должны дать диапазон значений для оценки. Если вы измените переменную t на, например,

t= np.array([0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1])

, вы увидите график. Но это зависит от вас, чтобы определить диапазон и шаг для ваших потребностей

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