[]
ufak bir python kodu için yardım
daha önce matlab'da çözdüğüm bir problemi python'da çözmeyi deniyorum. problem basit; bir fonksiyon var, bu fonksiyonun bağlı olduğu bir parametre belli bir aralıkta değiştirilecek, bu parametrenin aldığı her değerde fonksiyonun aldığı maksimum değer bulunacak, sonra da bu parametre vs max değerleri grafiği çizilecek.
bi yerde yanlışım var ama çözemedim. acaba bu ufak 28 satırlık kodu inceleyip şurada yanlış yapmışsın diyebilir misiniz?
kod:
www.dropbox.com
bi yerde yanlışım var ama çözemedim. acaba bu ufak 28 satırlık kodu inceleyip şurada yanlış yapmışsın diyebilir misiniz?
kod:
www.dropbox.com
sanırım içerideki while döngüsüne her girişinden önce umax dizinini sıfırlaman gerekir.
sanırım cevap fonksiyonunu çizdirmeye çalışıyorsun. tam olarak anlamadım, matematiksel ifadeni de gösterirsen belki daha fazla yardım bulabilirsin.
sanırım cevap fonksiyonunu çizdirmeye çalışıyorsun. tam olarak anlamadım, matematiksel ifadeni de gösterirsen belki daha fazla yardım bulabilirsin.
- marido (26.11.13 19:50:36)
şu problemini çözüyor mu bir dener misin?
identation gitmiş ama idare edersin.
from __future__ import division
import math
#import matplotlib.pyplot as plt
u = []
t = 0
tn = 0.1
tnvec = []
umax = []
while tn < 2:
wn = 2 * math.pi / tn
u=[]
t=0
while 2 > t:
if t <= 0.5:
u.append(0.2 * (1 - math.cos(wn * t)))
elif 0.5 < t <= 1:
u.append(0.3 * math.cos(wn * (t - 0.5)) - 0.2 * math.cos(wn * t) - 0.1)
elif 1 < t <= 1.5:
u.append(0.3 * math.cos(wn * (t - 0.5)) - 0.3 * math.cos(wn * (t - 1)) - 0.2 * math.cos(wn * t) + 0.2)
elif t > 1.5:
u.append(
0.3 * math.cos(wn * (t - 0.5)) - 0.2 * math.cos(wn * t) - 0.3 * math.cos(wn * (t - 1)) + 0.2 * math.cos(
wn * (t - 1.5)))
t += 0.01
if(len(u)>0):
umax.append(max(u))
tnvec.append(tn)
tn += 0.1
#plt.plot(tnvec,umax)
#plt.show()
identation gitmiş ama idare edersin.
from __future__ import division
import math
#import matplotlib.pyplot as plt
u = []
t = 0
tn = 0.1
tnvec = []
umax = []
while tn < 2:
wn = 2 * math.pi / tn
u=[]
t=0
while 2 > t:
if t <= 0.5:
u.append(0.2 * (1 - math.cos(wn * t)))
elif 0.5 < t <= 1:
u.append(0.3 * math.cos(wn * (t - 0.5)) - 0.2 * math.cos(wn * t) - 0.1)
elif 1 < t <= 1.5:
u.append(0.3 * math.cos(wn * (t - 0.5)) - 0.3 * math.cos(wn * (t - 1)) - 0.2 * math.cos(wn * t) + 0.2)
elif t > 1.5:
u.append(
0.3 * math.cos(wn * (t - 0.5)) - 0.2 * math.cos(wn * t) - 0.3 * math.cos(wn * (t - 1)) + 0.2 * math.cos(
wn * (t - 1.5)))
t += 0.01
if(len(u)>0):
umax.append(max(u))
tnvec.append(tn)
tn += 0.1
#plt.plot(tnvec,umax)
#plt.show()
- marido (26.11.13 20:13:10 ~ 20:13:44)
çok teşekkür ederim, sorunu hallettim. nerede yanlış yaptığımı anladım. indentation olayına alışık olmadığım için onla ilgili bir sıkıntım var diye düşünüyordum ama çok basit bir mantık hatasıymış.
çok sağolun tekrardan.
çok sağolun tekrardan.
- bellbane (26.11.13 20:38:21 ~ 20:41:55)
1