2016-03-24 37 views
0

私はグラフy = 5 * x - 300/xをプロットしようとしていますが、私のouptutは単なる直線であり、私はその理由を理解していません。誰も助けることができますか?ありがとうグラフが正しく表示されないのはなぜですか?

xvls= [] 
Rvls= [] 

for x in range(-100,100,1): 

    if x != 0: 
     def R(x): 
      f1 = 5*x 
      f2 = 300/x 
      f3 = f1+f2 
      return f3 
     error = 10 
     while error >= 1e-6: 
      error = R(x)-x 
      x = x -error 
      Rvls.append(R(x)) 
      xvls.append(x) 
    else: 
     print 0 

fig = plt.figure(figsize=(10,5)) 
xvls=np.linspace(-300,300, 25) 
Rvls= np.linspace(-300,300, 25) 
plt.subplot(1,2, 1) 
plt.plot(xvls, Rvls, linestyle='-', marker='o', color='blue') 
plt.xlabel('Distance from right hand pin') 
plt.ylabel('Reaction force at left hand pin') 
plt.title('The relationship between R(x) and x') 
plt.rc('font', size=12) 
plt.grid() 

答えて

0

私は与えられた値の間の行の値を返すと思います。

0

ライン

xvls=np.linspace(-300,300, 25) 
Rvls= np.linspace(-300,300, 25) 

オーバーライドあなたが前に行ったすべての計算。あなたはおそらくそれらを放置したいと思うでしょう。

0

私は、f2 = 300/xの可能性が高いと思われます。 Python 2.xを使用している場合、f2は300とxの両方が整数なので整数に評価されます。これは、直線を得るという事実を説明するものではありませんが、トラブルシューティングのために完全にコンパイル可能なコード例は与えていません。問題をコンパイルして生成するために最低限必要なコードを提供できますか?

関連する問題