Я знаю диапазон функций, но я не могу нарисовать график - PullRequest
0 голосов
/ 09 июня 2019

Я знаю диапазон функций, но я не могу нарисовать график.Я попытался построить выражение 5x^2 - 4xy + 2y^2 = 30 в форме y.И результаты таковы:

y = ±sqrt((240 - 24 x^2)/4) + x (x ≤ 10^(1/2) , x ≥ -10^(1/2)

Я хотел бы нарисовать график с именем y, но диапазон указан выше.Я не знаю, как установить диапазоны, такие как x ≤ 10^ (1/2), и если вы знаете, как строить графики более эффективно, чем это, пожалуйста, сообщите.Код ниже - это код, который я написал до сих пор:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,1000000)
c = np.sqrt((240 - 24 * x ** 2) / 4) + x

y = c
y1 = - c

plt.plot(x, y ,'r')
plt.plot(x, y1, 'b')
plt.ylim(-10,10)
plt.xlim(-10,10)
plt.grid()
plt.xlabel('x')
plt.ylabel('i')
plt.show()

Я думал, что это нарисует график, но это не так.

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

почему вы ограничили y: plt.ylim (-10,10) значения x находятся в диапазоне (x ≤ 10 ^ (1/2), x ≥ -10 ^ (1/2), но не Y

чтобы вы могли удалить: plt.ylim (-10,10)

и вы сделали два графика без использования функции удержания, это удалит первый график и покажет второй если вы хотите показать их обоих, вы должны использовать функцию удержания

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-10,10,1000000)
c = np.sqrt((240 - 24 * x ** 2) / 4) + x

y = c
y1 = - c

plt.plot(x, y ,'r')
plt.hold(True)
plt.plot(x, y1, 'b')
#plt.ylim(-10,10)
plt.xlim(-10,10)
plt.grid()
plt.xlabel('x')
plt.ylabel('i')
plt.show()
0 голосов
/ 09 июня 2019

Я попытался запустить ваш код и получил эту ошибку:

c = np.sqrt((-240 * 24 * x ** 2) / 4) + x
RuntimeWarning: invalid value encountered in sqrt

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

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