我有一個函數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)'。 –