Iránymező kirajzolása

© 2010 Szalkai István

Ez a program egy dy/dx = f(x, y) alakú egyenlettel megadott (elsőrendű explicit) közönséges differenciálegyenlet iránymezejét rajzolja ki. Az iránymező megmutatja, hogy egy adott (x, y) pontban a lokális megoldás érintővektora milyen irányú (a vektor által meghatározott egyenes f(x, y) meredekségű).

Rendszerkövetelmények

A program .NET alapú, emiatt minden elterjedt operációs rendszer alatt fut a megfelelő környezet telepítése esetén:

Microsoft Windows: a .NET Framework 4 telepítése szükséges
Linux/Mac OS X: a Mono telepítése szükséges

A program használata

A szövegmezőbe egy x-et és y-t tartalmazó matematikai kifejezést írhatunk, amely megadja dy/dx = f(x, y) értékét, pl. sin(x)/ctg(y) + 2xy - 6.5.

A szintaxis kis- és nagybetűkre nem érzékeny. A kifejezést a következő elemekből állíthatjuk össze:

Változók x, y
Beépített konstansok random (0 és 1 közötti valós véletlenszám), i, e, pi, inf (végtelen), nan (nem értelmezett kifejezésérték)
Numerikus konstansok pl. 2, -3, 1.42219, 1.32419e-08 (normálalak)
Zárójelek (, )
Logikai operátorok & (ÉS), | (VAGY), # (XOR), ~ (NEM)
Relációs operátorok =, <> (nem egyenlő), <, >, <=, >=
Aritmetikai operátorok +, -, *, /, % (maradékképzés), ^ (hatványozás)
Alapfüggvények abs (abszolútérték), arg (komplex szám argumentuma), conj (konjugált), sign (előjel), sqr (négyzetreemelés), sqrt (négyzetgyök), exp (ex), ln
Trigonometrikus függvények sin, cos, tan/tg, cot/ctg
Inverz trigonometrikus függvények asin/arcsin, acos/arccos, atan/atg/arctan, acot/arccot/actg/arcctg
Hiperbolikus függvények sinh/sh, cosh/ch, tanh/th, coth/cth
Inverz hiperbolikus függvények asinh/arsinh/arsh, acosh/arcosh/arch, atanh/artanh/arth, acoth/arcoth/arcth
Egyéb függvények floor (alsó egészrész), ceil (felső egészrész), frac (törtrész), round (kerekítés egész számra), real/re (valós rész), imag/im (képzetes rész)

Amint az a fenti táblázatból is látszik:

A beírt függvény megváltoztatására a program azonnal reagál, frissíti a képet. Az iránymező egyes vektorai akkor kerülnek kirajzolásra, ha az adott pontban f(x, y) értelmezett és valós.

A rácsméret (a kirajzolt vektorok hossza, a mintavétel gyakorisága) is állítható, legalább 16-nak kell lennie.

A kirajzolt iránymező kattintással és húzással mozgatható, az egér görgőjével vagy a PageUp/PageDown gombokkal nagyítható.


Példa: az y' = xy / (x^2-1) egyenlet egy iránymezője: