You are on page 1of 8

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

Elementy metod numerycznych zajcia 11


Mathematica - Wolfram Alpha

1. Labolatoria
Zajcia za 34 punktw. Prosz wysa krtkie zwize odpowiedzi na pytania oznaczone symbolem (x, p) i numerkiem (x), gdzie x-numer pytania,
p-liczba punktw. To znaczy dla pyta:
Jak masz na imi ?( 1, 0).
Gdzie jeste ?( 2, 0).
W mailu powinna si znale odpowiedzi
1.ukasz
2. Na Wydziale Matematyki i Informatyki.
Odpowiedzi na oznaczone pytania maj pastwo przesa w wyznaczonym
terminie jak uprzednio mailem na adres lukwit@amu.edu.pl o temacie
DMENzz-xx-yyyyyy (gdzie zz-numer zaj, xx to godzina zaj 11 lub 10 a
yyyyyy to numer indeksu). Odpowiedzi prosz umieszcza w treci meila, a
nie w zacznikach.
Za wysanie odpowiedzi do koca zaj bonus +3pkt.

2. Wstp
2.1. Mathematica
Mathematica jest programem sucym zarwno do oblicze symbolicznych jak i numerycznych opracowanym w 1998 roku przez Stephena Wolframa. Oferuje rwnie bardzo przydatny jzyk programowania umoliwiajcy przeprowadzanie bardziej zaawansowanych oblicze. Z punktu widzenia
metod numerycznych najwaniejsz cech jest zdolno do przeprowadzania
oblicze numerycznych, ktre cechuj si bardzo du dokadnoci.
2.2. Obsuga
Mathematice mona uruchomi w dwch trybach tekstowym lub graficznym. Tryb tekstowy wczamy poprzez uruchomienie programu math. W tym
trybie mamy do dyspozycji lini komend gdzie moemy wprowadza kolejne polecenia. Mimo ogranicze wywietlania w konsoli Mathematica bardzo
dobrze radzi sobie z wywietlaniem nawet bardzo skomplikowanych formu.
1

Na podstawie zada stworzonych przez Patryka ywic i Justyn Zawad

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

Praca w trybie graficznym jest znacznie atwiejsza szczeglnie dla pocztkujcego uytkownika. W systemie linux wpisujemy komend mathematica a
w pod windowsem wyszukujemy oporgramowanie Wolfram Mathematica 8.
Aby rozpocz prac naley stworzy nowy Notebook, gdzie bdziemy zapisywali wszystkie nasze obliczenia. W tym trybie Mathematica nie zwraca
wynikw oblicze od razu po ich wprowadzeniu.W celu dokonania oblicze
naley wybra opcj Evaluation-Evaluate Cells albo wcisn Shift-Enter.
2.3. WolframAlpha
Portal internetowy uruchomiony przez firm Wolfram Research w maju
2009 roku. Jego zadaniem jest odpowiadanie na pytania zadane prze uytkownika. Natura tych pyta moe by niemal dowolna, nas jednak najbardziej
interesuj te zwizane z obliczeniami numerycznymi. WolframAlpha oferuje niemal pen funkcjonalno Mathematicy. Ciekawostk jest to, e silnik
odpowiadajcy portalu jest napisany w Mathematice i ma okoo 5 milionw
linii kodu. Portal WolframAlpha dostpny jest pod adresem internetowym
www.wolframalpha.com Aby przeprowadzi obliczenia wprowadzamy formu i wciskamy Enter. Problem pojawia si przy bardzo zaawansowanych lub
dugich poleceniach, w ktrych wykorzystujemy polecenia kontrolujce prace
Mathematicy. Cz z nich nie jest rozpoznawana przez WolframAlpha.

3. Dziaanie
3.1. Wyraenia i zmienne
Zmienne w Mathematice tworzymy uywajc skadni
nazwa-zmiennej=warto
Aby wywietli warto zmiennej naley wpisa jej nazw nazwa-zmiennej.
Do zmiennych mona przypisywa nie tylko wartoci liczbowe, ale rwnie
cae wyraenia.
a = 5/7
b = 436^3
c= a*b
Moemy rwnie uywa wszystkich funkcji matematycznych, a przynajmniej tych wspczenie znanych. Wszystkie nazwy funkcji zaczynaj si z
wielkiej litery, a ich argument bd argumenty podajemy w nawiasach kwadratowych.
Sin[0]
E[1]
Log[2]
2

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

