• Nem Talált Eredményt

Érdekes informatika feladatok

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Érdekes informatika feladatok "

Copied!
5
0
0

Teljes szövegt

(1)

Az id!pontokat romániai, nyári id!szá- mítás (UT+3 óra) szerint adtuk meg.

Neptunusz: Kora hajnalban kel. A hajnali égen kereshet!meg a keleti látóhatár köze- lében, a Bak csillagképben.

nap óra

1. 10 A Merkúr 1,6 fokkal délre az Uránusztól.

2. 20 Telehold. (20h 15m)

8. 13 A Jupiter 6,5 fokkal északra a Holdtól.

10. 05 A Juno szembenállásban.

10. 21 Utolsó negyed. (21h 04m)

13. 02 A Neptunusz 2,9 fokkal északra a Hold-tól.

14. 04 A Mars 0,4 fokkal északra a Holdtól, fedés (hazánkból nem látható).

14. 23 Az Uránusz 0,2 fokkal délre a Holdtól, fedés (hazánkból nem látható).

16. 14 A Merkúr 4,3 fokkal délre a Holdtól.

17. 15 Újhold. (14h 36m)

20. 10 A Vénusz 2,5 fokkal délre a Holdtól.

24. 10 Els(negyed. (09h 36m)

25. 12 A Szaturnusz 0,4 fokkal délre a Holdtól, fedés (hazánkból nem látható).

28. 22 A Mars 0,7 fokkal délre az Uránusztól.

Mars: A hajnali szürkületben kereshet!

a keleti látóhatár fölött a Vízönt! csil- lagképben. Másfél órával kel a Nap el!tt.

Fényessége 1,1m-ról 1,0m-ra, átmér!je 4,9"-r!l 5,3"-re n!.

Jupiter: Éjfél el!tt kel. Az éjszaka má- sodik felében látható a Kígyótartó csil- lagképben. Fényessége –2,4m, átmér!je 42".

Szaturnusz: Az éjszaka nagy részében megfigyelhet! az Oroszlán csillagkép- ben. Kora hajnalban nyugszik. Fényes- sége 0,3m, átmér!je 19".

Uránusz: A Nap közelsége miatt nem figyelhet!meg.

összeállította Csukás Mátyás

Érdekes informatika feladatok

XVII. rész

Lineáris egyenletrendszerek megoldása – a Gauss-elimináció

Lineáris egyenletrendszernek nevezzük az

x

1

, x

2

,..., x

n ismeretlenekkel rendelkez!

= +

+

= +

+ +

= +

+ +

m n

mn m

m

n n

n n

b x

a x

a x a

b x

a x

a x a

b x

a x

a x a

...

...

...

...

...

...

...

2 2 1 1

2 2

2 22 1 21

1 1

2 12 1 11

rendszert, ahol aij,bi R,i=1,m, j=i,n.

Lineáris egyenletrendszerek keletkeznek például a mechanikában, geodéziában, vil- lamosságtanban, ökológiai, gazdasági és más vizsgálatok során; a numerikus matematika több más feladatát is ilyen rendszerek megoldására vezethetjük vissza. Így a nemlineáris egyenletek megoldásához lineáris egyenletrendszerek egész sorozatát kell megoldanunk.

A differenciál- és integrálegyenletek, az interpolációs és optimalizációs feladatok közelí- t!megoldása is lineáris rendszerekkel kapcsolatos.

(2)

Vezessük be a következ!jelöléseket:

m

m n

n n

m

mn m

m

n n

R b b b b R x x x x R a a

a

a a

a

a a

a

A= × = =

, ...

, ...

...

...

...

...

...

...

...

2 1 2

1

2 1

2 22

21

1 12

11

,

ekkor az egyenletrendszer az Ax=b alakban írható.

Az egyenletrendszer akkor és csakis akkor oldható meg, ha a bvektor el!állítható az Amátrix oszlopvektorainak lineáris kombinációjaként.

Az egyenletrendszer akkor és csakis akkor oldható meg egyértelmBen, ha az Amát- rix oszlopvektorai lineárisan függetlenek, vagy rang(A) =n, vagy det(A) 0 (az egyen- letrendszer határozott).

Ha m = n(n×n-es az Amátrix), alkalmazhatjuk a Gauss-elimináció módszerét.

= +

+

= +

+ +

= +

+ +

n n

nn n

n

n n

n n

b x

a x

a x a

b x a x

a x a

b x

a x

a x a

...

...

...

...

...

...

...

2 2 1 1

2 2

2 22 1 21

1 1

2 12 1 11

, Ax=b, A Rn×n,x,b Rn.

Legyen an+1=b, vagyis az eredmény oszlopvektort bevisszük az együttható-mátrix (n+1)-ik oszlopába, annak érdekében, hogy egyszerBbben tudjuk végrehajtani az elimi- nációt.

Így keletkezik a következ!mátrixunk:

=

+ + +

1 ,

1 , 2

1 , 1

2 1

2 22

21

1 12

11

...

...

...

...

...

...

...

...

n n

n n

nn n

n

n n

a a a

a a

a

a a

a

a a

a

A .

A cél az, hogy az egyenleteken olyan átalakításokat hajtunk végre, hogy az

x

1 isme- retlen csak az els!egyenletben szerepeljen, az xk,k=1,n ismeretlen csak az els!, má- sodik, k-adik egyenletben szerepeljen.

Hogyan tudjuk végrehajtani ezeket az átalakításokat?

Feltételezzük, hogy a11 0, adjuk hozzá az i-edik egyenlethez, az els! egyenlet

11 1

a ai

-szeresét (i=2,n). Ekkor az Amátrixunk alakja a következ!lesz:

=

+ + +

) 1 (

1 ,

) 1 (

1 , 2

1 , 1

) 1 ( )

