start






Łagodne wprowadzenie
do Systemu Maple





Andrzej Sendlewski
sendlew@mat.uni.torun.pl
Marzec, 2002 rok



Znajdziesz tutaj zestaw podstawowych komend i funkcji dostępnych w Systemie Maple, które umożliwią Ci pracę nawet wtedy, gdy jesteś początkującym użytkownikiem tego systemu. Warunkiem koniecznym jest rozumienie podstawowych pojęć z zakresu matematyki elementarnej i wyższej.
Dokument ten powstał z użyciem Systemu Maple V Release 5.1, ale może być z powodzeniem wykorzystany w wersjach wcześniejszych od Release 2 począwszy.


Zawartość:
Nawigacja po dokumencie
Otwieranie i zamykanie arkuszy
Wyrażenia matematyczne
Wykresy
Algebra
Układy równań
Operowanie na symbolach
Definiowanie funkcji
Granice, pochodne, całki
Wektory i macierze
Pomoc


Otwieranie i zamykanie arkuszy

Aby otworzyć arkusz w Maple kliknij `File` w menu i wybierz opcję `Open`.



Zaznacz plik, który chcesz otworzyć:



Aby zachować plik pod inną nazwą, który można będzie użyć później w innej sesji Maple, kliknij `File` menu i wybierz opcję `Save As`:



Wprowadź nazwę pliku i zatwierdź ją:






Wyrażenia matematyczne

Stosując operatory i funkcje oraz nawiasy możesz budować rozmaite coraz bardziej skomplikowane wyrażenia matematyczne:

Podstawowe operatory arytmetyczne:

dodawanie: +
odejmowanie: -
mnożenie: *
dzielenie: /
potęgowanie: ^
silnia: !

Podstawowe funkcje:

pierwiastek kwadratowy: sqrt(x) albo x^(1/2)
pierwiastek stopnia n: surd(x, n) albo x^(1/n)
Funkcja wykładnicza o podstawie
e=2.7182818...: exp(x)
Logarytm o podstawie a: log[a](x)
Logarytm naturalny: ln(x)
Funkcje trygonometryczne: sin(x), cos(x), tan(x),
sec(x), cot(x), csc(x)
Funkcje hyperboliczne: sinh(x), cosh(x), tanh(x),
sech(x), csch(x), coth(x)
Funkcje cyklometryczne: arcsin(x), arccos(x), arctan(x),
arcsec(x), arccsc(x), arccot(x)
Funkcje odwrotne do hiperbolicznych: arcsinh(x), arccosh(x),
arctanh(x), arcsech(x),
arccsch(x), arccoth(x)
Wartość bezwzględna: abs(x)
Znak wartości: sgn(x)


Twój pierwszy przykład:

> restart;
> 3*4+12;

24

> 3*(4+12);

48

> (12!-10!)^2;

225979298979840000




Wykresy

Zdefiniujmy wielomian x^3-7*x+6.
> x^3-7*x+6;

3
x - 7 x + 6

Wyrażenie to możemy przechowywać jako nową zmienną. Aby tego dokonać należy wykonać instrukcję przypisania.
> w:=x^3-7*x+6;

3
w := x - 7 x + 6

Wykres jest bardzo pomocny w badaniu własności wszelkich funkcji matematycznych, także wielomianów. Podstawową funkcją kreślącą wykresy jest funkcja plot.
> plot(w, x);

Domyślnie, Maple rysuje wykres dla x z przedziału -10 .. 10. Wyznaczmy inny przedział na osi OX, np. [-4, 5]:
> plot(w, x=-4 .. 5);

Można także wyznaczyć zakres zmiennej y:
> plot(w, x=-4 .. 5, y=-20.. 20);

Funkcja plot akceptuje wiele parametrów dodatkowych. Jednym z najważniejszych jest parametr scaling=constrained, który każe Systemowi Maple zachować to samo skalowanie na obu osiach.
> plot(w, x=-4 .. 3, y=-2 .. 14, scaling=constrained);

Inne parametry dla funkcji plot znajdziesz wydając polecenie:
> ?plot,options



Algebra

Rozkład danego wielomianu na czynniki uzyskamy z pomocą funkcji factor :
> factor(w);

(x - 1) (x - 2) (x + 3)


