我有一个函数2 * X * arcctg(X) - 1,我尝试绘制它在Python:Python的绘图三角FUNC
import os
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, np.pi/2)
y = 2 * x * np.cos(2 * x)/np.sin(2 * x)
plt.plot(x, y)
plt.axis('tight')
plt.show()
我有一个函数2 * X * arcctg(X) - 1,我尝试绘制它在Python:Python的绘图三角FUNC
import os
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, np.pi/2)
y = 2 * x * np.cos(2 * x)/np.sin(2 * x)
plt.plot(x, y)
plt.axis('tight')
plt.show()
的功能应该是:
2*x*arcctg(x) - 1
但arcctg(x)
不cos(2x)/sin(2x)
(您在代码中描述的表达)。 A ctg
是合作,因此cos(x)/sin(x)
。这意味着arcctg(x)
是arctan(1/x)
。
所以,你可以使用:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, np.pi/2)
y = 2 * x * np.arctan(1/x) - 1
plt.plot(x, y)
plt.axis('tight')
plt.show()
这将产生以下情节:
与问题中的情节相匹配。
如果你想使剧情看起来比在Wolfram Alpha的更多,你可以像@MSeifert说,设置的范围从-pi/2到pi/2,如:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi/2, np.pi/2, 1000)
y = 2 * x * np.arctan(1/x) - 1
plt.plot(x, y)
plt.axis('tight')
plt.show()
这就产生:
@MSeifert:因为OP导入'os'。所以我的猜测是,他/她保存图像。但在这种情况下,它确实不相关。 –
啊,好的。只是另一个建议:'x = np.linspace(-np.pi/2,np.pi/2,10000)'会更准确地匹配wolfram输出,并避免'0'处的无效值(至少与linspace创建的点数不奇怪) – MSeifert
@ MSeifert:谢谢。我已经用你的建议更新了答案:)。 –
那么对于初学者,'arcctg(X)'是不是'COS(2个)/罪(2X)'。 –