Ł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 procssSTART (38)start (58)Slow start up when using Norton Internet Security 2002 (3)PHP6 i MySQL 5 Dynamiczne strony WWW Szybki start ph6ms5start combatstartstart licensefunction ldap start tlsstart (2)więcej podobnych podstron