W celu otrzymania wartoci liczbowej a nie symbolicznej moemy wykorzysta polecenie N []. Powoduje ono wywietlenie wartoci liczbowej wyliczonej numerycznie a nie symbolicznie.
a = (5 + 15^12)/23^11 - 7*6/11*(2 + 22*10^(-1));
N[a]
W Mathematice moemy rwnie definiowa wasne funkcje:
f[x_] := x*Sin[x];
g[x_,y_] := x*Sin[y];
Zdefiniowalimy przed chwil dwie wasne funkcje f i g. Aby obliczy ich
warto postpujemy analogicznie jak z funkcjami wbudowanymi.
f[5]
g[6,45]
Mona rwnie definiowa funkcje okrelone rnymi wzorami w rnych
przedziaach. Zapis
f1[x_] := If[x > 0, x, -x];
definiuje funkcj warto bezwzgldna z x.
Zadanie 3.1.
Jaki jest wynik polecenia Element[P i, Reals] ?( 1,1)
Zadanie 3.2.
Co sprawdzilimy w poprzednim zadaniu ?( 2,1)
Zadanie 3.3.
Czy liczba 2105 1 jest pierwsza ? ( 3,1)
Czy liczba 2607 1 jest pierwsza ? ( 4,1)
Czy liczba 3207 1 jest pierwsza ? ( 5,1)
Czy liczba 32010 jest pierwsza ? ( 6,1)

Zadanie 3.4.
Jaka jest 10000 cyfra po przecinku rozwinicia liczby ?( 7,1)
3.2. Pochodne
Pierwsz pochodn funkcji jednej zmiennej liczymy uywajc polecenia
D[].
D[x^4 + Sin[x], x]
Po przecinku musimy poda po ktrej zmiennej pochodna jest liczona.
Pochodne wyszych rzdw oraz pochodne mieszane funkcji wielu zmiennych
liczy si rwnie atwo:
3

ukasz Witkowski - DMEN LI0


a=D[x^4
b=D[x^4
c=D[x^4
d=D[x^4

+
+
+
+

x
x
x
x

Sin[y],
Sin[y],
Sin[y],
Sin[y],

Elementy metod numerycznych - zajcia 11

x]
y]
{x, 3}]
{y}, {x}]

Gdzie np c to trzecia pochodna po x, a d pochodna po y a potem po x.


Mona rwnie rniczkowa wczeniej zdefiniowane funkcje.
f[x_] := a * x^7+Log[x];
D[f[x],x]
W ten sposb liczymy pochodne symbolicznie, aby obliczy warto pochodnej w danym punkcie naley uy polecenia /.zmienna > warto, .....
Przykadowo:
D[x^4 + x Sin[y], y] /. {y -> Pi/4, x -> 7}
Zadanie 3.5.
Wyznacz pochodn funkcji f (x) = sin(x)/x3 ( 8,1)?
Jeli interesuje nas warto numeryczna naley cao poda poleceniu
N[].
N[D[x^4 + x Sin[y], y] /. {y -> Pi/4, x -> 7}]
N[D[x^4 + x Sin[y], y] /. {y -> Pi/4, x -> 7}]
3.3. Caki
Liczenie caek nieoznaczonych jest rwnie atwe co pochodnych.
Integrate[x^2, x]
Caki oznaczone liczymy podajc po przecinku oprcz zmiennej, doln i
grn granic cakowania. Mona rwnie oblicza caki niewaciwe, przez
podanie wartoci Inf inity jako granicy.
Integrate[Sin[x], {x, 0, Pi}]
Integrate[E^-x, {x, 0, Infinity}]
Mona rwnie liczy caki wielokrotne, podajc po przecinku kolejne
zmienne i ich granice cakowania:
Integrate[x*y, {x, 0, 1}, {y, 0, 1}]
Niestety nie wszystkie caki daja si opisa funkcjami elementarnymi.W
takich sytuacjach naley uywa polecenia N Integrate [].
Integrate[E^(-x^2), {x, 0, 1}]
NIntegrate[E^(-x^2), {x, 0, 1}]
4

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

