VÁRTERÉSZ MAGDA
Matematikai programozás gyakorlatok
2003/04-es tanév 1. félév
Tartalomjegyzék 1. Számrendszerek
3
2. Számábrázolás számítógépen
4
3. Számolás egész számokkal
6
4. Számolás valós számokkal
8
1.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 4 4 7 7 8 9
5. Elemi függvények, függvénytranszformáció
10
6. Empirikus képletek el®állítása
12
7. Interpolációs polinomok
14
8. Numerikus dierenciálás és integrálás
16
9. Nemlineáris egyenletek megoldása
17
5.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 9.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 9.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2
Tartalomjegyzék
3
10.Polinomegyenletek megoldása
18
Irodalomjegyzék
20
10.1. Javasolt órai feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 10.2. Javasolt házi feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1. fejezet
Számrendszerek 1.1. Javasolt órai feladat • Szczepan Jelenski Pitagorasz nyomában cím¶ könyvében szerepel az alábbi feladat: Az egyetemet 44 éves koromban fejeztem be, egy év múlva, már mint 100 éves ifjú, feleségül vettem egy 34 éves kisasszonyt. A jelentéktelen korkülönbség - mindössze 11 év - nagyon kedvezett harmonikus házaséletünknek. Aránylag rövid id®n belül már 10 gyermekünk volt. Az én havi keresetem 13000 zloty volt. melyb®l 1/10 részt a húgomnak adtam, úgyhogy saját magunk eltartására csak 11200 zloty maradt havonta, mégis boldogan éltünk. Hogyan lehetne megfejteni ezt az életrajzot? Mit jelenthetnek ezek a furcsa adatok?
• Az r és az R = rk alapú számrendszerek között akarunk számokat átváltani. Ekkor v = an rn + an−1 rn−1 + · · · + a1 r + a0 + a−1 r−1 + a−2 r−2 + · · · = bm Rm + bm−1 Rm−1 + · · · + b1 R + b0 + b−1 rR−1 + b−2 R−2 + · · · , ahol bi = aik+k−1 rk−1 +aik+k−2 rk−2 +· · ·+aik+1 r +aik , azaz az R alapú számrendszer mindegyik számjegye az r alapú számrendszer számjegyeinek k tagú csoportjára konvertálható és viszont.
kettes nyolcas alapú számrendszerek között: triádolás kettes tizenhatos alapú számrendszerek között: tetrádolás
1.2. Javasolt házi feladatok 1. Írjuk fel a tízes számrendszerben azokat a számokat, amelyek a tizenegyes számrendszerben (a0b)11 , a kilences számrendszerben pedig (b0a)9 alakban írhatók fel. 2. Határozzuk meg, milyen alapú számrendszerben lehet az 0 ≤ v < V természetes számokat a legkevesebb tároló elemmel ábrázolni, ha feltesszük hogy egy számjegy tárolásához szükséges tároló elemek száma egyenl® a számrendszer alapszámával. 3. Tegyük fel, hogy két-állapotú tároló elemekkel ábrázolunk tizes számrendszerbeli legfeljebb n számjegy¶ természetes számokat. Érhet®-e el megtakarítás és mekkora, ha ugyanezeket a számokat kettes számrendszerbeli számokként tárolnánk.
4
2. fejezet
Számábrázolás számítógépen 2.1. Javasolt órai feladat Tekintsük át, hogy a Turbo Pascal az egész és valós számok ábrázolásásra milyen beépített típusokat használ. Az IDE1 nyomkövet®jének2 használatával (Break/Watch menü) vizsgáljuk meg az ábrázolási módokat és az ábrázolási tartományokat ([5]). A Watch ablakba: valtozo-nev, formatum-specikátor(ok) formatum-specikátor
• dollárjel vagy H vagy X : hexadecimális kiírás • C : karakteres • D : decimális • Fn : 2 ≤ n ≤ 18 számjegyek száma (default 11) • M : memória dump • P : pointer seg:ofs formában • R : record mez®nevekkel • S : sztring formában (a M specikátorral használjuk)
2.2. Javasolt házi feladatok 1. Bizonyítsuk be, hogy a kettes komplemens összeadásnál pontosan akkor esik két az ábrázolási tartományba es® szám összege is az ábrázolási tartományba, ha a két legmagasabb helyiértékr®l (n bites ábrázolás esetén a 2n−2 és a 2n−1 helyiértékekr®l) azonos átvitel keletkezik. 2. Legyenek 0 ≤ x, y ≤ 2n − 1 egész számok. letet: ha x + y + 2n−1 x + y − 2n−1 ha x]y x + y − 2n−1 − 2n ha 1 Integrated 2 Debugger
Development Enviroment
5
Deniáljuk közöttük a következ® m¶ve-
x + y ≤ 2n−1 − 1, 2n−1 ≤ x + y ≤ 2n + 2n−1 − 1, 2n + 2n−1 ≤ x + y .
2. Számábrázolás számítógépen
6 A ] m¶velet neve: többletes összeadás.
Bizonyítsuk be, hogy két többletes kódban ábrázolt szám többletes összege éppen a két szám összegének többletes kódja, ha a két szám összege az ábrázolási tartományba esik.
3. fejezet
Számolás egész számokkal Amikor egy számítógép (xpontosan ábrázolt) számokkal számol (pl. összeadja ®ket), könnyen el®fordulhat, hogy az eredmény már nem ábrázolható az el®írt módon a rendelkezésre álló területen. Ilyen esetben túlcsordulásról beszélünk. El®fordulhat az is, hogy a számítás végeredménye ugyan ábrázolható lenne, azonban egy részeredmény túlcsordulást okoz, és ez a végeredményt is elrontja. Ennek az a következménye, hogy egyszer¶ algebrai azonoságok, mint pl. (a + b) + c = a + (b + c) nem mindig teljesülnek, csak akkor, ha nem lépett fel közben túlcsordulás. A túlcsordulást el kell kerülni. 1202-ben Leonardo Pisano itáliai matematikus, akit L. Fibonacci (Filius Bonaccio, azaz Bonaccio a) néven ismernek, oldotta meg a következ® problémát: Ha egy pár újszülött nyulat kapok az év elején, hány pár nyulam lesz az év végén. Természetesen tett néhány egyszer¶sít® feltevést:
• minden feln®tt nyúlpárnak havonta egy hím és egy n®stény utóda születik, • a vemhesség ideje egy hónap, • az újszülöttek pontosan egy hónap alatt válnak ivaréretté, és • egy nyúl sem pusztul el. Tegyük fel, hogy az n-edik hónapban a nyúlpárok száma F (n), és ebb®l a feln®tt nyúlpárok száma V (n). Tegyük fel továbbá, hogy az els® pár újszülött nyuszit az els® hónap elején kaptuk, tehát a nyúlpárok száma az el®z® hónapban még 0 volt, azaz F (0) = 0 és F (1) = 1. Mivel minden hónapban annyi feln®tt pár van, ahány nyúlpár az el®z® hónapban összesen volt, ezért V (n) = F (n − 1). Másrészt a V (n) feln®tt nyúlpár mindegyike egy pár nyulat alt az n + 1-edik hónap kezdetén, úgyhogy
F (n + 1) = F (n) + V (n) = F (n) + F (n − 1). Ekkor a probléma formálisan a következ®képpen fogalmazható meg: mennyi lesz F (12) értéke, ha tudjuk, hogy F (0) = 0 F (1) = 1 és minden n ≥ 1 esetén F (n + 1) = F (n) + F (n − 1). Egyébként ezekkel az összefüggésekkel megadott Fibonacci-számok fontos szerepet játszanak a legkülönfélébb természeti folyamatokban. Pl. a növénytanban a Fibonacciszámok a phyllotaxisban, azaz a levélállások tanában jelennek meg: a levelek a növénytanban a Fibonacci-számok szerinti elrendezésben n®nek a szár körül; a szomszédos 7
3. Számolás egész számokkal
8
Fibonacci-számok hányadosának határértéke pedig az ún. aranymetszés arányszáma. Knuth [2] alapján a 41 értékes jegyre csonkított eredmény:
1.6180339887498948482045868343656381177203
3.1. Javasolt órai feladat Számoljuk ki két szomszédos Fibonacci-szám hányadosaként el®álló sorozat elemeit, ameddig lehet.
3.2. Javasolt házi feladatok 1. Határozzuk meg, az egészek összes lehetséges összeadásának, illetve szorzásának hány százaléka vezet túlcsorduláshoz a számítógépünkön. 2. Írjuk fel értékadó utasítások olyan sorozatát, amely két egész számot tárolni tudó változó értékét segédváltozó nélkül felcseréli. Gondoljunk a túlcsordulásra is! 3. Intevallumösszeg. Írjunk programot, amely egy adott s egész számhoz megkeresi az i és j egészek (1 ≤ i ≤ j ) összes olyan párosítását, hogy az [i, j] zárt intervallumba es® egész számok összege éppen s legyen. 4. Osztók maximális összege. Keressük meg azt az egész számot az [i, j] zárt intervallumban (1 ≤ i ≤ j ), melyre igaz, hogy osztóinak összege maximális. (Az 1 és maga a szám is osztó.) 5. Háló pontjainak megszámlálása. Írjunk programot, amely beolvas egy r egész számot és megszámolja, hogy az r sugarú körbe az egységnyi oldalú négyzetháló hány pontja esik, azaz hány (x, y) pár elégíti ki az x · x + y · y ≤ r · r egyenl®tlenséget. 6. Pithagoraszi számhármasok. Keressük meg az 1 ≤ i ≤ imax és az 1 ≤ j ≤ jmax tartományokban az összes olyan (i, j) párt, amelyek pithagoraszi számhármast alkotnak (azaz i · i + j · j négyzetszám).
4. fejezet
Számolás valós számokkal Jól ismert a másodfokú egyenlet megoldóképlete, amely nem elfajult esetben a gyököket adja meg. Eszerint az ax2 + bx + c = 0 egyenlet gyökeit az
x1 =
−b −
√ b2 − 4ac −b + b2 − 4ac x2 = 2a 2a
√
képletekkel számolhatjuk.
4.1. Javasolt órai feladat Felhasználva ezt az összefüggést, készítsünk a másodfokú egyenletet megoldására programot. Számítsuk ki a programmal az
(x − 10.0i ) · (x − 1.0) = 0.0 másodfokú egyenlet gyökeit az i = 1, 2, 3, . . . értékekre. Figyeljük meg a kisebbik gyökként el®állított értékeket. A hiba oka: a nagyon kis gyökök relatív hibája nagy, különösen akkor, ha az egyenlet két gyöke abszolút értékben jelent®sen eltér egymástól. Ilyenkor ugyanis a is, és c is kicsi b-hez képest, s ezért
√
b és
b2 − 4ac
közel azonos érték¶. A korlátozott pontosság következtében e két érték különbségének nagy lesz a relatív hibája. Jobb eredményt kapunk, ha a megoldóképlettel ekvivalens
x1 = −
2c b
q 1+
1−
4ac b2
x2 = −
c ax1
képletek alapján határozzuk meg a gyököket, ahol abszolút értékét tekintve x1 a kisebbik és x2 a nagyobbik gyök. 9
4. Számolás valós számokkal
10
4.2. Javasolt házi feladatok 1. Vizsgáljuk meg a valós aritmetika viselkedését a következ® számítások elvégzésével: (a) 1 − 1/3 − 1/3 − 1/3 (b) 1 − 1/6 − 1/6 − 1/6 − 1/6 − 1/6 − 1/6 √ (c) x − x2 x néhány értékére √ (d) x − ( x)2 x néhány értékére (e) x − tan(arctan(x)) x néhány értékére 2. A rendelkezésünkre álló leírásokból határozzuk meg számítógépünk valós aritmetikai m¶veleteinek és valós függvényeinek tulajdonságait! Ha tudjuk, számítsuk ki a végrehajtási id®ket is. 3. Számítsuk ki e és 1/e közelít® értékét az
e = 1 + 1/1! + 1/2! + 1/3! + . . . 1/e = 1 − 1/1! + 1/2! − 1/3! + . . . sorok segítségével. A közelít® értékek összeszorzásával minden lépés után ellen®rizzük az eredményt. 4. Számítsuk ki π/4 közelít® értékét a
π/4 = 1 − 1/3 + 1/5 − 1/7 + 1/9 − . . . sor segítségével. Minden lépés után irassuk ki a közelít® értéket, és hasonlítsuk össze a számítógépünk által számolt π/4 hányadossal. 5. Számítsuk ki ln(2) közelít® értékét a
ln(2) = 1 − 1/2 + 1/3 − 1/4 + 1/5 − . . . sor segítségével. Ellen®rzésképpen számítsuk ki e-nek a közelít® értékek szerinti hatványát.
5. fejezet
Elemi függvények, függvénytranszformáció Elemi algebrai függvények • Racionális egész függvények általános alakjuk: y = an xn + an−1 xn−1 + . . . + a1 x + a0 , ahol an , . . . , a0 tetsz®leges valós számok. Ha an 6= 0, ez egy n-ed fokú racionális egész függvény (a jobb oldal n-ed fokú polinom). néhány racionális egész függvény:
lineáris függvény: y = ax + b, ahol a 6= 0, képe egyenes; másodfokú függvény: y = ax2 + bx + c, ahol a 6= 0, képe az y -tengellyel párhuzamos tengely¶ parabola;
• Racionális törtfüggvények általános alakjuk: y=
an xn + an−1 xn−1 + . . . + a1 x + a0 , bm xm + am−1 xm−1 + . . . + b1 x + b0
ahol an , . . . , a0 , bm , . . . , b0 tetsz®leges valós számok (an , bm 6= 0). Általában feltételezzük, hogy ebben az alakban már egyszer¶síteni nem lehet. néhány racionális törtfüggvény:
a legegyszer¶bb: y = xa , ahol a 6= 0, képe hiperbola; lineáris törtfüggvény: y = ax+b , ahol a, c 6= 0; cx+d • Algebrai irracionális függvények egyszer¶sített alakjukban a független változó gyökvonásban is el®fordul √ y = ± ax + b, ahol a 6= 0, képe parabola, melynek szimmetriatengelye az x-tengely; √ y = ± ax2 + bx + c, ahol a 6= 0, képe a és ax2 + bx + c diszkriminánsának el®jelét®l függ®en ellipszis vagy hiperbola;
Elemi transzcendens függvények 11
5. Elemi függvények, függvénytranszformáció
12
• exponenciális függvény általános alakja: y = ax , ahol a > 0 és a 6= 1 • logaritmusfüggvény általános alakja: y = loga x, ahol a > 0 és a 6= 1 • trigonometrikus függvények alakjuk: y = sin x, y = cos x, y = tan x és y = cot x • hiperbolikus függvények alakjuk:
ex − e−x ex + e−x és y = cosh x = 2 2 x −x x e −e e + e−x y = tanh x = x és y = coth x = e + e−x ex − e−x y = sinh x =
5.1. Javasolt órai feladat Rajzoljuk meg program segítségével a fenti függvények grakonját beolvasott paraméterek mellett.
5.2. Javasolt házi feladatok 1. Írjunk az y = x2 másodfokú függvény transzformációit grakusan szemléltet® programot. 2. Írjunk az y = sin x trigonometrikus függvény transzformációit grakusan szemléltet® programot.
6. fejezet
Empirikus képletek el®állítása Empirikus képleteknek nevezzük azokat a mennyiségi összefüggéseket, amelyeket közvetlen meggyelés, mérés útján nyert tapasztalati eredmények alapján határoztunk meg. Az alkalmazott matematikának legtöbbször a természettudományok és a m¶szaki tudományok területén kell ilyen problémákkal foglalkozni. Célunk, hogy lehet®leg egyszer¶ képlettel kifejezzük az összetartozó (xi , yi ) i = 1, 2, . . . , n tapasztalati eredmények kapcsolatát. A probléma megoldása során el®ször megállapítjuk az empirikus képlet típusát. A kiválasztott típusú y = ϕ(x; a1 , a2 , . . . , am ) empirikus függvény paramétereinek értékeit úgy határozzuk meg, hogy a
Φ(a1 , a2 , . . . , am )
n X
(yi − ϕ(xi ; a1 , a2 , . . . , am ))2
i=1
függvény minimális legyen. A Φ(a1 , a2 , . . . , am ) függvény minimumát a
∂Φ = 0, ∂a1
∂Φ = 0, . . . , ∂a2
∂Φ =0 ∂am
egyenletrendszert megoldva nyerhetjük. A gyakorlatban ezek a deriváltak, illetve ebb®l a paraméterek lineáris empirikus függvény esetén könnyen számolhatók. Más közelít® függvény alkalmazása esetén különböz® transzformációkkal lineárissá alakítjuk, és így felhasználhatjuk a lineáris eset összefüggéseit. Az eredményt természetesen vissza kell alakítani. Az alábbi táblázatban foglaltuk össze a legfontosabb empirikus függvénytípusokat és linearizálásukat. Típus lineáris exponenciális hatványfüggvény arrhenius reciprok racionális tört kvadratikus vektoriális hiperbola logaritmikus
Függvény y = a + bx y = aebx y = axb b y = ae− x 1 y = a+bx ax y = 1+bx y = x(a √ + bx) y = a + bx2 y = a + xb y = a ln bx 13
x0 x x ln x − x1 x x x x2 1 x
ln x
y0 y ln y ln y ln y 1 y x y y x
y y y
2
a α eα eα eα α
b β β β β β
1 α
β α
α α α β
β β β β eα
6. Empirikus képletek el®állítása
14
Linearizálva a tapasztalai értékeinket kiszámíthatjuk az
s1 =
n X
x0i ,
s2 =
n X
i=1
és
s3 =
yi0
i=1
n n X X (x0i )2 , s4 = x0i yi0 , i=1
i=1
értékeket, majd ezekb®l a
β=
s2 − βs1 ns4 − s2 s1 α= 2 ns3 − s1 n
értékeket, amib®l az a és b együtthatók a táblázat alapján nyerhet®k.
6.1. Javasolt órai feladat Határozzunk meg az
x y
1 1.70
2 4.40
3 8.10
4 12.80
5 18.50
6 25.20
7 32.90
8 41.60
60 18.5
80 18.8
9 51.30
10 62.50
mérési adatok esetén megfelel® empirikus függvényt.
6.2. Javasolt házi feladatok 1. Határozzunk meg program segítségével az (a)
x y
8 13.0
10 14.0
15 15.4
20 16.3
30 17.2
40 17.8
(b)
x y
0.2 2.119
0.3 2.142
0.4 2.150
0.5 2.141
0.6 2.117
0.7 2.070
0.8 2.016
0.9 1.948
(c)
x y
26.43 14.70
22.40 17.53
19.08 20.80
16.32 24.54
14.04 28.83
12.12 33.71
10.51 39.25
9.147 45.49
7.995 52.52
mérési adatok esetén megfelel® empirikus függvényt. 2. 50 C ◦ -on, különböz® nyomásokon megmértük 1 mól N H3 térfogatát:
P V
118.6 22.13
498 5.11
957 2.55
1573 1.456
Határozzuk meg a van der Waals állandókat. 3. Egy Weston-elem feszültsége 20 C ◦ -tól eltér® h®mérsékleten, az eltérés függvényében: δ -10 -5 0 5 10 15 U 1.01895 1.01883 1.01865 1.01842 1.1816 1.01786 Adjunk egy polinomközelítést.
7. fejezet
Interpolációs polinomok A függvények grakus ábrázolása olyan terület, ahol gyakran találkozunk az interpoláció szükségességével. Ha néhány pontjával megadott függvényt kell folytonos görbével ábrázolnunk, a függvény ismeretlen pontjait mindig valamilyen interpolációs módszerrel határozzuk meg.
7.1. Javasolt órai feladat A Lagrange interpolációs polinom helyettesítési értékének kiszámítására gyakran használják Aitken módszerét. Ez az eljárás egyrészt egyszer¶síti a számítás elvégzését, másrészt módot ad arra, hogy ha az interpoláció fokszáma nem bizonyul elegend®nek egy újabb alappont felvételével a már kiszámolt helyettesítési értékekb®l az eggyel magasabb fokszámú polinom helyettesítési értékét el®állítsuk. Az x1 , x2 , . . . , xn , xn+1 alappontokra támaszkodó n-edfokú interpolációs polinom el®állítható a következ®képpen:
p1,...,n−1,n,n+1 (x) =
p1,...,n−1,n (x) · (xn+1 − x) − p1,...,n−1,n+1 (x) · (xn − x) . xn+1 − xn
Az Aitken-interpoláció rekurzív módon állítja el® az egyre nagyobb fokszámú polinomokból adódó helyettesítési értékeket. Írjuk meg a Lagrange-interpolációt, illetve az Aitken-interpolációt megvalósító függvényeljárásokat!
• bemen® paraméterek:
n: alappontok száma x: alappontok tömbje y : függvényértékek tömbje x0: ahol a függvényértékre kíváncsiak vagyunk • visszatérési értékek
az x0-hoz tartozó függvényérték hibajelzés 15
7. Interpolációs polinomok
16
7.2. Javasolt házi feladatok Írjunk programot, mely a Lagrange-interpolációval, illetve az Aitken-interpolációval kiszámolja az [1, 4] intervallumban 0.5-es lépésközzel az alábbi alappontokban megadott függvények értékét. 1.
x y
1.000 1.000
2.
x y
0.85 0.9561
2.000 1.800 0.95 1.0995
3.000 2.200
4.000 2.500
1.05 1.2539
1.15 1.4208
1.25 1.6019
8. fejezet
Numerikus dierenciálás és integrálás 8.1. Javasolt órai feladat Írjuk meg a következ® Pascal függvényeket az
Rb a
f (x)dx kiszámítására:
• function kistrapez(a,b:real;f:fuggv):real; • function nagytrapez(a,b:real;n:integer;f:fuggv):real; • function kissimpson(a,b:real;f:fuggv):real; • function nagysimpson(a,b:real;n:integer;f:fuggv):real; Számítsuk ki az
Z
1 0
4 dx 1 + x2
integrál értékét a megírt eljárások segítségével. (Megjegyezzük, hogy a programban {F+} fordítási direktíva szükséges, mert az integráló függvényeljárásokban az integrálandó függvényt paraméterként vesszük át:
type
fuggv = functions (x:real):real;
8.2. Javasolt házi feladatok
Rb Számítsuk ki az alábbi függvények a f (x)dx integráljait adott intervallumon, adott lépéstávolsággal, a megírt függvényeljárások segítségével: 1. a = 3.00, b = 5.00, h = 0.20;
f (x) = ln sin
x π
f (x) = ln cos
x e2
f (x) = ln tan
x π
2. a = 40.00, b = 43.00, h = 0.30;
3. a = 1.70, b = 2.70, h = 0.10;
17
9. fejezet
Nemlineáris egyenletek megoldása 9.1. Javasolt órai feladat Határozzuk meg az f (x) = 2 cos x−x2 függvény legkisebb pozitív gyökét 10−1 pontossággal felez® módszerrel.
• A gyököket grakusan elkülöníthetjük az f1 (x) = 2 cos x és f2 (x) = x2 függvények metszéspontjainak behatárolásával. A legkisebb és egyetlen pozitív gyök a [0, π2 ] intervallumban van. • Induljunk ki a [0.0, 1.5] intervallumból és ε legyen 2 · 0.5 · 10−1 = 0.1. i 0. 1. 2. 3. 4.
[ai , bi ] [0.0, 1.5] [0.75, 1.5] [0.75, 1.125] [0.9375, 1.125] [0.9375, 1.03125]
ci 0.75 1.125 0.9375 1.03125
0.984375
f (ci ) 0.90088 −0.40327 0.30470 −0.03598
bi − a i 1.5 0.75 0.375 0.1875 0.09375
Tehát a gyök közelít® értéke 10−1 pontossággal: 0.984375. Írjuk meg a felez®, a húr-, a szel® és a Newton-módszert megvalósító függvényeljárásokat. A f (x) = 2 cos x − x2 függvény legkisebb pozitív gyökét keressük az eljárásokkal 10−15 pontossággal, és hasonlítsuk össze a módszerek konvergenciájának gyorsaságát.
9.2. Javasolt házi feladatok Határozzuk meg az alábbi függvények gyökeinek számát és különítsük el ®ket. Közelítsük a függvények elkülönített gyökeit alkalmas módszerrel 5 · 10−10 pontossággal: 1. f (x) = x2 + lg x − 9 2. f (x) = ex + x2 − 2 3. f (x) = sin x + 1 − x
18
10. fejezet
Polinomegyenletek megoldása 10.1. Javasolt órai feladat A gyökközelít® eljárásokat alkalmazva egy polinom gyökeinek keresésére, általában ki kell számítani a polinom néhány helyettesítési értékét. Ha a
pn (x) = a0 xn + a1 xn−1 + . . . + an−1 x + an polinom értékét a c helyen a képlet alapján számítjuk, rendre ki kell számítani a
c2 , c3 , . . . , cn , an−1 c, an−2 c2 , . . . , a0 cn értékeket. Ez összesen 2n − 1 szorzást kíván, majd pn (c) kiszámításához ezután még n összeadást kell elvégezni. Ha pedig a Horner-elrendezés segítségével számolunk, csak n szorzást és n összeadást kell elvégeznünk. Számítsuk ki a Horner-elrendezés segítségével a p5 (x) = 4x5 − 3x3 + 6x2 − 9 polinom értékét az x0 = 2 helyen.
4 2 4
0 8 8
−3 16 13
6 26 32
0 64
64
−9 128 119
Próbáljuk meg elkülöníteni a polinom valamelyik gyökét:
√ | − 9| 9 3 ≤ |x| ≤ 1 + és x ≤ 1 + . 6 + | − 9| 4 2
Tehát a (0, 2) intervallumban van gyök. Induljunk ki a c0 = 1 pontból, és alkalmazzuk a Newton módszert:
4 1 4 1 4
0 4 4 4 8
Tehát
c1 = 1 −
−3 4 1 8 9
6 1 7 9 16
0 7 7 16
−9 7
-2
23
−1 = 1.0869565 23
a gyök új közelít® értéke. Írjuk meg a Horner-elrendezés alapján polinom helyettesítési értékét számító függvényeljárást. Az el®z® óra eljárásait is felhasználva közelítsük a gyököt. 19
10. Polinomegyenletek megoldása
20
10.2. Javasolt házi feladatok Határozzuk meg az alábbi polinomegyenletek valós gyökeit. El®ször különítsük el a gyököket a tanult szabályokkal, majd keressük az egyes intervallumba es® valós gyököket Newton-módszerrel. Használjuk a Horner-sémát. 1. x4 − 2x3 − 3x2 − 3x − 4 = 0 2. x4 − 2.25x3 + 2.265x2 − 2.25x + 1.265 = 0
Irodalomjegyzék [1] C.H.A., Programozás felülnézetben, M¶szaki Könyvkiadó, Budapest, 1988. [2] Knuth, D.E., A számítógép-programozás m¶vészete, 1. kötet: Alapvet® algoritmusok, M¶szaki Könyvkiadó, Budapest, 1987. [3] Obádovics J.Gy., Gyakorlati számítási eljárások, Gondolat Kiadó, 1972. [4] Programozási feladatok és algoritmusok Turbo Pascal nyelven, ComputerBooks, 1996. [5] Turbo Pascal User's Guide
21