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.
ş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()
ç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.