Объединение логарифма и линейной функции на одном участке - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу, чтобы на моем графике была и y = log ((x + 1) / (x-1)) [-1; 1], и другая линейная функция.Обе функции имеют одинаковые значения x.Я храню значения y второй функции в массиве.До сих пор я пробовал это:

import numpy as np
p = np.log((x+1)/(x-1))
plt.plot(arrayX, p,'go--')
plt.plot(arrayX, arrayY)
plt.show()

Но я продолжаю получать ValueError: x and y must have same first dimension и не знаю, как сгенерировать одинаковое количество элементов для p и моего начального x.

1 Ответ

0 голосов
/ 13 сентября 2018

Вам не нужно ничего сопоставлять. Используйте векторизованные операции. Ниже приведен минимальный рабочий ответ. Я использую другой диапазон x, потому что ваша функция журнала имеет асимптоту, поскольку x приближается к -1 и 1.

fig = plt.figure(figsize=(7, 5))

# Define input
x=np.linspace(1.1, 2, 100)
y1 = x**2
y2 =  np.log((x+1)/(x-1))

# Plot
plt.plot(x, y1, '-k', label = r'$y=x^2$')
plt.plot(x, y2, '-g', label = r'$y=\ln((x+1)/(x-1))$')
plt.legend(fontsize=18)

выход

enter image description here

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