Поворот или преобразование 2 функции - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть 2 нелинейные функции одной переменной, для простоты скажем:

x = x(t) = t
y = y(t) = -t**2 + 8*t

У меня есть массив для t = np.linspace(0,2,20).

Я могу построить оба y и x как функции t, но я хочу график y из x.

Я знаю, что эту систему очень легко решить в реальности, у меня действительно нелинейная система с x и y нелинейными.

Например: x = np.sqrt( t**2 + 1/(1+t**2) ) и y что-то ужасное, что я не хочу писать, но оно имеет экспоненты и дроби t**2.

Мне нужен этот график: (Теоретический)

enter image description here

Стать этим графиком: (Экспериментальный)

enter image description here

Я пытался сделать ротацию, но это не сработало, потому что тогда у меня будет 2 значения y для 1 значения x.

Если у вас есть какие-либо вопросы Не стесняйтесь спрашивать их, я отвечу на них.

Спасибо

Редактировать: Если я делаю plt.plot (x, y), я получаю это: enter image description here

1 Ответ

2 голосов
/ 14 апреля 2020

Если я правильно понял, вы просто хотите построить y как функцию x, где оба значения x и y зависят от t. Вы можете просто сделать plt.plot(x, y-x), чтобы получить относительную разницу. Смотрите мой пример ниже для нелинейной системы. Сравните обе цифры.

fig, ax = plt.subplots (1, 2, figsize = (8, 3))

t = np.linspace(0,2,20)

x = np.sqrt( t**2 + 1./(1+t**2) )
y = -t**2 + 8*t

ax[0].plot(t, x, '-r', label='x')
ax[0].plot(t, y, '-b', label='y')
ax[0].set_xlabel('t')
ax[0].legend()

ax[1].plot(x, y-x, '-b')
ax[1].set_xlabel('x')
ax[1].set_ylabel('y')

enter image description here

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