Valaki segítene egy shell script feladatban?
A feladat:
Írj programot, ami argumentumban megadott számnak kiszámolja az arcus sinusat illetve arccosinusat, Taylor sorbafejtéssel Harmadik argumentumban megadható legyen a sorbafejtésnél figyelembe vett tagok száma. Ez alapértelmezettként 3. Pl.:
$>szog arcsin 0.5 5
arcsin 30 fok =
Fogalmam sincs, hogy kellene megcsinálni...
Gonosz leszek, mert a szkriptet nem írom le :)
De, leírom az alapötletet, és szerintem innen már gyerekjáték lesz.
1) Első lépésben fel kell írni az adott függvények Taylor-sorát. Ezt gondolom tudod, hogyan kell, de ha nem vagy elég biztos, akkor:
(Azért jó ez a wiki-lap, mert konkrétan rajta van az arcsin x és az arccos x, így nem kell vacakolnod a deriválgatással.)
2) Megnézed, mit ír pl. az arcsin x definíciójára:
sum(n=0; n<n_max; (2n)!/( 4^n*(n!)^2*(2n+1) ) * x^(2n+1))
Nos ezt kéne leprogramozni, pár ötlet:
3) Hozz létre egy változót, adj értékül neki 0-t (pl. szog_out=0). Ezt fogjuk később visszaadni, és ezt fogjuk a ciklus egyes lépéseiben változtatni (növelni).
4) Hozz létre egy for-ciklust, egy lépésszámláló (n=0), meg egy maximum lépésszám (n_max, ami a példában 5) segítségével.
Itt lehet olyan nüansznyi finomságokat megadni (mármint a ciklus előtt ellenőrizve, hogy van-e ilyen változó), hogy a default 3 legyen.
Ezután kell létrehozni, hogy a ciklus egyes lépése milyen parancsot hajtson végre.
5) Ehhez én használnék egy fact x segédfüggvényt, ami felszorozza i=1...x számokat egy for-ciklussal, és ennek eredményét (tehát x!-t) visszaadja.
6) Akkor most jön a neheze: le kell programozni a Taylor-sor n-edik elemét:
pl: arcsin x esetén (pszeudokóddal, vigyázz, shellben egy picit másképp van):
szog_out += fact(2*n)/(4^n*fact(n)^2*(2*n+1))*x^(2*n+1);
Ami kellhet, hogy a hatványozás operátora shell script esetén a dupla csillag (**), ezt jelöltem kúpos ékezettel (^).
7) Az arkusz koszinusz, az arccos x = pi/2 - arcsin x azonosság alapján után, tényleg egyszerű lesz.
Na, szerintem ebből már ki tudsz indulni. Ha elakadsz, vagy valami bug miatt nem akar működni (vagy bizonytalan vagy, hogy jól sikerült-e), írj ;)
Miskolci Egyetem Szg.Architektúrák beadandó?
Fincsi. Én most ennek a sin/cos változatát csinálom.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!