Műszaki és gazdasági szakok alapozó matematikai ismereteinek e-learning alapú tanagyag- és módszertani fejlesztése TÁMOP-4.1.2.A/1-11/1-2011-0098
Perjésiné Hámori Ildikó
Numerikus módszerek
•
•
•
•
•
•
•
•
•
• •
•
Bevezető
A mérnöki problémák matematikai modellezése az alkalmazott matematika talán legfontosabb feladata.
A matematikai modellezés egy több lépésből álló (kör) folyamat.
A fizikai jelenség matematikai leírása, egy lehetséges matematikai modell felírása.
Általában a modell pontos megoldása nem állítható elő úgynevezett analitikus eszközökkel véges sok lépésben. Ilyenkor numerikus módszerekre van szükség.
Számítógépes feldolgozás, a program tesztelése.
Konkrét számítások elvégzése.
A számítások, eredmények analízise.
Az eredmények megjelenítése (esetleg vizualizálása rajzok, képek, animációk formájában).
Gyakran, az eredmények analízise során kiderül, hogy a kapott eredmény nem felel meg a valóságnak (a kísérleti eredményeknek, vagy annak, ami várható lett volna). Ilyenkor a modellezést újra elölről kell kezdeni.
Ebben a folyamatban a numerikus analízis feladata a matematikai modell megoldására alkalmas numerikus módszerek kidolgozása.
Számos magyar és angol nyelvű jegyzet, tankönyv tárgyalja a numerikus módszerek témaköreit, ezek közül néhányat az irodalomjegyzék tartalmaz.
Jelen jegyzet annyiban tér el az eddigiektől, hogy a hangsúlyt (esetleg az egzakt matematikai bizonyítások helyett is) a mintapéldák számítógépes megoldására teszi. A megoldások során
igyekeztünk kihasználni a Maple számítógép algebrai rendszer nyújtotta lehetőségeket. Figyelembe vettük, hogy a számítógépes algebra rohamos fejlődésével bizonyos módszerek már talán nem annyira hangsúlyosak (például lineáris egyenletrendszerek különböző megoldási módszerei);
ugyanakkor más, eddig nehezen kezelhető feladatok (például többváltozós interpoláció és regressszió, vagy parciális differenciálegyenletek numerikus megoldása) már korlátozottabb matematikai előképzettség esetén is érthetővé válnak. Példáink közül sokat a gyakorlati életből vettük.
Az egyes fejezetekben külön közöljük a felhasznált Maple parancsokat.
Jegyzetünket elsősorban mérnök és informata szakos MSc-s hallgatóknak ajánljuk, előismeretként az alapozó matematikai kurzusok anyagát, illetve a Maple szoftver alapfokú ismeretét tételezzük fel.
•
•
•
•
•
•
>
>
•
•
•
•
•
•
•
•
Hiba, hibakorlát
restart
Használt Maple parancsok: evalf ,identify , limit , plot
Ebben a fejezetben rövid összefoglalást adunk a numerikus módszerek, illetve a számítógép algebrai rendszer használatából eredő hibák lehetséges forrásairól.
A numerikus módszereknél alapvető fontosságú annak becslése, hogy közelítő számításunk eredménye mekkora hibával tér el (a többnyire ismeretlen) pontos értéktől.
A megoldás során fellépő hibák lehetséges okai:
A probléma matematikai megfogalmazása nem pontos. (Modellhiba) A kezdeti adatok pontatlanok. (Mérési vagy öröklött hiba)
A megoldási módszer pontatlan, végtelen sok lépéssel kapnánk pontos értéket. (Képlethiba) A gépi számolásnál kerekítési hibák lépnek fel. (Műveleti, vagy kerekítési hiba.)
A numerikus eljárás programozása során elkövetett hiba. (Programhiba) Az algoritmus készítésének szempontjai:
Legyen meghatározott, vagyis a lépések mindegyike egyértelmű legyen.
Legyen általános, működjön tetszőleges bemenő adatokkal.
Definíció
Ha x a pontos érték, a pedig a közelítő érték, akkor az xKa =∆a%δa kifejezésben a ∆a az abszolút hiba, δa az abszolút hibakorlát.
Használják az x=aGδa megfogalmazást is, ami az jelenti, hogy x2 aKδa, aCδa .
Definíció
Az x szám valamely a közelítő értékének relatív hibája δa x Ha x-et nem ismerjük, helytte a δa
a kifejezést használjuk.
Fontos annak ismerete, hogy a mérési adatok hibája hogyan befolyásolja a számításokban fellépő hibát, függvényértékek hibája hogyan függ a független változók hibájától. Ha az
x/f x függvénykapcsolatot vizsgáljuk, a függvényértékek relatív hibájának és a független változók relatív hibájának aránya
differenciálható f(x) függvény esetén:
f aC∆a Kf a
f a : ∆a
a z f# a $∆a
f a $ a
∆a = f# a $a
f a .
Definíció
Az f# a $a
f a mennyiséget az f(x) függvény a pontbeli kondíciószámának nevezzük.
Egy függvényt rosszul kondícionált, ha nagy a kondíciószáma.
1. Példa Az alábbi két kifejezés határértéke a ∞-ben π. A függvények ábrázolásával viszont kiderül, hogy az egyik rosszul, a másik jól kondícionált.
restart;f
dx 2K 4K 2 π x
2
:
>
xlim/Nf= limx
/Nf
>
xlim/Nx 2K2 1K π2
x2 =π (1.1)
plot f,x= 10000 ..105
>
x
10000 50000 100000 3.1415926
3.1415927 3.1415928 3.1415929
>
g:= 2 π
2C 4K 2 π x
2
> :
xlim/N g= limx
/N g
>
xlim/N
2 π
2C2 1K π2 x2
=π (1.2)
plot g,x= 1000 ..105
>
x
10000 40000 100000 3.141593
3.141594 3.141595 3.141596
>
>
>
>
(1.4) (1.4)
>
>
(1.3) (1.3)
>
>
Definíció
Csonkítási hibáról beszélünk, ha az egzakt matematikai kifejezés helyett annak közelítését alkalmazzuk a numerikus számítások során.
Ez akkor lép fel, ha egy függvénynek ismerjük az értékét x0 helyen, és valamilyen numerikus
eljárással következtetünk az x0+h helyen vett függényértékre. A csonkítási hiba az elhagyott tagoktól (a maradéktól) függ. Kifejezési formája O hn ) (ordo: rend), ami azt fejezi ki, hogy a hiba arányos h n-edik hatványával. Ez azt jelenti, hogy ha a hiba O(h) akkor a h felezése a hiba felezését
eredményezi. A hiba becslése általában bonyolult matematikai apparátust kíván, ezért jelen jegyzetben általában nem tárgyaljuk.
Az ismertetett közelítő eljárásokat addig ismételjük, míg az egymás után következő két közelítés eltérése egy előre megadott ε hibakorlátnál ksebb.
Jegyzetünk a Maple számítógép algebrai rendszerre épül, ezért említsük meg azon előnyöket, amelyek a számítógép algebrai rendszerek használatánál jelentkeznek, szemben
bármilyen számológéppel vagy numerikusan számoló szoftverrel.
A számítógép algebrai rendszerek használatával a numerikus módszerek alkalmazása könnyebbé válik, illetve a műveletek sokkal kisebb hibával terheltek. A Maple rendszer ahol csak lehet, egzakt módon számol, illetve az evalf segítségével a lebegőpontos számra való kerekítés tetszőleges (a gép memóriájától függő) pontosságra beállítható. Az identify parancs segítségével többnyire megtalálja azt a számot, aminek a kerekített értékét adtuk meg.
2. Példa Hasonlítsuk össze, mit ad eredményül a Maple és az Excel a következő kifejezésekre: 1 2 C 3
7 , sin Pi
3 , 2 ,
>
i= 1 N 1i2, 4.5558062159628882873
Maple Excel
1 2 C 3
7
13 14 evalf %, 100
0.92857142857142857142857142\
857142857142857142857142\
857142857142857142857142\
857142857142857142857142\
86
A kerekítés maximum 30 jegyre lehetséges.
>
>
>
>
(1.7) (1.7)
(1.9) (1.9)
>
>
(1.8) (1.8)
(1.11) (1.11)
>
>
>
>
(1.6) (1.6)
>
>
(1.5) (1.5)
(1.10) (1.10)
>
>
>
>
π;evalf π, 200 π
3.14159265358979323846264338\
327950288419716939937510\
582097494459230781640628\
620899862803482534211706\
798214808651328230664709\
384460955058223172535940\
812848111745028410270193\
852110555964462294895493\
03820
sin π 3
1 2 3 evalf %, 9
0.866025405
2
2 evalf %, 9
1.41421356
>
i= 1 N 1
i2
1 6 π2 evalf %, 9
1.64493407
>
>
>
>
(1.11) (1.11)
>
>
>
>
>
>
(1.10) (1.10)
>
>
(1.12) (1.12)
Csak véges számú elem összeadása lehetséges
4.5558062159628882873 :
identify %
2 Cπ
A numerikus kalkulátor nem képes az azonosításra.
Az egyes számítási eljárások elméleti ismertetése után minden fejezet tartalmazza a számítási algoritmusok Maple implementációját. A számítások lépéseit általában blokkdiagrammal szemléltetik, jegyzetünkben sok esetben közvetlenül a Maple implementáció jelenik meg.
>
>
Egyváltozós nemlineáris egyenletek megoldása
restart
Ebben a fejezetben az egyenletek gyökeinek közelítő meghatározására alkalmas módszerek közül megismerkedünk a legáltalánosabban használt Newton módszer (Newton-Rapson módszer) elméleti hátterével, alkalmazásának feltételeivel. A közelítő gyököket először lépésenként adjuk meg, majd egyre bonyolultabb eljárásokkal automatizáljuk a gyökkeresést, végül megismerkedünk a Maple beépített Newton eljárásával.
Olyan esetekben keressük az egyenlet gyökeit, illetve a függvény zérushelyeit, amikor megoldóképlet alkalmazása nem lehetséges.
A gyök (megoldás) meghatározása itt azt jelenti, hogy véges sok - és általában nem túl nagy számú - lépés után az elméletileg pontos értéktől adott hibakorlátnál kisebb mértékben tér el a gyököt közelítő érték.
Célunk olyan egyismeretlenes egyenlet gyökeinek meghatározása, amikor a megoldóképlet alkalmazása fel sem merülhet, illetve az egyenlet megoldása nem állítható elő zárt alakban.
Egyismeretlenes egyenletek megoldhatósága
Használt Maple parancsok: solve, fsolve, RealDomain Vizsgáljuk meg a következő egyenleteket:
A megoldandó egyenlet Az egyenle t típusa
Egzakt megoldás A megoldás Maple-lel
1 sin 2 x Kcos x = 0 Nem
algebrai 2 sin x cos x Kcos x = 0 cos x 2 sin x K1 = 0 cos(x)=0 x=π
2 Ckπ, k2Z sin(x)=1
2 x= π
6 C2 kπ, x=
5 π
6 C2 kπ, k2Z
egyenlet1:= sin 2 x Kcos x = 0;
sin 2 x Kcos x = 0 solve egyenlet1,x 1
2 π,K1 2 π, 1
6 π, 5 6 π
2) (x2C4 x2K1 = 0 Algebra
i x2C4s0 , így
x2K1 = 0, x=G1
egyenlet2:= x2C4 x2 K1 = 0;
x2C4 x2K1 = 0 solve egyenlet2,x ;
1,K1, 2 I,K2 I with RealDomain :
solve egyenlet2,x ; K1, 1
3 x3K9 x2C2 xC6
= 0
Algebra
i Van megoldóképlet egyenlet3:=x3K9 x2C2 x C6 = 0;
x3K9 x2C2 xC6 = 0 solve egyenlet3,x ; 4K 22 , 4C 22 , 1
4 x5K9 x2= 6 Algebra
i Nincs megoldóképlet, nincs
egzakt megoldás egyenlet4:=x5K9 x2C6
= 0;
x5K9 x2C6 = 0 solve egyenlet4,x RootOf _Z5K9 _Z2C6,
K0.7946447004 , RootOf _Z5K9 _Z2
C6, 1.950736723 , RootOf _Z5K9 _Z2 C6, 0.8453619345 fsolve egyenlet4,x ; K0.7946447002,
0.8453619348, 1.950736723
fsolve egyenlet4,x= 0 ..1 ; 0.8453619348
5) ex= xC1 : Nem
algebrai Nincs megoldóképlet, nincs
egzakt megoldás egyenlet5:= ex= xC1 ex= xC1 solve egyenlet5,x 0,K1
2 LambertW K2 eK2 K1 fsolve egyenlet5,x
0.
evalf solve egyenlet5,x , 4 0.,K0.7968
Megjegyzések:
- Az 1) és 2) egyenlet középiskolai feladat, analitikusan megoldható. A Maple a trigonometrikus egyenlet egy periódusba eső megoldásait adja meg. Alapesetben az alaphalmaz a komplex számok halmaza, a RealDomain csomag elindításával szűkíthetjük a megoldásokat a valós számok körére.
- A 3) egyenlet harmadfokú, megoldására van megoldóképlet, de ismerete túlmutat a középiskolai anyagon, a Maple megadja az egzakt megoldást.
- A 4) egyenlet ötödfokú, megoldására nincs megoldóképlet, így a solve parancs nem ad
megoldást. (Galois francia matematikus, 1811-1832 megmutatta, hogy ötödfokú, vagy magasabb fokú polinomok zérushelyeinek meghatározására nincs megoldóképlet, tehát olyan eljárás amely a négy alapművelet és a gyökvonás segítségével szimbolikusan megadható, pontos értékeket ad. Az fsolve parancs numerikusan megadja az összes, illetve egy előre megadott intervallumba eső megoldásokat.
- Az 5) egyenlet algebrai és nem-algebrai kifejezéseket is tartalmaz. Megoldásként egy pontos értéket, illetve egy üzenetet kapunk a második gyök létezéséről. Az evalf paraccsal ennek adott jegyre való közelítését kapjuk.
A Newton-módszer (Newton-iteráció) alkalmazásának feltételei, az algoritmus lépései
2.2.1. Definíció
Iteráció (sorozatos megközelítés): kiindulva valamely, a megoldáshoz "viszonylag közeli"
elemből, lépésenként kiszámítjuk egy, a megoldáshoz konvergáló végtelen sorozat egymás utáni tagjait.
Az egy pontra támaszkodó iteráció általános alakja xiC1=F xi , ahol F az iterációs függvény, i=0,1, ...
Ha az iterációs eljárás konvergens, akkor a keresett ξ gyökre igaz, hogy ξ=F(ξ).
A Newton-módszer lényege az, hogy az egyenlet megoldása helyett egy függvény zérushelyét keressük, úgy hogy a függvény zérushelyét érintőinek zérushelyével közelítjük.
Lépés 1. A h(x) = g(x) egyenlet 2 oldalát egy-egy függvénynek h(x), g(x) tekintve, ábrázoljuk a függvényeket. A függvénygörbék metszéspontjainak abszcisszái megegyeznek az egyenlet (valós) gyökeivel.
Lépés 2. Írjuk át az egyenletet f x =h x Kg x = 0 alakra, így az előzőekben meghatározott metszéspontok abszcisszái az f(x) függvény zérushelyeinek felel meg.
•
•
•
•
•
•
•
•
Lépés 3. Határozzuk meg a következő feltételeknek megfelelő [a,b] intervallumot:
az intervallumban csak egy gyök van és f(a)$f(b)<0 ,
f x az [a,b] intervallumban kétszer deriválható (tehát folytonos is), f# x s0 ha x2[a,b] ( a függvény monoton),
f## x s0 ha x2[a,b] (a függvénynek nincs inflexiós pontja).
Lépés 4. Húzzunk érintőt az f x függvényhez az intervallum azon végpontjából, ahol a
függvényérték előjele megegyezik a második derivált előjelével (Mivel ez a 0. közelítés, jelöljük x0-lal.) A gyököt az érintő x tengellyel való metszéspontjával közelítjük.
Lépés 5. Írjuk fel az (x0, f(x0 )) pontban húzott érintőegyenes egyenletét:
yK f x0 =f# x0 xKx0
Lépés 6. Határozzuk meg az érintőegyenes x tengellyel való metszéspontját, ez lesz az első közelítő gyök
x1=x0K f x0 f# x0
Lépés 7. Az eljárást az x1,f x1 pontból kiindulva folytatjuk, mindaddig, amíg az egymást követő két gyök közelítés eltérése a megadott pontosságnál nem kisebb.
Belátható, hogy ha x0=b, akkor a b,x1,x2, . . . ,xn, . . .sorozat monoton csökkenő módon az f x függvény egyetlen a,b -beli ξ zérushelyéhez tart. Ha az x0=a végpontból indulunk ki, akkor az a,x1,x2, . . . ,xn, . . .sorozatot kapjuk, amely monoton növekvőleg tart ξ-hez.
Az eljárást többféleképpen is leállíthatjuk, vagyis az eljárásból való kilépés feltétele, hogy az alábbi kilépési feltételek valamelyike nem teljesül:
1. Az egymást követő érték különbségére xnC1Kxn !ε ahol 0!ε a hibakorlát.
2. f xn !ε.
Összefoglalva: A Newton-módszer algoritmusa:
Megvalósítás Maple-ben
megadott lépésszámig Megvalósítás Maple
Kben megadott hibahatárig Input :
x0, ε εO0 . n=1,
xn=xnK1K f xnK1
f# xnK1
n = nC1
amíg kilépési feltétel = hamis Output : xn
x0 , k
for i to k do
x i d x iK1 Kf x iK1 / D f x iK1 ; end do ;
x1, x2,....xk
x0, ε, k, hiba
for i to k while hiba O epsilon do x i d x iK1 Kf x iK1
/ D f x iK1 ; hibad x i Kx iK1 ; end do;
x1, x2,....xn
>
>
>
>
A Newton iteráció megvalósítása Maple-ben
Használt Maple parancsok: plots csomag,display, for ....to...while..., D, proc, Float, print, Digits
2.3.1. Iteráció lépésenként
1. Példa: Oldjuk meg az x3 = 4$ x2K 6 egyenletet!
Lépés 1.
h:=x/x3;g:=x/4 x2K6;plot h x ,g x ,x=K1.4 ..2,y=K6 ..6 h:=x/x3
g:=x/4 x2K6
x
K1 0 1 2
y
K6 K4 K2 2 4 6
Az ábrából látszik, hogy a feladatnak 2 megoldása van a [-2,2] intervallumban. Írjuk át az egyenletet f(x)=0 formába, majd ezt a függvényt ábrázoljuk.
f:=x/x3K4 x2C6 :plot f x ,x=K1.4 ..2
>
>
>
>
x
K1 0 1 2
K4 K2 2 4 6
Lépés 3. Az ábráról megállapítható, hogy az egyenletnek egyik gyöke ξ
1 a [-1.4,-1], egy másik gyöke ξ2 az [1.5,2] intervallumba esik. Keressük ξ
1 értékét!
Vizsgáljuk a feltételek teljesülését! (Mivel a derivált adott helyen vett értékére vagyunk kíváncsiak, célszerű D(f)(x) utasítással meghatározni a derivált értékét.)
elso_derivalt:= D f x ;masodik_derivalt:= D2 f x elso_derivalt:= 3 x2K8 x masodik_derivalt:= 6 xK8
plot f x ,elso_derivalt,masodik_derivalt ,x=K1.4 ..K1,color= red,blue,green , legend= `f(x)`,első derivált,második derivált
f(x)
első derivált második derivált
x
K1.4 K1.3 K1.2 K1.1
K15 K10 K5 0 5 10 15
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
Az ábra jól mutatja, hogy az első derivált mindenütt pozitív, a második derivált mindenütt negatív az adott intervallumon.
Lépés 4. 5. 6. Mivel a másodk derivált negatív, ezért a negatív függvényértékű pontból kell kiindulni.
x0dK1.5;x1dx0Kf x0 / D f x0 ;
x0:=K1.5 x1:=K1.160000000
Lépés 7. Véges számú lépés végrehajtásához elég egyszerő for ciklust írnunk. Meg kell adni a lépésszámot, és a kezdőértéket.
kd8 :x0:=K1.5 :x0dx0:
for i tok do xi:=evalf xiK1K f xiK1
D f xiK1 end do: kozelitogyokdx k
kozelitogyok:=K1.086130198
Ha az előre megadott ε hibahatárig akarjuk elvégezni a számításokat a while ciklust használjuk.
kd8 :x0:=K1.5 :x 0 :=x0:εd0.001 :hiba:= 100 : for i tok while ε!hiba do
x i :=evalf x iK1 K f x iK1
D f x iK1 :hibadevalf x i Kx iK1 end do:
hiba:=hiba;kozelitogyok:=x k
hiba:= 0.000005451 kozelitogyok:=K1.086130198
2.3.2. Eljárások a Newton iterációra
Az iteral eljárás az iteráció egy lépését elvégző függvényt készít.
restart:with plots :
iteral:=proc expr::algebraic,x::name local iteration;
iteration:=x K expr/diff expr,x ; unapply iteration,x
end proc:
2. Példa: Határozzuk meg az ex= 2Kx2 egyenlet pozitív gyökét!
f:=x/exCx2K2 : Newton:=iteral f x ,x
Newton:=x/xK exCx2K2 exC2 x
>
>
>
>
>
>
>
>
>
>
plot f x , D f x , D2 f x ,x=K2 ..1,color= blue,red,green ,thickness
= 2
x
K2 K1 0 1
K3 K2 K1 1 2 3 4
Az ábrából látható. hogy a pozitív gyök a [0,1] intervallumba esik, ahol az első és a második derivált is pozitív. Kezdőértéknek tehát a zérushelynél nagyobb értéket kell választanunk, mert ekkor egyezik meg a második derivált előjele a függvényérték előjelével. Legyen a kezdőérték 1.0.
Adjuk meg a kezdőértéket (legyen ez x0) és a lépések számát (k) ! x0d1.0; x 0 dx0 :kd6 :
x0:= 1.0 for i tok do x i dNewton x iK1 end do
x1:= 0.6358246729 x2:= 0.5431566927 x3:= 0.5372973587 x4:= 0.5372744493 x5:= 0.5372744493 x6:= 0.5372744493 Készítsünk animációs ábrát is az eljárás "lefutásáról!
x0:= 1.0 :rajz:=plot f x ,x=x0K0.7 ..x0C0.1 :kep 0 ddisplay rajz : for i tok do
>
>
>
>
>
>
>
>
x1:=Newton x0 ;
P:=plot x0, 0 , x0,f x0 , x1, 0 ,color=blue ; kep i dplots display kep iK1 ,P ;
x0:=x1 end do:
display kep k
x
0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1
K0.5 0 0.5 1 1.5 2
A következő Newtoniteral eljárás addig fut, amíg vagy kisebb lesz két egymást követő érték különbsége az előírt mértéknél, vagy túl nem lépjük a megengedett lépésszámot. Az eljárás második része az animációhoz szükséges képsorozatot állítja elő.
restart:with plots :
Newtoniteral:=proc f,x0,n, delta
local x,graf1,graf2,p,p1,kep,z,y,mini,maxi,a,b;
global i;
x:=x0;
i:= 1;
mini:= 10^10;
maxi:=K10^10;
z:=x;
y:=x K f x / D f x ;
while i%n and evalf delta %evalf abs y K z do y:=evalf x K f x / D f x ;
z:=x;
mini:= min evalf x ,evalf mini ; maxi:= max evalf x ,evalf maxi ; x:=y;
i:=iC1 end do;
a:= min mini,evalf x0 K Float 2, K1 ;
>
>
b:= max evalf x0 ,maxi CFloat 2, K1 ; graf1:=plot f t ,t=a..b,color=blue ; kep 0ddisplay graf1 ;
i:= 1;
x:=x0;
y:=x K f x / D f x ; z:=x;
while i%n and evalf delta %evalf abs y K z do y:=x K f x / D f x ;
z:=x;
p:=plot x, 0 , x,f x , y, 0 ,thickness= 1 ; kep iddisplay kep i K 1 ,p ;
x:=y;
i:=iC1;
print 'x' i K 1 =evalf x end do
end proc:
3. Példa: Határozuk meg az f x =x3K0.3 x2C1 függvény zérushelyeit!
f:=x/x3K0.3 x2C1;
plot f x , D f x , D2 f x ,x=K1.1 ..1,y=K0.8 ..1.7,color= blue,red, green
f:=x/x3C K1 $0.3 x2C1
x
K1 K0.5 0 0.5 1 y
K0.5 0.5 1 1.5
Az ábrából látszik, hogy a függvénynek (kék) egy zérushelye van, hiszen a derivált (piros) másodfokú, és egy "kis" szakasztól eltekintve pozitív, tehát a függvénynek a grafikonon nem
>
>
>
>
látható része szigorúan monoton növekvő. Az is látszik, hogy a gyök a K1,K0.5
intervallumban van. A kezdőérték lehet például a -1, vagy ennél kisebb szám, mert ekkor a második derivált (zöld) megegyezik a függvény előjelével, és mind az első, mind a második derivált előjele állandó a zérushelyet tartalmazó intervallumban.
Legyen a kezdőérték -2, a megengedett maximális lépésszám 10, a kívánt pontosság 10K8. Digits:= 12 :Newtoniteral f,K2, 10, 10K8
x1=K1.37878787879 x2=K1.04321025530 x3=K0.924519905634 x4=K0.909565212175 x5=K0.909339283947 x6=K0.909339232865 x7=K0.909339232865 display kep|| 1 ..iK1 ,insequence=false
t
K2.2 K2 K1.8 K1.6 K1.4 K1.2 K1 K0.8
K10 K8 K6 K4 K2 0
>
>
>
>
>
>
Példák a feltételvizsgálat fontosságára
4. Példa: Határozzuk meg az f x =xK2 x
1
2 Csin x függvény legnagyobb zérushelyét!
f:=x/xK2 x Csin x ;plot f x ,x= 0 ..15
f:=x/xK2 x Csin x
x
5 10 15
0 1 2 3 4 5 6 7
Az ábra alapján arra következtethetünk, hogy a legnagyobb zérushely az 5, 6 intervallumban van.
plot f x , D f x , D2 f x ,x= 5 ..6,color= blue,red,green
x
5.2 5.4 5.6 5.8 6
K0.4 K0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4
Digits:= 12 :Newtoniteral f, 6, 10, 10K6
x1= 5.47058871628
>
>
>
>
>
>
x2= 5.41769027340 x3= 5.41679785537 x4= 5.41679759339 display kep|| 1 ..iK1 ,insequence=false
t
5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0 6.1 6.2 K0.2
0 0.2 0.4 0.6 0.8 1.0
A kezdőpont helytelen megválasztásának beláthatatlan következményei lehetnek! Legyen a kezdőérték 9.55.
Newtoniteral f, 9.55, 10, 10K8
x1= 19.8251008611 x2= 11.0324933699 x3= 6.42535279392 x4= 5.48679240027 x5= 5.41828005653 x6= 5.41679831539 x7= 5.41679759340 x8= 5.41679759339 display kep|| 1 ..iK1 ,insequence=false
>
>
t
6 8 10 12 14 16 18 20
0 2 4 6 8 10
A "közelítő" értékek kaotikusan viselkednek, bár egy idő után beáll a szigorú monoton csökkenés.
Ha a kezdő érték 9.6
Newtoniteral f, 9.6, 10, 10K8
Error, (in Newtoniteral) complex argument to max/min
A számolás során olyan értékek adódnak, ahol a függvény nincs is értelmezve. Ha csak a kapott érintőket szemléltetjük, a következő ábrát kapjuk:
x
K120 K100 K80 K60 K40 K20 0 20 2
4 6 8 10 12
Gyakorlati alkalmazások
Használt Maple parancsok: subs, animate,unapply
5. Példa Kepler-probléma: A Nap körül keringő bolygók mozgását leíró egyenlet megadása. A megoldásnak az elméleti alkalmazások (asztrofizika, atomfizika) mellett az időszámításban, a navigációban is fontos szerepe van.
A Kepler-törvények kimondják, hogy a bolygók – így a Föld is – Nap fókuszpontú ellipszis pályán mozognak, a mozgás során a bolygótól a Naphoz húzott vezérsugár egyenlő idők alatt egyenlő területeket súrol, tehát a bolygó nem egyenletes mozgást végez.
A feladat ezen mozgás hely-idő összefüggésének megadása.
Kepler a problémára a következő megoldást találta. Tekintsünk egy olyan körpályát, melynek középpontja a földpálya középpontja, sugara pedig a földpálya fél nagytengelye. Ezen a pályan mozogjon egy test egyenletes sebességgel.
A valódi Föld r=NF vezérsugarának meghosszabbításával érzékelhetővé válik a két objektum mozgásának eltérése. A Föld a napközeltől indulva siet, majd lassulva ismét „találkozik” az egyenletes mozgású égitesttel. A legnagyobb naptávolságot elhagyva a viszonyok megfordulnak:
a Föld kezdetben lemarad, majd felgyorsulva utoléri az „etalont”. http://hu.wikipedia.
org/wiki/Kepler-probl%C3%A9ma
Az ábrán a P pont a pályának az a pontja, ahol a bolygó a központi égitesthez legközelebb van:
perihélium, vagyis a=OP az ellipszis fél nagytengelye. A bolygó pillanatnyi helyzetét
egyértelműen megadja az az ω szög, melyet az r vezérsugár az NP tengellyel bezár, ezt valódi anomáliának nevezzük.
>
>
>
>
>
>
>
>
A cél az ω = ω(t) összefüggés meghatározása.
A feladat megoldásához vezető, úgynevezett Kepler-egyenlet:
µ=ηKe$sin η : ahol e =ON
OP - az úgynevezett numerikus excentricitás, ami a Föld esetén e=0.01674, µ - az ábrából leolvashatóan - az idővel egyenesen arányos mennyiség, un. közepes anomália, η az excentrikus anomália. Képezzük azt a függvényt, aminek a zérushelyét keressük. Ábrázoljuk a kapott fügvényt különböző rögzített μ estén.
fdη/ηKe sin η Kµ: ed0.01674 : with plots : g:=subs µ= π
4 ,f η :
>
>
plot g,η= 0 ..2$Pi, tickmarks = piticks, piticks ,title='µ
= Pi 4 '
η π 4
π 2 π Kπ
4 µ= 1
4 π
plot g,η= 7$ Pi
32 ..9$ Pi 32 , tickmarks = piticks, piticks ,title='µ= Pi
4 '
η 15 π
64 33 π
128 9 π Kπ 32
32 0 3 π 128
µ= 1 4 π
animate plot, f η ,η= 0 ..2
$Pi , µ= 0 ..2$Pi, trace= 5, frames= 10 , tickmarks
= piticks, piticks , insequence=false ;
η π 4
3 π 4
3 π 2
2 π
K2 π Kπ 0 π 2 π
µ= 0.
A baloldali ábra a μ=π
4 értékhez, a jobb oldali ábra különböző μ értékekhez tartozó f(η) függvényeket mutatja. A függvénygörbék látszólag 1 meredekségű egyenesek (hiszen e értéke kicsi). A középső, kinagyított ábra cáfolja ezt az állítást. A függvények szigorúan monoton növekvőek, teljesülnek a Newton módszer feltételei.
A Kepler-egyenlet megoldásakor a feladat az, hogy adott μ-höz keressük η-t. A Kepler-egyenlet azonban transzcendens, így η-t az µ függvényeként véges formában? megadni nem lehet. Ennek következménye az, hogy a feladatnak az idő függvényeként zárt alakú megoldása nincs. Ez sok nehézséget okoz, különösen a perturbációszámításban.
Kis e esetén az iteráció kezdőértékének η0=μ értéknek vehető. Így különböző μ értékekhez kiszámíthatjuk η értékeit, megadott pontossággal.
for j to 5 do µdevalf Pi
8 C jK1 $ π
8 ; Newtoniteral f,µ, 10, 10K6 end do µ:= 0.392699081699
x1= 0.399205834120 x2= 0.399205695664 µ:= 0.785398163398 x1= 0.797376923104 x2= 0.797376060387 µ:= 1.17809724510 x1= 1.19366270267 x2= 1.19366081349 x3= 1.19366081349
>
>
>
>
>
>
>
>
µ:= 1.57079632680 x1= 1.58753632680 x2= 1.58753398201 x3= 1.58753398201 µ:= 1.96349540849 x1= 1.97886270709 x2= 1.97886089689 x3= 1.97886089688
Megjegyzés: Az eljárásban az ismeretlent x-szel jelöltük, így η=x. Az µ , η pontokra illeszthető görbékről a 6. fejezetben lesz szó.
A Kepler-egyenletet megoldva ω is kiszámítható az ω és η közti összefüggés alapján. Egyszerű geometria megfontolások alapján (például http://astro.elte.
hu/icsip/egi_mechanika/kettest_problema/4fejezet.html ) ed'e': tan ω
2 = 1Ce
1Ke $tan η
2 :
A Föld esetén
ed0.01674; tan ω
2 = 1Ce
1Ke $tan η 2
e:= 0.01674 tan 1
2 ω = 1.01688248925 tan 1 2 η Tehát a két érték közelítőleg megegyezik.
6. Példa Kompresszibilitási együttható R. DeSantis (1976) írta le a valódi gázok kompresszibilitási együtthatóját (z) a következő formában:
z= 1CxCx2Kx3 1K x 2 : ahol x= b
4$v , b a van derWaals együttható, v a moláris térfogat. Adjuk meg x értékét, ha z=0.892.
fdx/zK 1CxCx2Kx3
1K x 2 :zd0.892 :
>
>
>
>
Ábrázoljuk a függvényt! Keressük meg a függvény legnagyobb zérushelyét!
plot f x ,x=K4 ..6, K4 ..8, discont=true
x K4 K2K2 2 4 6
2 8
plot f x ,x= 1.4 ..2,K4 ..2
x
1.5 1.7 2.0
K4 K3 K2 K1 0 1 2
Képezzük a függvény deriváltjait, majd válasszunk kezdőpontot!
d
dx f x = D f x ; d2
dx2 f x = D2 f x ;
plot D f x , D2 f x ,x= 1.6 ..1.9,color= red,green ,thickness= 2 d
dx 0.892K 1CxCx2Kx3
1Kx 2 =K1C2 xK3 x2 1Kx 2
K 2 1CxCx2Kx3 1Kx 3 d2
dx2 0.892K 1CxCx2Kx3
1Kx 2 =K2K6 x 1Kx 2
K 4 1C2 xK3 x2 1Kx 3
K 6 1CxCx2Kx3 1Kx 4
x
1.7 1.8 1.9
K80 K60 K40 K20 0
A második derivált (zöld) negatív, ezért az intervallum bal végpontjából indítsuk az eljárást.
Newtoniteral f, 1.6, 10, 10K8
x1= 1.70572296015
>
>
>
>
>
>
>
>
x2= 1.73948435008 x3= 1.74186339420 x4= 1.74187386747 x5= 1.74187386767
7. Példa Reynolds szám Lee és Duffy (1976) a következő empírikus képletet találta fibrózusos részecskék szuszpenziója áramlásának súrlódási tényezőjére:
1 x
= 1
k $ln RE$ x C14K 5.6 k :
ahol x a súrlódási tényző, RE a Reynolds szám, k pedig az oldat koncentrációjától függő állandó.
Ha az oldat koncentrációja 0.08 %, k=0.28. Mennyi az x értéke, ha RE=3750? Képezzük azt a függvényt, amelynek zérushelyét keressük.
fdsubs k= 0.28,RE= 3750 , 1 x
K1
k $ln RE$ x K14C 5.6
k :fdunapply f, x
f:=x/ 1 x
K3.57142857143 ln 3750 x C6.0000000000
plot f x ,x= 0.001 ..0.01, color=blue, title='f x '
x
0.003 0.006 0.010 0
10 20
f x
plot D f x ,x= 0.001 ..5, color=red,title= 'Első derivált'
x
1 2 3 4 5
K20 K10 0
Első derivált
plot D2 f x ,x= 0.001 ..1,y= 0 ..4000, color
=green, title= 'Második derivált'
x
0.10.30.5 0.7 1.0 y
0 2000 4000
Második derivált
A függvénygörbe szigorúan monoton csökkenő, konvex görbe, így a feladat megoldásához legyen x0d0.004 :
Newtoniteral f, 0.004, 10, 10K8
x1= 0.00494105157810 x2= 0.00511739449449 x3= 0.00512189073926 x4= 0.00512189350260 Így 10K8 pontossággal megkaptuk a keresett súrlódási tényezőt.
Beépített Maple lehetőségek
A Maple több lehetőséget is kínál a Newton módszer automatikus végrehajtására.
2.6.1. Oktató (Tutorial)
Az Eszközök menüsorban, Oktatók menüpont, Kalkulus-Egy Változó, Newton Eljárás kiválasztásával egyszerűen megkapjuk egyismeretlenes egyenletek közelítő gyökeit.
Megadhatjuk a függvényt, beállíthatjuk a kezdőpontot, az iterációk számát. Statikus ábrán vagy animáción grafikusan, illetve az Approximate ablakban numerikusan is megjelennek a közelítő értékek.
>
>
>
>
>
>
>
>
2.6.2. A Student[Calculus1] csomag NewtonsMethod parancsa
A Student csomag több alcsomagot tartalmaz, amely kimondottan egyetemi alapozó matematika témakörök tanulásához és tanításához ad segítséget. A Calculus1 alcsomag NewtonMethods parancsa többféle opciót kínál a közelítő gyök megadására.
with Student Calculus1 :
Kötelezően megadandó a függvény (egész pontosan itt kifejezést kell megadni), aminek a zérushelyét keressük, és a kiindulási érték. (Figyelem! A feltételvizsgálatot nem ússzuk meg itt sem.)
Opciók: output = value, sequence, plot, vagy animation (érték, sorozat, ábra, animáció) NewtonsMethod exK2Cx2,x= 1,output=value
0.537274449175
NewtonsMethod exK2Cx2,x= 1,output=sequence
1, 0.635824672851, 0.543156692699, 0.537297358633, 0.537274449523, 0.537274449175
NewtonsMethod exK2Cx2,x= 1,output=plot
>
>
f x Tangent lines x
0.6 0.7 0.8 0.9 1.0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Newton's Method
From the initial point x= 1, at most 5 iteration(s) of Newton's method for f x = exK2Cx2
NewtonsMethod exK2Cx2,x= 1,output=animation
f x x
0.6 0.7 0.8 0.9 1.0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
Newton's Method Animated
From the initial point x= 1, at most 5 iteration(s) of Newton's method for f x = exK2Cx2
Feladatok
1. Feladat Adjuk meg az alábbi egyenletek adott intervallumba eső gyökeit 10K4-es hibával!
1. a. x3K2 x2K5 = 0 [1, 4]
1. b. xKcos x = 0 0, π 2 1.c. x3C3 x2K1 = 0 [-4, 0]
2. Feladat Adjuk meg az alábbi egyenletek gyökeit 10K5-es hibával!
2. a. x= 2KexCx2 3
2. b. exC2KxC2 cos x K6 = 0 2. c. x2C10 cos x = 0
3. Feladat Határozzuk meg Newton módszere segítségével a következő kifejezések értékeit 4 tizedesjegy pontossággal. (Segítség: írjon fel olyan egyenletet, amelynk megoldása az adott érték.
3. a. 5 3. b. ln 2 3. c. 103
4. Feladat Annak valószínűsége, hogy egy teniszjátszmában A játékos 21:0 arányban nyerjen B játékossal szemben P= 1Cp
2
p 1KpCp2
21
, ahol p annak a valószínűsége, hogy A megnyer egy játszmát. Adjuk meg 10K3 hibával azon p valószínűséget, ami biztosítja azt, hogy A a B-vel játszott játszmák felét 21:0 arányban nyerje.
Ellenőrző kérdések
1. Milyen feltételek teljesülése esetén alkalmazhatjuk a Newton-féle érintőmódszert?
2.Mit biztosít az a feltétel, amely szerint d
dx f x s0 az [a,b] intervallumon?
3. Miért van szükség a d2
dx2 f x s0 x 2 a,b feltételre?
4. Hogyan kell a kezdőértéket megválasztani?
>
>
Lineáris egyenletrendszerek direkt megoldása
restart
Mérnöki feladatok megoldása során gyakran kell nagyméretű lineáris egyenletrendszereket
megoldani. Differenciálegyenletek numerikus megoldása is sokszor lineáris egyenletrendszerre vezet.
Ebben a fejezetben bemutatjuk az egzakt megoldásokhoz vezető módszereket, alkalmazásuk korlátait.
A lineáris egyenletrendszer felírási módjai, megoldhatósága
Az n ismeretlent tartalmazó, m egyenletből álló lineáris egyenletrendszer általános alakja:
a11 x1 + a12 x2 + . . .+ a1 k xk + . . . + a1 n xn = b1 a21 x1 + a22 x2 + . . .+ a2 k xk + . . . + a2 n xn = b2
. . .
ai1 x1 + ai2 x2 + . . .+ ai k xk + . . . + ai n xn = bi .
. .
am1 x1 + am2 x2 + . . .+ am k xk + . . . + am n xn = bm,
ahol az xk (k = 1,2,...,n ) a k-adik ismeretlen, az aik (i = 1,2, . . . ,m; k = 1,2, . . .,n) és a bi (i = 1,2, . . . ,m) valós számok. Az aik a k-adik ismeretlen együtthatója az i-edik egyenletben , a bi pedig az i- edik egyenletben levő konstsns tag.
Az egyenletek a következő tömörebb alakban írhatók : k
>
= 1n
aik xk = bi, i = 1, 2, . . . , m.
Jelöljük az xk (k = 1, 2 , . . . , n) együtthatóiból alkotott vektort ak-val, a bi konstans tagokból alkotott vektort pedig b-vel, azaz
ak= (a1 k , a2 k , . . . , ai k , . . . , am k ) , b = ( b1 , b2 , . . . , bi , . . . , bm ) . Így a lineáris egyenletrendszer vektoregyenlet alakban :
a1x1 + a2x2 + . . . + akxk + . . . +anxn = b ahol a1 , a2 , . . . , ak , . . . , an , b az m dimenziós tér vektorai.
A mátrixmüveletek alkalmazásával a lineáris egyenletrendszer még tömörebb alakba írható. Az ismeretlenek együtthatóit egy m#n-es mátrix (A) együtthatómátrix elemeiként, a konstansokat egy b-t m#1-es oszlopvektorként, az ismeretlenekből alkotott n#1-es x oszlopvektort felírva az egyenletrendszer mátrixos alakja:
Ax = b
Homogén az egyenletrendszer, ha b = 0 , inhomogén, ha bs0.
Az n-ismeretlenes lineáris egyenletrendszer megoldásának nevezünk minden olyan { x1, x2, . . . , xn} rendezett szám n-est, melynek elemeit rendre a megfelelő ismeretlenek helyébe helyettesítve az egyenletrendszer minden egyenlete teljesül. Ha van ilyen rendezett szám n-es, akkor az egyenletrendszert megoldhatónak nevezzük.
Az alábbi kérdésekre keressük a választ:
a ) Mi a feltétele annak, hogy az egyenletrendszer megoldható legyen?
b ) Ha a rendszer megoldható, akkor hány megoldás van?
c ) Hogyan lehet az összes megoldást megadni?
A lineáris egyenletrendszer megoldhatóságát az egyenletrendszer általános, vektoregyenletes és mátrixos alakja alapján különbözőképpen fogalmazzuk meg.
A lineáris egyenletrendszer megoldható
- az általános alak alapján: ha az egyenletei között nincs ellentmondás
- a vektoregyenlet alapján : ha a konstans tagokból alkotott b vektor felírható az együtthatóvektorok lineáris kombinációjaként, vagyis b benne van az
a1 , a2 , . . . , ak , . . . , an vektorok által generált térben.
- a mátrixegyenlet alapján : ha a b oszlopvektor benne van az A oszlopvektorai által generált térben.
A további kérdésekre a különböző megoldási módok során adunk választ.
Szabályos lineáris egyenletrendszer megoldása inverz mátrix segítségével és Cramer szabállyal
Használt Maple parancsok: LinearAlgebra csomag,Matrix, Determinant, Adjoint,MatrixInverse, simplify, GenerateMatrix
Először röviden foglaljuk össze a lineáris algebra alapfogalmait.
3. 2. 1. Definíció
Az Ax = b alakú egyenletrendszer szabályos, ha az A négyzetes (kvadratikus) mátrix, valamint determinánsa nem 0.
3. 2. 2. Definíció
Az A=
a1, 1 a1, 2
a2, 1 a2, 2 2×2 -es kvadratikus mátrix másodrendű determinánsának nevezzük az a1, 1 a2, 2Ka1, 2 a2, 2 kifejezés értékét.
3. 2. 3. Definíció
Az n#n -es kvadratikus mátrix n-edrendű determinánsának nevezzük a következő rekurzív kifejtés eredményeképpen kapott értéket:
det A=
a1, 1 . . . a1, n . . . . . . . . . .
. . . . .
an, 1 . . . an, n
=a1, 1A1, 1Ca1, 2A1, 2C...Ca1, nA1, n =k
>
== 1n
a1, kA1, k
ahol A1 k az a1 k elemhez tartozó (n-1)-ed rendű aldetermináns. Ezt az eredeti determinánsból úgy kapjuk, hogy az eredeti determináns első sorát és k-adik oszlopát elhagyjuk, és az így kapott determinánst K1 kC1 -gyel szorozzuk. Ez a determináns első sora szerinti kifejtés.
3. 2. 4. Definíció
Ha a det A s0, a mátrix reguláris, ha det A =0, a mátrix szinguláris.
3. 2. 5. Definíció
Az A=
a1, 1 a1, 2 . . a1, n a2, 1 . . . .
. . . . .
. . . . .
an, 1 . . . an, n
mátrix adjungáltja adj A=
A1, 1 A2, 1 . . An, 1 A1, 2 . . . .
. . . . .
. . . . .
A1, n . . . An, n
ahol Aij
az A mátrix determinánsának aij eleméhez tartozó (előjeles) aldeterminánsa.
3. 2. 6. Tétel
(adj A).A=(det A)$E, ahol A egy tetszőleges n#n-es kvadratikus mátrix, E pedig az n#n -es egységmátrix.
3. 2. 7. Tétel
(adj A).A=A.(adj A)
3. 2. 8. Definíció
A reguláris négyzetes A mátrix inverz (nem kell ez: vagy reciprok) mátrixa az a mátrix, melyre A.AK1=E illetve AK1.A=E
Következmény: AK1=adjA detA
Maple-ben a lineáris algebra eljárásait a LinearAlgebra csomag tartalmazza.
1. Példa Definiáljunk tetszőleges, 3×3-as mátrixot, határozzuk meg determinánsát, adjungáltját és inverzét!
>
>
>
>
>
>
(1.2.4) (1.2.4)
>
>
(1.2.3) (1.2.3) (1.2.2) (1.2.2) (1.2.1) (1.2.1)
>
>
Megoldás
with LinearAlgebra :
A:=Matrix 3, 3, a1, 1,a1, 2,a1, 3 , a2, 1,a2, 2,a2, 3 , a3, 1,a3, 2,a3, 3
A:=
a1, 1 a1, 2 a1, 3 a2, 1 a2, 2 a2, 3 a3, 1 a3, 2 a3, 3 Determinant A
a1, 1 a2, 2 a3, 3Ka1, 1 a2, 3 a3, 2Ca2, 1 a3, 2 a1, 3Ka2, 1 a1, 2 a3, 3Ca3, 1 a1, 2 a2, 3 Ka3, 1 a2, 2 a1, 3
Adjoint A
a2, 2 a3, 3Ka2, 3 a3, 2 a3, 2 a1, 3Ka1, 2 a3, 3 a1, 2 a2, 3Ka2, 2 a1, 3 Ka2, 1 a3, 3Ca2, 3 a3, 1 a1, 1 a3, 3Ka1, 3 a3, 1 Ka1, 1 a2, 3Ca1, 3 a2, 1
a2, 1 a3, 2Ka2, 2 a3, 1 Ka1, 1 a3, 2Ca1, 2 a3, 1 a1, 1 a2, 2Ka1, 2 a2, 1 MatrixInverse A :
simplify A.MatrixInverse A
1 0 0 0 1 0 0 0 1
Az ellenőrzéssel valóban azt kaptuk, hogy a mátrix és inverzének szorzata egységmátrixot ad eredményül.
3.2.8. Tétel
Ha a lineáris egyenletrendszer szabályos, a megoldásvektora x=AK1b
alakú.
A tételt a mérnöki gyakorlatban sokszor használják. az inverz mátrix meghatározása viszont hosszú számolással jár. Bebizonyítható, hogy ennek meghatározását helyettesíthetjük n+1 darab determináns meghatározásával.
3.2.9. Tétel
Ha egy lineáris egyenletrendszer szabályos, akkor:
- megoldható
(1.2.6) (1.2.6)
(1.2.7) (1.2.7)
(1.2.8) (1.2.8) (1.2.5) (1.2.5)
>
>
>
>
>
>
>
>
- pontosan egy (n elemből álló) megoldása van - a megoldás xi =det Ai
det A alakú, i=1..n
ahol det A az egyenletrendszer együtthatóiból származtatott determináns, det Ai pedig az i-edik módosított determináns, amely det A-ból úgy jön létre, hogy az A mátrix i-edik oszlopát az egyenletrendszer jobb oldalán álló konstansok oszlopával helyettesítjük.
A tétel harmadik állítását Cramer-szabálynak nevezzük.
Bizonyítás
A bizonyítást a szabályos 3×3-as egyenletrendszer esetén végezzük el.
A:=Matrix 3, 3, a1, 1,a1, 2,a1, 3 , a2, 1,a2, 2,a2, 3 , a3, 1,a3, 2,a3, 3 ;BdMatrix 3, 1, b1, 1,b2, 1,b3, 1
A:=
a1, 1 a1, 2 a1, 3 a2, 1 a2, 2 a2, 3 a3, 1 a3, 2 a3, 3
B:=
b1, 1 b2, 1 b3, 1
A1dMatrix 3, 3, b1, 1,a1, 2,a1, 3 , b2, 1,a2, 2,a2, 3 , b3, 1,a3, 2,a3, 3 ;
A1:=
b1, 1 a1, 2 a1, 3 b2, 1 a2, 2 a2, 3 b3, 1 a3, 2 a3, 3
A2dMatrix 3, 3, a1, 1,b1, 1,a1, 3 , a2, 1,b2, 1,a2, 3 , a3, 1,b3, 1,a3, 3
A2:=
a1, 1 b1, 1 a1, 3 a2, 1 b2, 1 a2, 3 a3, 1 b3, 1 a3, 3
A3dMatrix 3, 3, a1, 1,a1, 2,b1, 1 , a2, 1,a2, 2,b2, 1 , a3, 1,a3, 2,b3, 1
A3:=
a1, 1 a1, 2 b1, 1 a2, 1 a2, 2 b2, 1 a3, 1 a3, 2 b3, 1
>
>
>
>
(1.2.10) (1.2.10)
>
>
>
>
(1.2.9) (1.2.9)
>
>
(1.2.11) (1.2.11) x1d Determinant A1
Determinant A :x2d Determinant A2
Determinant A :x3d Determinant A3 Determinant A : megoldasdMatrix 3, 1, x1,x2,x3
megoldas:= b1, 1 a2, 2 a3, 3Kb1, 1 a2, 3 a3, 2Cb2, 1 a3, 2 a1, 3Kb2, 1 a1, 2 a3, 3
Cb3, 1 a1, 2 a2, 3Kb3, 1 a2, 2 a1, 3 a1, 1 a2, 2 a3, 3Ka1, 1 a2, 3 a3, 2Ca2, 1 a3, 2 a1, 3 Ka2, 1 a1, 2 a3, 3Ca3, 1 a1, 2 a2, 3Ka3, 1 a2, 2 a1, 3 ,
a1, 1 b2, 1 a3, 3Ka1, 1 a2, 3 b3, 1Ca2, 1 b3, 1 a1, 3Ka2, 1 b1, 1 a3, 3Ca3, 1 b1, 1 a2, 3 Ka3, 1 b2, 1 a1, 3 a1, 1 a2, 2 a3, 3Ka1, 1 a2, 3 a3, 2Ca2, 1 a3, 2 a1, 3Ka2, 1 a1, 2 a3, 3 Ca3, 1 a1, 2 a2, 3Ka3, 1 a2, 2 a1, 3 ,
a1, 1 a2, 2 b3, 1Ka1, 1 b2, 1 a3, 2Ca2, 1 a3, 2 b1, 1Ka2, 1 a1, 2 b3, 1Ca3, 1 a1, 2 b2, 1 Ka3, 1 a2, 2 b1, 1 a1, 1 a2, 2 a3, 3Ka1, 1 a2, 3 a3, 2Ca2, 1 a3, 2 a1, 3Ka2, 1 a1, 2 a3, 3 Ca3, 1 a1, 2 a2, 3Ka3, 1 a2, 2 a1, 3
ellenorzesdsimplify A.megoldas =B
ellenorzes:=
b1, 1 b2, 1 b3, 1
= b1, 1 b2, 1 b3, 1
2. Példa Oldjuk meg a következő egyenletrendszert a 3.2.8. és a 3.2.9. tétel alkalmazásával is.
x1K2 x2Kx3 = 1 Kx1K x2 = 1 2 x1 Cx3= 1 Megoldás
rendszerdx1K2 x2Kx3= 1,Kx1Kx2= 1, 2 x1Cx3= 1 :
Az egyenletrendszerből generáljuk az együttható- és a jobboldali konstansokból álló mátrixot!
A,BdGenerateMatrix rendszer , x1,x2,x3
A,B:=
1 K2 K1 K1 K1 0
2 0 1
, 1 1 1
Eredményül két mátrixot kapunk, az első az együtthatómátrix, a második a konstans vektor.
Vizsgáljuk meg, az egyenletrendszer szabályos-e, vagyis az együtthatómátrix determinánsa egyenlő-e 0-val.
(1.2.12) (1.2.12)
>
>
(1.2.13) (1.2.13)
(1.2.14) (1.2.14)
>
>
>
>
(1.2.16) (1.2.16)
>
>
>
>
(1.2.15) (1.2.15) detA:=Determinant A
detA:=K5
Az egyenletrendszer szabályos, létezik az együthatómátrix inverze. A megoldás az inverz mátrix segítségével:
megoldasdMatrixInverse A .B
megoldas:=
0 K1 1 Ellenőrzés:
ellenorzes:=simplify A.megoldas =B
ellenorzes:=
1 1 1
= 1 1 1
Most képezzük az A1, A2, A3 mátrixokat, és a determinánsaikat.
A1d
1 K2 K1 1 K1 0
1 0 1
:detA1dDeterminant A1 ;A2d
1 1 K1 K1 1 0
2 1 1
:detA2
dDeterminant A2 ;A3d
1 K2 1 K1 K1 1
2 0 1
:detA3dDeterminant A3
detA1:= 0 detA2:= 5 detA3:=K5 Tehát az egyenletrendszer megoldása
x 1 d detA1
detA ;x 2 d detA2
detA ;x 3 d detA3 detA ; x1:= 0 x2:=K1
x3:= 1 Ami megegyezik az előzőekben kapott megoldással.
Lineáris egyenletrendszer megoldása Gauss-Jordan módszerrel
Használt Maple parancsok: RowOperation, BackwardSubstitute, GaussianElimination , ReducedRowEchelonForm