2016-03-24 37 views
0

Y = 5 * x - 300/x grafiğini çizmeye çalışıyorum, ama benim eğim sadece düz bir çizgidir ve nedenini anlamıyorum. Biri yardım edebilir mi? TeşekkürlerGrafik grafiklerim neden doğru yazılmıyor?

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

cevap

0

Verilen değerler arasındaki çizgi için linspace değerleri döndürür.

0

hatları

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

geçersiz kılma Daha önce yaptığınız tüm hesaplama. Muhtemelen onları dışarıda bırakmak istersiniz.

0

f2 = 300/x hattının olası bir suçlu olduğunu tahmin ederdim. Python 2.x kullanıyorsanız, f2 bir tamsayı olarak değerlendirir çünkü hem 300 hem de x tam sayıdır. Düz bir çizgi aldığınız gerçeğini hesaba katmazsınız, ancak sorun gidermek için tamamen derlenmiş bir kod örneği vermediniz. Sorunu derleyen ve üreten minimum gerekli kodu verebilir misiniz?