Zadanie 3.6.
R 2
Oblicz caki lnx5x dx ( 9,1)?
R
dx
2 ( 10,1)?
x
R ex10xx
dx ( 11,1)?
ex +5
3.4. Rwnania
Program Mathematica potrafi rwnie rozwizywa rwnania. Suy do
tego polecenie Solve [].
Solve[x^2 == 1, x]
Solve[Sin[x] == 0, x]
Solve[x^3+x^2==1,x]
Zwraca ono zbir rozwiza wyliczonych przez program. W przypadku
ostatniego rwnania wynik ma bardzo skomplikowan posta (jest to wynik
dokadny), aby otrzyma rozwizanie wyliczone numerycznie naley zastosowa polecenie N Solve [].
NSolve[x^3 + x^2 == 1, x]
Domylnie Mathematica uywa precyzji maszynowej do przechowywania
i obliczania wynikw w poleceniach typu N. Zachowanie te mona jednak
zmieni przez dodanie W orkingP recision > 50 jako jednego z argumentw
polecenia. Spowoduje to, e wynik zostanie wyliczony z dokadnoci do 50
cyfr po przecinku.
NSolve[x^3 + x^2 == 1, x, WorkingPrecision -> 50]
NIntegrate[E^(-x^2), {x, 0, 1}, WorkingPrecision -> 50]
Moliwe rwnie jest rozwizywanie ukadw rwna. W tym celu rwnie
uywamy polecenia Solve [] i N Solve []. W tym przypadku podajemy jednak
zbir rwna oraz zbir zmiennych jako argument Solve [].
Solve[{2*x + y == 1, 3*x - 4*y == 2}, {x, y}]
NSolve[{2*x + y == 1, 3*x - 4*y == 2}, {x, y}]
Zadanie 3.7.
Rozwi rwnanie: x2 5x + 6 = 0. Podaj polecenie ( 12,1)
i wynik ( 13,1)

Zadanie 3.8.
Rozwi ukad rwna: x + 5y = b, 2x y = a. Podaj polecenie ( 14,1)
i wynik ( 15,1)

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

3.5. Interpolacja
Oczywicie Mathematica umoliwia automatyczne przeprowadzenie interpolacji wielomianowej na podstawie podanych punktw i pochodnych. W
tym celu wykorzystujemy polecenie InterpolatingP olynomial [], ktrej jako
argument podajemy zbir wzw interpolacji. Zaczynajc od prostych przykadw, nastpujce polecenie tworzy wielomian interpolacyjny przechodzcy
przez 3 punkty (w(1) = 4; w(0) = 2; w(1) = 6):
InterpolatingPolynomial[{{-1, 4}, {0, 2}, {1, 6}}, x]
Moemy rwnie okreli wartoci dowolnych pochodnych w danym punkcie. Przykadowo nastpne polecenie definiuje wielomian interpolacyjny przechodzcy przez te same punkty ale speniajcy dodatkowo (w0 (1) = 3; w0 (0) =
3; w00 (0) = 1; w0 (1) = 0:
Expand[InterpolatingPolynomial[{{-1, 4, 3},
{0, 2, 3, -1}, {1, 6, 0}},x]]]
Zatem oglna skadnia tego polecenia jest nastpujca: podajemy zbir
wzw interpolacji poprzez podanie wartoci x a nastpnie kolejnych pochodnych (przyjmujc, e zerowa pochodna to warto funkcji w punkcie).
Do wywietlania wielomianw w bardziej czytelnej dla czowieka formie mona wykorzysta polecenie Expand []. Ma ono rwnie swj przeciwstawny
odpowiednik to jest Simplif y []. Pierwsze polecenie powoduje rozwinicie
danego wyraenia do postaci prostej(w sensie braku mnoe) sumy. Drugie
przeprowadza szereg operacji algebraicznych i nie tylko celem przedstawienia
wyniku w jak najprostszej formie. Przykadowo:
Expand[((x + 1) (x - 1) + 7 x)*(x + 7) (x - 5)]
Simplify[Sin[x]^2 + Cos[x]^2]
Zadanie 3.9.
Przedstaw podane liczby w postaci uamka zwykego: 0,989825 ( 16,1)
11,123425 ( 17,1)
6,757575 ( 18,1)
2,5125 ( 19,1)

