• Register

Šum ne spremeni vrednosti funkcije

+3 votes
82 views

Pozdravljeni

Pri nalogi z mravljo na vinilki je pri 5. vprašanju potrebno funkciji prišteti šum/1000 (polje šuma pravilno ustvarjeno pri predhodnem vprašanju).

Prišteti šum je tako majhen, da vrednosti funkcije ostanejo enake kot so bile pred dodanim šumom in posledično je odvod enak kot brez šuma.

Ne vem, ali gre za mojo napako ali za napačno razumevanje vprašanja.

Je morda pri 5. vprašanju potrebno uporabiti katero od vgrajenih funkcij?

 

4. vprašanje-vrne pravilen rezultat

S centralno diferenčno shema reda napake O(h2), določite numerični odvod r′(t) v časovnem intervalu [0,t2] z n ekvidistantnimi odseki. Kot rešitev podajte numerično polje vrednosti odvoda v teh točkah.

def f(t):
    return a * np.sin(t) + b * t

odvod1 = (f(časovni_odseki[1:-1] + korak) - f(časovni_odseki[1:-1] - korak))/(2 * korak)

odgovor4 = odvod1 #?
odgovor4

 

5. vprašanje-uporabljena enaka logika, a vrne napačen rezultat

Ponovno določite numerični odvod r′(t) v časovnem intervalu [0,t2] z n ekvidistantnimi odseki še z dodanim šumom r(t)=asin⁡(t)+bt+sum/1000. Kot rešitev podajte numerično polje vrednosti odvoda v teh točkah.

def f_šum(t):
    return a * np.sin(t) + b * t + (šum[1:-1])/1000

odvod_šum = (f_šum(časovni_odseki[1:-1] + korak) - f_šum(časovni_odseki[1:-1] - korak))/(2 * korak)
odvod_šum

odgovor5 = odvod_šum#?
odgovor5

 

Lp Miha

 

asked Dec 12, 2018 by MihaKambič (2,550 points)

1 Answer

0 votes

Preverite (izrišite) numerično polje `šum/1000`. Če so vse vrednosti enake 0, potem ste se verjetno zmotili pri pripravi šuma, sicer pa bi dodan šum na rezultat vsekakor moral vplivati.

Še ena težava, ki jo vidim v  vaši kodi, je način, kako ste definirali funkcijo s šumom. Ker vrednostim vaše prvotne funkcije v njej prištevate numerično polje `šum[1:-1]`, nova funkcija deluje le za polja časa `t`, dolžine točno `len(šum[1:-1])` Neglede na to, pri katerih časih `t` sedaj funkcijo `f_šum` kličete, se ji prištevajo iste "notranje" vrednosti šuma `šum[1:-1]`, kar ni v redu.
 
Bolj smiselno bi bilo pripraviti numerično polje `f(t)` za celotno polje časa `t`, rezultatu prišteti celotno polje `šum`, in nato iz teh novih, šumnih vrednosti izračunati odvod po izbrani diferenčni shemi.

answered Dec 18, 2018 by dgorjup (60,090 points)
...