Brook Taylor
|
Taylor segida aplikatu angelu jakin baten kosinua kalkulatzeko. Horretarako, gogoratu bi ariketa hauek:
Klikatu irudi honen gainean eta grafikoki ikusiko duzu Taylor polinomioa kosinu funtzioarentzat:
Angelu baten kosinua Taylor-ren arabera honela kalkula daiteke:
Non x radianetan emaniko angelua den.
|
Programa bat idatzi kosinua kalkulatuko duena aurreko segidaren N batugai erabiliz. Batugaien N kopurua ez da ezaguna, batugaiak aintzat hartuko dira azken batugaiaren balio absolutua 0.00001 baino txikiagoa izan arte adibidez (doikuntza hori teklatuaren bitartez emango du programaren erabiltzaileak).
Kasu honetan batukaria kalkulatzen duen azpiprogramak emaitza bakarra itzuli behar duelako funtzio baten bitartez programatuko dugu. Diogunez, azpiprograma hori funtzio bat izango da bere goiburukoa hauxe delarik:
function fnrKosinuaKalkulatu(rX, rDoikuntza: real): real ;
Sarrera: rX radianak (teklatuz irakurritako rAngelua graduak radianetara igarota)Sarrera: rDoikuntza (gogoratu bertsio honetan doikuntza programa nagusian irakurtzen dela)
Programaren...
...honek x sarrerako angelua 0 eta Π/2 artekoa izan dadila Amaitzeko, programa osatu edozein angelurako, hots, sarrerako x angelua 2Π baino handiagoa denean ere, laguntza hemen.
- Erabiliko den rDoikuntza prezisioa teklatuz irakurri (edo konstante ezagun bat izan dadila)
- Lehenego koadranteko rAng angelua graduetan, teklatuz irakurri
- Lehenego koadranteko rAng angelua radianetara igaro rX lortuz
- rX angeluari dagokion rKos kosinua lortu Taylor bitartez (azken batugaia rDoikuntza baino txikiagoa)
- Taylor bitartez lortu den rKos emaitza eta cos(rX) balioa pantailan erakutsi eta bi balioak elkar alderatu
Hauxe izan daiteke Programa Nagusia non rDOIKUNTZA konstante bat den eta fnrKosinuaKalkulatu() funtzioak prozesu errepikakorra barneratzen duen:
Laster emaitza osoa...{-----------------------Programa Nagusia-----------------------} var rGraduak: real; (* angelua graduetan *) rX: real; (* angelua radianetan *) rKos: real; begin clrscr; repeat write('Lehenengo koadranteko angelu bat eman gradutan: '); readln(rGraduak); if (rGraduak < 0.0) or (rGraduak >= 90.0) then writeln('Angelua 0.0 eta 89.999 artekoa izan dadila'); until (rGraduak >= 0.0) and (rGraduak < 90.0); rX := rGraduak*2*PI/360; writeln(rGraduak:0:3, ' gradu = ', rX:0:5, ' radian'); writeln; rKos := fnrKosinuaKalkulatu(rX); writeln('kos(', rX:0:3, ') = ', rKos:0:10); writeln('cos(', rX:0:3, ') = ', cos(rX):0:10); writeln; writeln('=============================='); writeln('Edozein tekla sakatu amaitzeko'); writeln('=============================='); repeat until keypressed; end.
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.