Czynniki otrzymanego wyrażenia możemy wymnożyć za pomocą funkcji expand, otrzymując oryginalny wielomian. Aby odwołać sie do ostatnio otrzymanego rezultatu stosujemy znak procentu %. (Dla Maple V Release 4 i wersji wcześniejszych, stosuj znak " zamiast %.)
> expand(%);

3
x - 7 x + 6

solve wyznacza rozwiązania równania. Aby wyznaczyć pierwiastki wielomianu w należy podać jako pierwszy parametr odpowiednie równanie, a jako drugi niewiadomą.
> solve(w=0, x);

1, 2, -3


Maple wypisuje wszystkie pierwiastki, przy czym pierwiastki wielokrotne są wypisane tyle razy ile wynosi ich krotność
> solve(w^2=0, x);

1, 2, -3, 1, 2, -3


Jeżeli chcemy znać wartości numeryczne, to stosujemy funkcję eval. Aby obliczyć wartość wielomianu w punkcie x=2 wprowadzamy:
> eval(w, x=2);

0

Można bezpośrednio nadać zmiennej konkretną wartość, przykładowo:
> x := 0;

x := 0

Wtedy Maple daje:
> w;

6


Jednakże, w nie jest w dalszym ciagu dostępne jako wyrażenie symboliczne x^3-7*x+6;, lecz jako wartość numeryczna 6. Jeżeli chcemy, aby dalej w = x^3-7*x+6; musimy anulować numeryczną wartość x.
> x := 'x';

x := x

> w;

3
x - 7 x + 6





Układy równań

Maple obsługuje rozwiązywanie układów równań z wieloma niewiadomymi.
Określmy dwa równania:
> r1 := 3*x-2*y=8;

r1 := 3 x - 2 y = 8

> r2 := 5*x-3*y=4;

r2 := 5 x - 3 y = 4

Rozwiążmy powstały układ równań ze względu na niewiadome x i y:
> solve({r1, r2}, {x, y});

{x = -16, y = -28}

Rozwiążmy jeszcze nieliniowy układ równań.
> r3:=x^2+y^2=4;

2 2
r3 := x + y = 4

> r4:=(x+1)^2=y;

2
r4 := (x + 1) = y

> solve({r3, r4},{x, y});

2
{x = %1, y = %1 + 2 %1 + 1}

2 4 3
%1 := RootOf(7 _Z + _Z + 4 _Z + 4 _Z - 3)

> evalf(%);

{y = .737785015, x = -1.858944128}





Operowanie na symbolach

Do upraszczania (jednego albo wielu) skomplikowanych wyrażeń stosuj polecenie simplify:
> simplify(sin(x)^2+2*cos(x)^2);

2
cos(x) + 1

Możesz wyznaczyć zmienną z równania za pomocą polecenia isolate :
> readlib(isolate):
> isolate(2*y*x+sqrt(x^2)=0, y);

2
sqrt(x )
y = - 1/2 --------
x

collect grupuje współczynniki o tym samym wymiernym wykładniku:
> collect(5*x^3 + a*x-2*x + 1+sqrt(2), x);

3
5 x + (a - 2) x + sqrt(2) + 1

normal sprowadza do wspólnego mianownika:
> normal((2*x-1)/(x-2)-(x+1)/(x+2));

x (x + 4)
---------------
(x - 2) (x + 2)

Uwaga: Łatwe manipulowanie postacią wyrażenia umożliwia menu kontekstowe, kliknij prawym przyciskiem na obliczonym wyrażeniu (np ułamku) i wybierz stosowną akcję (możliwość ta jest dostępna od werji Maple V Release 5.x):





Definiowanie funkcji

Łatwy sposób definiowania funkcji za pomocą operatora ->.
> f := x -> (x+1)*(x-1);

f := x -> (x + 1) (x - 1)

> g:=(x, y)->x^2-y^2;

2 2
g := (x, y) -> x - y


Możesz stosować wszystkie funkcje standardowe Maple do swoich zdefiniowanych funkcji:
> expand(f(x));

2
x - 1

> factor(g(x,y));

(x + y) (x - y)


Obliczanie wartości funkcji w punkcie:
> f(1);

0

> f(2);

3

> g(0,0);

0

> g(-1,2);

-3


Mimo tego, że Maple jest zaprojektowany do obliczeń symbolicznych możesz obliczać wartości numeryczne jak na kalkulatorze:
> f(0.5);

-.75

albo wpisać ułamek symbolicznie i otrzymać dokładny rezultat symboliczny:

> f(1/2);

-3/4

Zdefiniowana funkcja nie wymaga stosowania funkcji eval do obliczeń wartości.
Wykresy tych funkcji otrzymamy za pomocą poleceń plot i plot3d.

> plot(f(x), x=-5 .. 5, y=-2 .. 10);

Punkty przecięcia z linią o równaniu y=2:
> solve(f(x)=2, x);

sqrt(3), -sqrt(3)

> plot3d(g(x,y), x=-1..1, y=-1..1);

Można drukować wartości funkcji z ustalonym skokiem argumentu z określonego przedziału.
Przykładowo, wartości funkcji dla argumentów z [-2, 2] ze skokiem 0.5:
> for i from -2 to 2 by 0.5 do
> f(i)
> od;

3


1.25


0


-.75


-1


-.75


0


1.25


3.00

Można także jednocześnie drukować wartości argumentów x (tutaj reprezentowanych przez zmienną indeksującą i) oraz odpowiadające im wartości funkcji:
> for i from -2 to 2 by 0.5 do
> i, f(i)
> od;

-2, 3


-1.5, 1.25


-1.0, 0


-.5, -.75


0, -1


.5, -.75


1.0, 0


1.5, 1.25


2.0, 3.00




Granice, pochodne, całki

Aby obliczyć granicę funkcji w punkcie stosuj polecenie limit. Przykładowo wyznaczmy granice wyrażenia (x^2-1)/(x-1) w punkcie x=1:

> limit((x^2-1)/(x-1), x=1);

2

Przykład granicy w nieskończoności:

> limit((1+1/n)^n, n=infinity);

exp(1)

diff , to plecenie, które oblicza pierwszą pochodną:

> g := x^3-x^2-x-1;

3 2
g := x - x - x - 1

> diff(g, x);

2
3 x - 2 x - 1


Tak, jak w przypadku innych poleceń, polecenie diff możemy zastosować do ostatnio obliczonego wyrażenia ponownie, da to nam drugą pochodną wyrażenia wyjściowego.

> diff(%, x);

6 x - 2


Można to zrobić prościej. Do obliczenia pochodnej wyższego rzędu po nazwie zmiennej według, której różniczkujemy wpisujemy znak dolara a następnie liczbę n określającą rząd pochodnej:
> diff(g, x$2);

6 x - 2

> diff(g, x$3);

6


Całkowanie, tj. obliczanie całki nieoznaczonej, wykonujemy poleceniem int:
> int(g, x);

4 3 2
1/4 x - 1/3 x - 1/2 x - x

int także oblicza wartość całki oznaczonej dla wskazanych granic całkowania.
> int(g, x=1 .. 3);

16/3

Można to samo zrobić inaczej:
> pole:=Int(g, x=1..3);

3
/
| 3 2
pole := | x - x - x - 1 dx
|
/
1

> evalf(pole, 5);

5.3333

Series rozwija wyrażenie w szereg potęgowy w otoczeniu wskazanego punktu:
> series(ln(x+1), x=1);

2 3 4
ln(2) + 1/2 (x - 1) - 1/8 (x - 1) + 1/24 (x - 1) - 1/64 (x - 1)

5 6
+ 1/160 (x - 1) + O((x - 1) )


Równania różniczkowe są rozwiązywane poleceniem dsolve . Funkcję diff zastosujmy do zdefiniowania równania różniczkowego:
> rnie := diff(y(x), x) = 2*x;

d
rnie := -- y(x) = 2 x
dx

> dsolve(rnie, y(x));

2
y(x) = x + _C1


Rozwiązanie szczegółowe spełniające warunki początkowe znajdziemy wpisując w poleceniu dsolve w nawiasach sześciennych równanie różniczkowe i warunek brzegowy.
> dsolve({rnie, y(0)=1}, y(x));

2
y(x) = x + 1




Wektory i macierze

Na początek, zrestartujmy System Maple aby wyczyśćić aktualny stan obliczeń..
> restart;
Zdefiniujmy dwa wektory v1 oraz v2:

> v1:=array(1..3, [a,b,c]);

v1 := [a, b, c]

> v2:=array(1..3, [1,2,3]);

v2 := [1, 2, 3]


Podstawowe operacje takie jak dodawanie, odejmowanie wektorów, czy mnożenie przez liczbę wykonujemy za pomocą operatorów: +, -, * (specjalne operacje takie jak iloczyn skalarny, czy wektorowy (tylko dla wektorów o 3 współrzędnych) dostępne są po deklaracji pakietu linalg). Aby wyświetlić współrzędne wektorów stosujemy operator evalm:
> v:=v1+v2;

v := v1 + v2

> evalm(v);

[a + 1, b + 2, c + 3]

> evalm(v1-v2);

[a - 1, b - 2, c - 3]

> evalm(5*v1);

[5 a, 5 b, 5 c]


Zdefiniujmy dwie macierze kwadratowe A i B stopnia 3.
> x:=2;

x := 2


> A:=array(1..3, 1..3, [[1, 1, x], [1, 2*x, -1], [x^3, -1, 0]]);

[1 1 2]
[ ]
A := [1 4 -1]
[ ]
[8 -1 0]

> B:=array(1..3, 1..3, [[a, 1, 1], [0, a, -1], [0, 0, a]]);

[a 1 1 ]
[ ]
B := [0 a -1]
[ ]
[0 0 a ]


Wykonajmy kilka operacji na tych macierzach. Postępujemy analogicznie jak w przypadku wektorów, które są jedynie specjalnym typem macierzy.
> evalm(A+B);

[a + 1 2 3 ]
[ ]
[ 1 4 + a -2]
[ ]
[ 8 -1 a ]

> evalm(A &* B);

[ a a + 1 2 a ]
[ ]
[ a 1 + 4 a -3 - a]
[ ]
[8 a 8 - a 9 ]

> evalm(B &* A);

[a + 9 a + 3 2 a - 1]
[ ]
[-8 + a 1 + 4 a -a ]
[ ]
[ 8 a -a 0 ]

> evalm((-1/2)*A^3);

[-29/2 -29/2 -33/2]
[ ]
[ 1/2 -71/2 12 ]
[ ]
[-147/2 -3 -5 ]

> evalm(A^(-1));

[1/75 2/75 3/25]
[ ]
[ 16 -1 ]
[8/75 -- -- ]
[ 75 25 ]
[ ]
[ 11 -3 -1 ]
[ -- -- -- ]
[ 25 25 25 ]


Inne sposoby definiowania wektorów i macierzy (polecenia: vector, matrix) i wiele różnorodnych operacji na nich, zawiera pakiet linalg. Aby wyświetlić listę procedur tego pakietu wykonaj polecenie
> ?linalg;



Pomoc

System Maple dysponuje niezwykle rozbudowaną pomocą, którą możesz uzyskać na kilka sposobów.

Wpisz w lini poleceń (bez kończenia średnikem !!!)
> ?newuser,usermenu
wtedy pojawi się okno `Maple New User's Tour Main Menu`. Jest to alternatywny do `on line help` sposób przywołania pomocy.
Jeżeli chcesz uzyskać pomoc na konkretny temat, np. na temat polecenia solve wpisz w lini poleceń:
> ?solve
W ogólności obowiązuje zasada:

?polecenie

gdzie słowo polecenie jest nazwą konkretnego polecenia Systemu Maple.
Ponadto, spróbuj zajrzeć do menu `Help`, gdzie dostępne są opcje `Topic Search` oraz `Full Text Search`. Po wybraniu dowolnej z nich zatwierdż wybór przyciskiem `OK` .





Copyright by Andrzej Sendlewski, 2002. This file may be used for educational, scientific, and non-commercial use only.


Wyszukiwarka

Podobne podstrony:
www haker pl haker start pl warsztaty1 temat=3(1)
www haker pl haker start pl warsztaty1 temat=30(1)
Programowanie w jezyku C Szybki start procss
START (38)
start (58)
Slow start up when using Norton Internet Security 2002 (3)
PHP6 i MySQL 5 Dynamiczne strony WWW Szybki start ph6ms5
start combat
start
start license
function ldap start tls
start (2)

więcej podobnych podstron