1 (2

) 1 2( )

1 22(

1 12

11

...

...

0

...

...

...

...

...

0

...

n n

n n

nn n

n n

a a a

a a

a a

a a

a

A ,

(3)

ahol ( )

11 1 1 )

1 (

a a a a

aij = ij + j i , i=2,n, j=2,n+1.

Ezt a lépést követi a második eliminációs lépés (kiküszöbölés). Feltételezzük, hogy

) 0

1 22(

a , adjuk hozzá az i-edik egyenlethez, a második egyenlet (1)

22 ) 1 (2

a ai

-szeresét (i=3,n). Ekkor az Amátrixunk alakja a következ!lesz:

=

+ + + +

) 2 (

1 ,

) 2 (

1 , 2

) 1 (, 1 2

) 2 (

) 2 (2

) 1 (2

) 2 (3 ) 2 33( ) 1 ( 23 ) 1 ( 22

1 , 1 1 13

12 11

...

...

...

0 0

...

...

...

...

...

0 0

...

0

...

n n

n n

nn n n

n

n n

a a a

a a a

a a a a

a a a

a a

A ,

ahol ( (1))

22 ) 1 (2 ) 1 2( ) 1 ( ) 2 (

a a a a

aij = ij + j i , i=3,n, j=3,n+1.

Folytatva a fent említett eliminációs lépéseket, ha akk(k 1) 0,k=3,n, a következ!

mátrixhoz jutunk:

=

+ + + +

) 1 (, 1

) 2 (, 1 2

) 1 (, 1 2

) 1 (

) 2 2(

) 1 (2 )

2 33( ) 1 ( 23 ) 1 ( 22

1 , 1 1 13

12 11

... ...

...

0 0 0

...

...

...

...

...

0 0

...

0

...

nn n

n n

nnn n n

n n

a a a

a a a a

a a

a a a

a a

A .

Jelöljük aij(0)-val az

a

ij-t, ekkor az eliminációs lépéseket megfogalmazhatjuk rekur- zíven:

) ( ( 1)

) 1 ) (

1 ( ) 1 ( )

( = + k

kk ikk kjk

ijk ijk

a a a

a

a , ahol

1 , 1 ,

, 1 ,

1 ,

1 = + = + +

= n i k n j k n

k .

Az eliminációs lépések befejezése után megkaptuk a háromszögmátrixot, az utolsó sorból kifejezhetjük az xn-et (ha ann(n1) 0): ( 1)

) 1 (

1 , +

=

n

nn n n n

n

a

x a

, majd az (n-1)-ik egyenlet-

t!l az els!felé tartva visszahelyettesítjük a már kiszámított ismeretleneket és kiszámítjuk az újabb ismeretlent. Ha az els!sort is visszahelyettesítettük és kiszámoltuk az

x

1-et, megoldottuk az egyenletrendszert, megkaptuk az ndarab megoldást (

x

1

,..., x

n).

A visszahelyettesítés rekurziója:

(4)

=

+ + =

n i j

i j i ij

n i i ii

i a a x

x a

1 ) 1 ( )

1 (, 1 ) 1 (

1 ,ahol i=n,1.

A Gauss-eliminációt használva meghatározhatjuk a mátrix rangját és determinánsát is: rang(A) a f!átlón lév!nemzéró elemek száma (ha ez pont n, akkor a rendszer határo- zott), a mátrix determinánsa pedig a f!átlón lév!elemek szorzata lesz. Ha det(A) 0, akkor a rendszer határozott.

A Gauss-elimináció tehát mindig elvégezhet!, ha rang(A) = n (det(A) 0), és

) 0

1 kk(k

a .

A következ!Delphi program megvalósítja a Gauss-eliminációt és megold egy lineáris egyenletrendszert:

program Gauss;

{$APPTYPE CONSOLE}

type

TTomb = array of array of real;

TMegoldas = array of real;

procedure Eliminal(ezt, ebbol: integer; var a: TTomb; is- meretlen: integer);

var

i: integer;

szam: real;

begin

if a[ezt, ezt] = 0 then begin

writeln('A Gauss-eliminacio nem vegezheto el!');

Halt(1);

end;

szam := -a[ebbol, ezt] / a[ezt, ezt];

for i := ezt to ismeretlen do

a[ebbol, i] := a[ebbol, i] + a[ezt, i]*szam;

end;

procedure Visszahelyettesit(a: TTomb; ismeretlen: inte- ger; var m: TMegoldas);

var

i, j: integer;

begin

for i := ismeretlen-1 downto 0 do begin

m[i] := a[i, ismeretlen] / a[i, i];

for j := ismeretlen-2 downto 0 do

a[j, ismeretlen] := a[j, ismeretlen] -(m[i]*a[j, i]);

end;

end;

(5)

var

ismeretlen, i, j, rang: integer;

det: real;

a: TTomb;

m: TMegoldas;

begin

writeln('Ax = b egyenletrendszer megoldasa Gauss- eliminacioval.');

writeln;

// Az ismeretlenek szamanak beolvasasa.

write('Hany ismeretlen van? ');

readln(ismeretlen);

// A dinamikus tomb helyfoglalasa.

SetLength(a, ismeretlen, ismeretlen+1);

// A matrix elemeinek beolvasasa, a[*, n+1] az eredmeny.

writeln;

writeln('A rendszer:');

for i := 0 to ismeretlen-1 do for j := 0 to ismeretlen do

begin

write('a[', i+1, ', ', j+1, '] = ');

readln(a[i, j]);

end;

// Az eliminacio elkezdese.

for i := 0 to ismeretlen-2 do for j := i+1 to ismeretlen-1 do

Eliminal(i, j, a, ismeretlen);

// A visszahelyetesites.

SetLength(m, ismeretlen);

Visszahelyettesit(a, ismeretlen, m);

// A megoldas kiirasa.

writeln;

writeln('A megoldas:');

for i := 0 to ismeretlen-1 do

writeln('x', i+1, ': ', m[i]:0:5);

// Rangszamitas.

rang := 0;

for i := 0 to ismeretlen-1 do if (a[i, i] <> 0) then inc(rang);

writeln;

writeln('A matrix rangja: ', rang);

// Determinans szamitas.

det := 1;

for i := 0 to ismeretlen-1 do det := det * a[i, i];

writeln;

writeln('A matrix determinansa: ', det:0:5);

readln;

end.

Kovács Lehel István

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

De talán gondolkodásra késztet, hogy hogyan lehet, illetve lehet-e felülkerekedni a hangoskönyvek ellen gyakran felvetett kifogásokon, miszerint a hangos olvasás passzív és

Érdekes mozzanat az adatsorban, hogy az elutasítók tábora jelentősen kisebb (valamivel több mint 50%), amikor az IKT konkrét célú, fejlesztést támogató eszközként

De akkor sem követünk el kisebb tévedést, ha tagadjuk a nemzettudat kikristályosodásában játszott szerepét.” 364 Magyar vonatkozás- ban Nemeskürty István utalt

A fiatalok (20–30 évesek, más kutatásban 25–35 évesek) és az idősek (65–90 évesek, más kutatásban 55–92 évesek) beszédprodukciójának az összevetése során egyes

A második felvételen mindkét adatközlői csoportban átlagosan 2 egymást követő magánhangzó glottalizált (az ábrákon jól látszik, hogy mind a diszfóniások, mind a

Feltevésem szerint ezt a kiadást ugyanaz a fordító, azaz Bartos zoltán jegyzi, mint az előzőt, s vagy azért nem tüntették fel a nevét, mert az ötvenes évek klímájában

Az akciókutatás korai időszakában megindult társadalmi tanuláshoz képest a szervezeti tanulás lényege, hogy a szervezet tagjainak olyan társas tanulása zajlik, ami nem

Nagy József, Józsa Krisztián, Vidákovich Tibor és Fazekasné Fenyvesi Margit (2004): Az elemi alapkész- ségek fejlődése 4–8 éves életkorban. Mozaik