z10

download z10

of 8

description

matma

Transcript of z10

  • ukasz Witkowski - DMEN LI0 Elementy metod numerycznych - zajcia 11

    Elementy metod numerycznych -zajcia 11

    Mathematica - Wolfram Alpha 1

    1. Labolatoria

    Zajcia za 34 punktw. Prosz wysa krtkie zwize odpowiedzi na py-tania 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 odpowiedzi1.ukasz2. Na Wydziale Matematyki i Informatyki.

    Odpowiedzi na oznaczone pytania maj pastwo przesa w wyznaczonymterminie jak uprzednio mailem na adres [email protected] o temacieDMENzz-xx-yyyyyy (gdzie zz-numer zaj, xx to godzina zaj 11 lub 10 ayyyyyy to numer indeksu). Odpowiedzi prosz umieszcza w treci meila, anie w zacznikach.

    Za wysanie odpowiedzi do koca zaj bonus +3pkt.

    2. Wstp

    2.1. Mathematica

    Mathematica jest programem sucym zarwno do oblicze symbolicz-nych jak i numerycznych opracowanym w 1998 roku przez Stephena Wol-frama. Oferuje rwnie bardzo przydatny jzyk programowania umoliwia-jcy przeprowadzanie bardziej zaawansowanych oblicze. Z punktu widzeniametod numerycznych najwaniejsz cech jest zdolno do przeprowadzaniaoblicze numerycznych, ktre cechuj si bardzo du dokadnoci.

    2.2. Obsuga

    Mathematice mona uruchomi w dwch trybach tekstowym lub graficz-nym. Tryb tekstowy wczamy poprzez uruchomienie programu math. W tymtrybie mamy do dyspozycji lini komend gdzie moemy wprowadza kolej-ne polecenia. Mimo ogranicze wywietlania w konsoli Mathematica bardzodobrze radzi sobie z wywietlaniem nawet bardzo skomplikowanych formu.

    1 Na podstawie zada stworzonych przez Patryka ywic i Justyn Zawad

    1

  • ukasz Witkowski - DMEN LI0 Elementy metod numerycznych - zajcia 11

    Praca w trybie graficznym jest znacznie atwiejsza szczeglnie dla pocztku-jcego uytkownika. W systemie linux wpisujemy komend mathematica aw pod windowsem wyszukujemy oporgramowanie Wolfram Mathematica 8.Aby rozpocz prac naley stworzy nowy Notebook, gdzie bdziemy za-pisywali wszystkie nasze obliczenia. W tym trybie Mathematica nie zwracawynikw oblicze od razu po ich wprowadzeniu.W celu dokonania obliczenaley wybra opcj Evaluation-Evaluate Cells albo wcisn Shift-Enter.

    2.3. WolframAlpha

    Portal internetowy uruchomiony przez firm Wolfram Research w maju2009 roku. Jego zadaniem jest odpowiadanie na pytania zadane prze uyt-kownika. Natura tych pyta moe by niemal dowolna, nas jednak najbardziejinteresuj te zwizane z obliczeniami numerycznymi. WolframAlpha oferu-je niemal pen funkcjonalno Mathematicy. Ciekawostk jest to, e silnikodpowiadajcy portalu jest napisany w Mathematice i ma okoo 5 milionwlinii kodu. Portal WolframAlpha dostpny jest pod adresem internetowymwww.wolframalpha.com Aby przeprowadzi obliczenia wprowadzamy formu- i wciskamy Enter. Problem pojawia si przy bardzo zaawansowanych lubdugich poleceniach, w ktrych wykorzystujemy polecenia kontrolujce praceMathematicy. 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 rwniecae wyraenia.

    a = 5/7b = 436^3c= a*b

    Moemy rwnie uywa wszystkich funkcji matematycznych, a przynaj-mniej tych wspczenie znanych. Wszystkie nazwy funkcji zaczynaj si zwielkiej litery, a ich argument bd argumenty podajemy w nawiasach kwa-dratowych.

    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 wyko-rzysta polecenie N []. Powoduje ono wywietlenie wartoci liczbowej wyli-czonej 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 ichwarto postpujemy analogicznie jak z funkcjami wbudowanymi.

    f[5]g[6,45]

    Mona rwnie definiowa funkcje okrelone rnymi wzorami w rnychprzedziaach. Zapis

    f1[x_] := If[x > 0, x, -x];

    definiuje funkcj warto bezwzgldna z x.

    Zadanie 3.1.Jaki jest wynik polecenia Element[Pi,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 poleceniaD[].

    D[x^4 + Sin[x], x]

    Po przecinku musimy poda po ktrej zmiennej pochodna jest liczona.Pochodne wyszych rzdw oraz pochodne mieszane funkcji wielu zmiennychliczy si rwnie atwo:

    3

  • ukasz Witkowski - DMEN LI0 Elementy metod numerycznych - zajcia 11

    a=D[x^4 + x Sin[y], x]b=D[x^4 + x Sin[y], y]c=D[x^4 + x Sin[y], {x, 3}]d=D[x^4 + x Sin[y], {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 po-chodnej 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 poleceniuN[].

    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 igrn granic cakowania. Mona rwnie oblicza caki niewaciwe, przezpodanie wartoci Infinity jako granicy.

    Integrate[Sin[x], {x, 0, Pi}]Integrate[E^-x, {x, 0, Infinity}]

    Mona rwnie liczy caki wielokrotne, podajc po przecinku kolejnezmienne i ich granice cakowania:

    Integrate[x*y, {x, 0, 1}, {y, 0, 1}]

    Niestety nie wszystkie caki daja si opisa funkcjami elementarnymi.Wtakich sytuacjach naley uywa polecenia NIntegrate [].

    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.Oblicz caki

    ln2 xx5dx ( 9,1)? dx

    x10xx2 ( 10,1)? ex

    ex+5dx ( 11,1)?

    3.4. Rwnania

    Program Mathematica potrafi rwnie rozwizywa rwnania. Suy dotego 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 przypadkuostatniego rwnania wynik ma bardzo skomplikowan posta (jest to wynikdokadny), aby otrzyma rozwizanie wyliczone numerycznie naley zastoso-wa polecenie NSolve [].

    NSolve[x^3 + x^2 == 1, x]

    Domylnie Mathematica uywa precyzji maszynowej do przechowywaniai obliczania wynikw w poleceniach typu N. Zachowanie te mona jednakzmieni przez dodanie WorkingPrecision > 50 jako jednego z argumentwpolecenia. Spowoduje to, e wynik zostanie wyliczony z dokadnoci do 50cyfr 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 rwnieuywamy polecenia Solve [] i NSolve []. W tym przypadku podajemy jednakzbir 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)

    5

  • ukasz Witkowski - DMEN LI0 Elementy metod numerycznych - zajcia 11

    3.5. Interpolacja

    Oczywicie Mathematica umoliwia automatyczne przeprowadzenie in-terpolacji wielomianowej na podstawie podanych punktw i pochodnych. Wtym celu wykorzystujemy polecenie InterpolatingPolynomial [], ktrej jakoargument podajemy zbir wzw interpolacji. Zaczynajc od prostych przy-kadw, nastpujce polecenie tworzy wielomian interpolacyjny przechodzcyprzez 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 punk-cie. Przykadowo nastpne polecenie definiuje wielomian interpolacyjny prze-chodzcy przez te same punkty ale speniajcy dodatkowo (w(1) = 3;w(0) =3;w(0) = 1;w(1) = 0:

    Expand[InterpolatingPolynomial[{{-1, 4, 3},{0, 2, 3, -1}, {1, 6, 0}},x]]]

    Zatem oglna skadnia tego polecenia jest nastpujca: podajemy zbirwzw interpolacji poprzez podanie wartoci x a nastpnie kolejnych po-chodnych (przyjmujc, e zerowa pochodna to warto funkcji w punkcie).Do wywietlania wielomianw w bardziej czytelnej dla czowieka formie mo-na wykorzysta polecenie Expand []. Ma ono rwnie swj przeciwstawnyodpowiednik to jest Simplify []. Pierwsze polecenie powoduje rozwiniciedanego wyraenia do postaci prostej(w sensie braku mnoe) sumy. Drugieprzeprowadza szereg operacji algebraicznych i nie tylko celem przedstawieniawyniku 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 sin

    2(x)+cos2(x)tg(x)+ctg(x) ? ( 21,1)

    6

  • ukasz Witkowski - DMEN LI0 Elementy metod numerycznych - zajcia 11

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

    Zadanie 3.13.Jaki jest wynik polecenia

    HornerForm[(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 (1) = 3, f(2) =6, f (2) = 7, f (2) = 8 ( 25,1) ?

    3.6. Wykresy

    Rysowanie wykresw w Mathematice jest bardzo proste. Suy do tegopolecenie Plot [] oraz Plot3D []. 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 iwartoci funkcji w wzach) bdzie rysowa wielomian interpolacyjny (eksportdo pliku lub rysunek w aplikacji). (XXX,5)

    8

    LabolatoriaWstpMathematicaObsugaWolframAlpha

    DziaanieWyraenia i zmiennePochodneCakiRwnaniaInterpolacjaWykresyWolfram alphaBonus