Zadanie 3.10.
Podaj rozwinicie wyraenia (x + 2)15 ? ( 20,1)

Zadanie 3.11.
Upro wyraenie

sin2 (x)+cos2 (x)


?
tg(x)+ctg(x)

( 21,1)

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

Zadanie 3.12.
Do czego suy polecenie HornerF orm ? ( 22,1)

Zadanie 3.13.
Jaki jest wynik polecenia
HornerF orm[(15x5 + x4 x3 5x2 + 10x + 2)/(x4 + 6x3 + x2 3x + 1)]
( 23,1) ?

Zadanie 3.14.
Znajd wielomian interpolacyjny dla danych f (3) = 3, f (1) = 0, f (5) =
10, f (8) = 2, f (10) = 4 ( 24,1) ?

Zadanie 3.15.
Znajd wielomian interpolacyjny dla danych f (1) = 2, f 0 (1) = 3, f (2) =
6, f 0 (2) = 7, f 00 (2) = 8 ( 25,1) ?

3.6. Wykresy
Rysowanie wykresw w Mathematice jest bardzo proste. Suy do tego
polecenie P lot [] oraz P lot3D []. Jako pierwszy argument podajemy funkcj,
ktrej wykres chcemy narysowa. Jako drugi zmienn i jej zakres:
Plot[Sin[x], {x, 0, 6 Pi}]
Mona rwnie rysowa wykresy wielu naraz:
Plot[{Sin[x], Sin[2 x], Sin[3 x]}, {x, 0, 2 Pi}]
Wykresy funkcji dwch zmiennych rysujemy nastpujco:
Plot3D[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}]
Najpierw podajemy funkcje, a nastpnie dwie zmienne wraz z zakresami.
Tu rwnie mona nanosi wykresy wielu funkcji:
Plot3D[{x^2 + y^2, -x^2 - y^2}, {x, -2, 2}, {y, -2, 2}]
Zadanie 3.16.
Za pomoc jakiego polecenia narysujesz funkcj sin(x) w przedziale [0, 8] ?
( 26,1)

Zadanie 3.17.
Za pomoc jakiego polecenia narysujesz funkcj 2cos(x)+x w przedziale [0, 20]
7

ukasz Witkowski - DMEN LI0

Elementy metod numerycznych - zajcia 11

i wypenisz kolorem obszar pomidzy funkcj a osi OX? ? ( 27,1)

Zadanie 3.18.
Co jest wynikiem polecenia ?
ParametricPlot3D[{(3+Cos[v]) Cos[u],(3+Cos[v]) Sin[u],Sin[v]},
{u,0,2 Pi},{v,0,2 Pi},PlotStyle->Specularity[White,50],Mesh->None]
( 28,1)

3.7. Wolfram alpha


Zadanie 3.19.
Wypisz wszystkie permutacje zbioru {Ala, ma, kota} (polecenie i wynik). (
29,1)

Zadanie 3.20.
Jaki jest dokadny wiek Baracka Obamy co do dnia? ( 30,1)

Zadanie 3.21.
Na jakiej pozycji gra Gary Kubiak (football player)? ( 31,1)

Zadanie 3.22.
Czym jest UAM dla portalu wolfram alpha? ( 32,1)

Zadanie 3.23.
Ile w kamieniach way Christiano Ronaldo? ( 33,1)

Zadanie 3.24.
Jaka jest odlego w milach pomidzy Poznanie a Aveiro (Portugalia)? (
34,1)

3.8. Bonus
Napisz program w Java lub .net, ktry dla zadanych danych (wzw i
wartoci funkcji w wzach) bdzie rysowa wielomian interpolacyjny (eksport
do pliku lub rysunek w aplikacji). ( XXX,5)

You might also like