首页 > 解决方案 > 旋转或变换 2 功能

问题描述

我有一个变量的 2 个非线性函数,为简单起见,可以说:

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

我有一个数组t = np.linspace(0,2,20)

我可以同时绘制yx作为 的函数t,但我想要绘制yx

我知道这个系统在现实中非常容易解决,我有一个真正的非线性系统,既有非线性x又有y非线性。

例如:我不想写一些可怕的东西,但它有指数x = np.sqrt( t**2 + 1/(1+t**2) ) 和.yt**2

我想要这张图:(理论)

在此处输入图像描述

变成这张图:(实验)

在此处输入图像描述

我尝试进行旋转,但这不起作用,因为那时我将有 2 个 y 值对应 1 个 x 值。

如果您有任何问题,请随时问他们,我会回答他们。

谢谢

编辑:如果我做 plt.plot(x, y) 我得到这个: 在此处输入图像描述

标签: pythonmatplotlib

解决方案


如果我理解正确,您只想绘制y为 的函数x,其中两者都x依赖yt。您可以简单地做plt.plot(x, y-x)以获得相对差异。请参阅下面的非线性系统示例。比较两个数字。

无花果,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')

在此处输入图像描述


推荐阅读