2017-09-17 4 views
0

をプロット - 1を、と私はPythonでそれをプロットしてみてください。Pythonは私が機能2 * X * arcctg(x)を持つ三角関数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() 

が、それはそのようなプロットsmthgです: Wrong pic in python とするとき私はそれを見るwolframでそれをプロットする:

Right plot in Wolfram 私は間違っている?

+2

を、 'arcctg(x)は' '' COS(×2)/罪(2×)ではありません。 –

答えて

3

機能は次のようになります。

2*x*arcctg(x) - 1 

しかしarcctg(x)cos(2x)/sin(2x)(あなたのコードで記述式)ではありません。 ctgは、共タンブレンであるので、cos(x)/sin(x)である。つまり、arcctg(x)arctan(1/x)です。

あなたが使用することができます。問題のプロットと一致

The plot of 2x arcctg(x) - 1

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()

これは、次のプロットを作成します。あなたはプロットを作りたい場合には

はウルフラムアルファの1以上のものを見て、あなたが好きなことができ@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()

これは、その後生成:初心者のためのまあ

plot with different bounds

+0

@MSeifert:OPが 'os'をインポートするためです。だから私の推測では、後で彼/彼女は画像を保存することです。しかし、この場合は、実際には関係ありません。 –

+0

ああ、大丈夫です。 'x = np.linspace(-np.pi/2、np.pi/2、10000)'は、より正確にwolfram出力と一致し、 '0'の無効な値を避けます(少なくとも、 linspaceによって作成されたポイントの数が奇数ではない) – MSeifert

+0

@MSeifert:ありがとう。私はあなたの提案で答えを更新しました:)。 –

関連する問題