Witam Państwa na wykładzie
dotyczącym narzędzi
obliczeniowych fizyki !Nazywam się Jacek Golak
Pracuję w Zespole Zakładów Fizyki Jądrowej Instytutu Fizyki UJ
i jestem kierownikiem Zakładu Teorii Układów Jądrowych.
Moja dziedzina to zdecydowanie teoretyczna fizyka jądrowa
Numer pokoju: B2-32
e-mail: [email protected]
strona WWW: http://users.uj.edu.pl/~golak/zestawyNOF.html
Wśród wielu codziennie używanych przez fizyków programów i środowisk
programistycznych Mathematica® firmy Wolfram staje się coraz bardziej
popularna.
Czym jest Mathematica® ?Strona producenta - firmy Wolfram: https://www.wolfram.com/mathematica/
Przedstawiciel firmy Wolfram w Polsce - firma Gambit: http://www.mathematica.pl
2 NOF_1.nb
"Program Mathematica firmy Wolfram Research, Inc. to wszechstronne środowisko
realizacji obliczeń matematycznych, składu dokumentu technicznego i tworzenia
aplikacji.
Mathematica to między innymi obliczenia symboliczne, szybkie obliczenia numeryczne,
dowolna dokładność obliczeń, wygodny interfejs użytkownika, wieloplatformowość,
możliwość równoległych obliczeń, bogate możliwości wizualizacji 2D i 3D oraz język
programowania Wolfram Language"
NOF_1.nb 3
Jak zdobyć licencjęhttp://www.fais.uj.edu.pl/dla-studentow/studia-z-mathematica
Wybrana literaturaLITERATURA DO WYKŁADU I ĆWICZEŃ
(0) Ponieważ wykład będzie w dużej mierze oparty o program Mathematica,
więc polecam wykłady prowadzone wcześniej na naszym wydziale
Na stronie
http://www.fais.uj.edu.pl/dla-studentow/studia-z-mathematica
mają się znaleźć odnośniki do wykładów i ćwiczeń prowadzonych przy pomocy
programu Mathematica na naszym Wydziale
(1) Ponadto wskazany jest dowolny podręcznik wprowadzający w tajniki tego programu.
Na przykład sam podręcznik tego produktu:
(a) Stephen Wolfram,
The Mathematica Book, Wolfram Media, wiele wydań
(b) zestaw poradników
http://www.wolfram.com/learningcenter/tutorialcollection/
(c) bardzo wiele materiału w internecie, skrypty do wykładów, porady
dla początkujących itp.
(2) Klasyczny podręcznik do programowania (ogólnie rozumianego):
Donald E. Knuth,
The art of computer programming,
Addison-Wesley, bardzo wiele wydań
(3) Jak programować w (ANSI) C pokazują m.in. trzy klasyczne pozycje
(a) Brian W. Kernighan, Dennis M. Ritchie,
Język ANSI C. Programowanie (tłumaczenie z angielskiego),
Helion, 2010, wydanie II
4 NOF_1.nb
(b) K. N. King,
C Programming (A Modern Approach), 2nd Edition,
W. N. Norton, 2008
(c) S. Oualline, Jezyk C. Programowanie (tłumaczenie z angielskiego),
Helion, 2003
(4) Jak to się robi w nowszym Fortranie można nauczyć się,
korzystając ze skryptu umieszczonego na stronie instytutowej:
Krzysztof Rościszewski i Romuald Wit
Nauka Fortranu F90/95 przez przykłady dla początkujących,
Skrypt internetowy (wersja z 31 III 2008)
http://www2.if.uj.edu.pl/pl/edukacja/tutoriale/f95skrypt.pdf
(5) Poleciłbym, zwłaszcza mając na uwadze tzw. "projekty zaliczeniowe",
kilka innych pozycji, które pokazują, jak wykorzystać komputer w fizyce:
(a) D. M. Bourg,
Fizyka dla programistów gier,
Helion, 2003.
(b) M. Motyka,
Symulacje komputerowe w fizyce,
Helion, 2002.
(c) Tao Pang,
Metody obliczeniowe w fizyce: fizyka i komputery,
Wydawnictwo Naukowe PWN, Warszawa, 2001.
(d) W. Kinzel, G. Reents,
Physics by Computer: Programming Physical Problems
Using Mathematica and C,
Springer-Verlag, New York, 1997.
(e) G. Baumann, Mathematica in Theoretical Physics:
Selected Examples from Classical Mechanics to Fractals,
TELOS, The Electronic Library of Science, Springer-Verlag, New York, 1992.
(f) A. Romano, R. Lancellotta, A. Marasco, Continuum Mechanics
using Mathematica, Birkhaeuser, Boston, 2006.
(g) Stephen Lynch,
Dynamical Systems with Applications using Mathematica,
Birkhaeuser, Boston, 2007.
(h) Nino Boccara, Essentials of Mathematica with Applications
NOF_1.nb 5
to Mathematics and Physics, Springer, 2007.
(i) Patrick T. Tam, A Physicist's Guide to Mathematica,
Academic Press, 1997.
(j) M.L. Abell, J.P. Braselton, Differential Equations with Mathematica,
Elsevier, 2004.
(6) Wspaniałym źródłem przykładów, jest
"WOLFRAM DEMONSTRATIONS PROJECT", gdzie pokazane są zastosowania środowiska Mathe-
matica w bardzo wielu dziedzinach wiedzy. Dla nas najważniejsze są te dotyczące fizyki.
http://demonstrations.wolfram.com/
Kalkulator2 - 4
-2
2 + 2 (* wyrazenie jest liczone po nacisnieciu Shift+Enter *)
4
1 17 + 5 37
122
629
1 9 - 2 * 5 -9 + 3 76^4
-2 969 233 664
1 935 668 386089
sina
sina
a
a
co⋯
Cossinus
Sin2 + 2 - 17 3 + 12 * 4 * 9^1 3 2 -pierwiastek kwadratowy
Sqrt[2]
CosSin5
3-48 × 32/3
2 - 2
(* tu pojawi sie potegowanie ^ oraz znane funkcje matematyczne *)
6 NOF_1.nb
⋯
Nco⋯
Cossinus
Sin2 + 2 - 17 3 + 12 * 4 * 9^1 3 2 -pierwiastek kwadratowy
Sqrt[2], 100
0.72262359173663847729313882858505249802721954622982533331933715251696828732824550892
81418517161379825
2^34 234
8 589 934 592
117
przybliżenie numeryczne
N[%]
7.34182 × 107
2^45 789
35 184 372 088832
789
przybliżenie numeryczne
N35 184 372 088832
789
4.45936 × 1010
(* Mamy do dyspozycji stale matematyczne *)
pi
Pi (* liczba pi *)
π
⋯
N[pi
Pi, 200] (* jesli chcemy poznac wartosc
numeryczna pi z niemal dowolna dokladnoscia *)
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862
803482534211706798214808651328230664709384460955058223172535940812848111745028410270
19385211055596446229489549303820
liczba Eulera
E (* podstawa logarytmu naturalnego *)
ⅇ
⋯
N[liczba Eulera
E, 200] (* wartosc numeryczna e z bardzo duza dokladnoscia *)
2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457
138217852516642742746639193200305992181741359662904357290033429526059563073813232862
79434907632338298807531952510190
100! (* silnia *)
93 326 215 443944 152 681 699 238856 266 700 490 715 968264 381 621 468 592 963895 217 599 993 229
915 608 941463 976 156 518 286 253697 920 827 223 758 251185 210 916 864 000 000000 000 000 000
000 000
NOF_1.nb 7
silnia
Factorial[100] (* to samo w innym zapisie *)
93 326 215 443944 152 681 699 238856 266 700 490 715 968264 381 621 468 592 963895 217 599 993 229
915 608 941463 976 156 518 286 253697 920 827 223 758 251185 210 916 864 000 000000 000 000 000
000 000
(* Mathematica podaje DOKLADNY WYNIK, jesli to tylko mozliwe *)
si⋯
Sinpi
Pi 6
1
2
co⋯
Cospi
Pi 4
1
2
tangens
Tan[14] (* tangens *)
Tan[14]
przybliżenie numeryczne
N[%]
7.24461
a =
pierwiastek kwad⋯
Sqrt1 200 +
pierwiastek kwadratowy
Sqrt3 101^5 si⋯
Sinpi
Pi 8
3
101+
1
10 2
5
Cscπ
8
(* przypisalismy zmiennej a pewną wartość
i możemy to wykorzystać w dalszych obliczeniach *)
b = 13 * a - 234 * a^6
133
101+
1
10 2
5
Cscπ
8 - 234
3
101+
1
10 2
30
Cscπ
86
(* Ile to wlasciwie wynosi ? *)
przybliżenie numeryczne
N[b]
0.0288162
przybliżenie numeryczne
N[b, 40] (* Mathematica moze podac bardzo dokładna wartosc numeryczna ! *)
0.02881621841029829137943395805937521052223
Pamiętajmy: mała kropka, duża różnica!
8 NOF_1.nb
sinus
Sin[2]
Sin[2]
sinus
Sin[2.]
0.909297
sinus
Sin[2, 5] (* kolor czerwony oznacza nieprawidłową komendę ! *)
Sin: Sin called with 2 arguments; 1 argument is expected.
Sin[2, 5]
Podstawowa zasada: nazwy komend programu Mathematica (N, Plot, ...) oraz wbu-
dowanych funkcji (sinus, cosinus, tangens, cotangens, ...) zaczynają się od dużych
liter; ich argument (lub argumenty) są zawarte w nawiasach KWADRATOWYCH !
Mathematica zna różne funkcje specjalne i pozwala nimi swobodnie operować.
BARDZO WAZNE DLA FIZYKA !
funkcja Gamma
Gamma[5]
24
funkcja Gamma
Gamma7 3
Gamma7
3
⋯
Nfunkcja Gamma
Gamma7
3
1.19064
uprość pełniej
FullSimplifyfunkcja Gamma
Gamma[n] ⩵ n - 1!,należy do
Element[n,zbiór liczb całkowitych
Integers] && n > 0
True
funkcja J Bessela
BesselJ[1, 3]
BesselJ[1, 3]
⋯
N[funkcja J Bessela
BesselJ[1, 3]]
0.339059
funkcja P Legendre'a
LegendreP[12, x]
1
1024231 - 18 018 x2 + 225225 x4 - 1 021020 x6 + 2 078505 x8 - 1 939938 x10 + 676039 x12
NOF_1.nb 9
funkcja P Legendre'a
LegendreP[12, 8, x]
654 729 075
8-1 + x2
41 - 42 x2 + 161 x4
harmoniczna funkcja sferyczna Y
SphericalHarmonicY[12, -10, theta, phi]
1
20485 ⅇ-10 ⅈ phi
88 179
π-1 + 23 Cos[theta]2 Sin[theta]10
Uwaga na nazwy funkcji, które składają się z kilku słów (arcus sinus, arcus tangens,
arcus tangens hiperboliczny, ...)
arcus sinus
ArcSin1 2
π
6
?? Arc*
System`
ArcCos ArcCoth ArcCurvature ArcSech ArcSinh
ArcCosh ArcCsc ArcLength ArcSin ArcTan
ArcCot ArcCsch ArcSec
ArcSinDistributio-
n ArcTanh
arcus tangens
ArcTan[1]
π
4
arcus tangens hiperboliczny
ArcTanh99 100
ArcTanh99
100
Dlatego najlepiej jest używać nazw zmiennych i nazw funkcji pisanych małymi literami.
Nie radzę próbować instrukcji typu:
C=123.7;
D=13*Pi;
E=-1;
I=5;
10 NOF_1.nb
Rysowanie wykresów 2Dwyk⋯
Plot[sinus
Sin[x] +
cosinus
Cos[4 * x], {x, 0, 2 *
pi
Pi}]
1 2 3 4 5 6
-1
1
2
wykres
Plot1 1 - x^2, {x, -3, 3}
-3 -2 -1 1 2 3
-4
-2
2
4
wykres
Plot[{x^3,cosinus
Cos[x^4]}, {x, -2, 2}]
-2 -1 1 2
-4
-2
2
4
NOF_1.nb 11
wykres
Plotx 100,funkcja J Bessela
BesselJ[10, x], {x, 5, 25}
10 15 20 25
-0.2
-0.1
0.1
0.2
0.3
wykres trójwymiarowy
Plot3D[x^2 - y^2, {x, 0, 2}, {y, -1, 4}]
Listy(* uporzadkwany zbior elementow, w zasadzie dowolnych *)
{1, 2, 3, x,sinus
Sin[p], {y, z}, "napis"}
{1, 2, 3, x, Sin[p], {y, z}, napis}
(* zmienna ma wartosc, ktora jest lista *)
dziwnalista = {1, x,sinus
Sin[beta], {p, q}, {11, 12, z}}
{1, x, Sin[beta], {p, q}, {11, 12, z}}
12 NOF_1.nb
dziwnalista[[1]] (* pierwszy element listy; koniecznie podwojne nawiasy ! *)
1
(* to samo inaczej *)
część
Part[dziwnalista, 1]
1
dziwnalista[[2]]
x
dziwnalista[[4]] (* ten element sam jest lista ... *)
{p, q}
dziwnalista[[4]][[1]] (* ... i mozna zapytac, jaki jest jego pierwszy element *)
p
(* lista, ktorej elementami sa wykresy *)
{
wyk⋯
Plot[pierwiastek kwadratowy
Sqrt[x], {x, 0, 2}],wyk⋯
Plot[sinus
Sin[5 * x], {x, 0,pi
Pi}],wykres
Plot[x^2, {x, -2, 2}]}
0.5 1.0 1.5 2.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
,0.5 1.0 1.5 2.0 2.5 3.0
-1.0
-0.5
0.5
1.0
,
-2 -1 1 2
1
2
3
4
Niektóre komendy z definicji dają listy
tabela
Table[n^3, {n, 1, 7}]
{1, 8, 27, 64, 125, 216, 343}
(* teraz dostaniemy liste rysunkow *)
tabela
Table[wykres
Plot[x^n, {x, -2, 2}], {n, 3, 5, 1}]
-2 -1 1 2
-5
5
,
-2 -1 1 2
5
10
15
,-2 -1 1 2
-15
-10
-5
5
10
15
(* prosta lista kolejnych liczb naturalnych od 1 do 10 *)
zakres
Range[10]
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
(* lista liczb naturalnych od 2 do 10 *)
NOF_1.nb 13
zakres
Range[2, 10]
{2, 3, 4, 5, 6, 7, 8, 9, 10}
(* lista liczb naturalnych od 2 do 10, ale z krokiem 5 *)
zakres
Range[2, 10, 5]
{2, 7}
? Range
Range[imax] generates the list {1, 2,…, imax}.Range[imin, imax] generates the list {imin,…, imax}.
Range[imin, imax, di] uses step di.
?? Range
Range[imax] generates the list {1, 2,…, imax}.Range[imin, imax] generates the list {imin,…, imax}.
Range[imin, imax, di] uses step di.
Attributes[Range] = Listable, Protected
zakres znaków
CharacterRange["A", "Z"]
{A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z}
zakres znaków
CharacterRange["α", "ω"]
{α, β, γ, δ, ε, ζ, η, θ, ι, κ, λ, μ, ν, ξ, ο, π, ρ, ς, σ, τ, υ, φ, χ, ψ, ω}
Z listami można robić różne rzeczy.
Na razie tylko kilka prostych przykładów dla list z liczbami :
l1 = {2, 4, 1, 17, -3, 8, 95, -34, 0}
{2, 4, 1, 17, -3, 8, 95, -34, 0}
l2 =
sortuj
Sort[l1]
{-34, -3, 0, 1, 2, 4, 8, 17, 95}
l3 =
odwróć kolejność
Reverse[l2]
{95, 17, 8, 4, 2, 1, 0, -3, -34}
długość
Length[l3]
9
oblicz sumę
Total[l1]
90
14 NOF_1.nb
średnia arytmetyczna
Mean[l1]
10
maksimum
Max[l1]
95
minimum
Min[l1]
-34
(* Bardzo wazne: mozna zadzialac funkcja na CALA LISTE ! *)
l1^2
{4, 16, 1, 289, 9, 64, 9025, 1156, 0}
sinus
Sin[l1]
{Sin[2], Sin[4], Sin[1], Sin[17], -Sin[3], Sin[8], Sin[95], -Sin[34], 0}
⋯
N[cosinus
Cos[l1]]
{-0.416147, -0.653644, 0.540302, -0.275163, -0.989992, -0.1455, 0.730174, -0.84857, 1.}
(* Rozwiazania rownan wystepuja w postaci list !
Odpowiednia skladnia pozwala na wyluskanie wyniku *)
sol =
rozwiąż równanie
Solve[x^2 ⩵ 4, x]
{{x → -2}, {x → 2}}
sol[[1]]
{x → -2}
sol[[2]]
{x → 2}
pełna forma
FullForm[sol]
List[List[Rule[x, -2]], List[Rule[x, 2]]]
(* Jak wydostac wartosc -2, by uzyc ja na przyklad w dalszych rachunkach ? *)
sol[[1]][[1]][[2]]
-2
(* tego mozna juz uzywac jak zwyklej artosci liczbowej i przypisac ja zmiennej *)
x11 = sol[[1]][[1]][[2]]
-2
NOF_1.nb 15
x12 = sol[[2]][[1]][[2]]
2
(* Inny sposob wykorzystuje ogolny zapis PODSTAWIENIA *)
x21 = x /. sol[[1]]
-2
x22 = x /. sol[[2]]
2
=, czy ==, czy może === ?q = 90; (* jeden znak "=" przypisanie zmiennej wartosci *)
1 2 ⩵
si⋯
Sinpi
Pi 6 (* dwa znaki "=" sprawdzenie rownosci liczb lub wyrazen *)
True
rozwiąż równanie
Solve[x^2 + 3 * x + 6 ⩵ 0, x] (* dwa znaki "=" konieczne przy rownaniach *)
x →1
2-3 - ⅈ 15 , x →
1
2-3 + ⅈ 15
x =
tangens
Tan[c];
y =
sinus
Sin[c]
cosinus
Cos[c];
x === y (* sprawdzenie identycznosci wyrazen *)
True
Uzyskiwanie pomocyWiele komend posiada opcje, niekiedy bardzo wiele opcji
16 NOF_1.nb
wyk⋯
Plot[pierwiastek kwadratowy
Sqrt[x], {x, 0, 3},oznaczenia osi
AxesLabel → {"x", "y"},styl grafiki
PlotStyle →
zielony
Green]
0.5 1.0 1.5 2.0 2.5 3.0x
0.5
1.0
1.5
y
opcje
Options[wykres
Plot]
AlignmentPoint → Center, AspectRatio →1
GoldenRatio, Axes → True,
AxesLabel → None, AxesOrigin → Automatic, AxesStyle → {}, Background → None,
BaselinePosition → Automatic, BaseStyle → {}, ClippingStyle → None,
ColorFunction → Automatic, ColorFunctionScaling → True, ColorOutput → Automatic,
ContentSelectable → Automatic, CoordinatesToolOptions → Automatic,
DisplayFunction ⧴ $DisplayFunction, Epilog → {}, Evaluated → Automatic,
EvaluationMonitor → None, Exclusions → Automatic, ExclusionsStyle → None,
Filling → None, FillingStyle → Automatic, FormatType ⧴ TraditionalForm,
Frame → False, FrameLabel → None, FrameStyle → {}, FrameTicks → Automatic,
FrameTicksStyle → {}, GridLines → None, GridLinesStyle → {}, ImageMargins → 0.,
ImagePadding → All, ImageSize → Automatic, ImageSizeRaw → Automatic, LabelStyle → {},
MaxRecursion → Automatic, Mesh → None, MeshFunctions → {#1 &}, MeshShading → None,
MeshStyle → Automatic, Method → Automatic, PerformanceGoal ⧴ $PerformanceGoal,
PlotLabel → None, PlotLabels → None, PlotLegends → None, PlotPoints → Automatic,
PlotRange → {Full, Automatic}, PlotRangeClipping → True, PlotRangePadding → Automatic,
PlotRegion → Automatic, PlotStyle → Automatic, PlotTheme ⧴ $PlotTheme,
PreserveImageOptions → Automatic, Prolog → {}, RegionFunction → True &,
RotateLabel → True, ScalingFunctions → None, TargetUnits → Automatic,
Ticks → Automatic, TicksStyle → {}, WorkingPrecision → MachinePrecision
? N
N[expr] gives the numerical value of expr.
N[expr, n] attempts to give a result with n-digit precision.
(* krotka informacja *)
? Plot
Plot[ f , {x, xmin, xmax}] generates a plot of f as a function of x from xmin to xmax.Plot[{ f1, f2,…}, {x, xmin, xmax}] plots several functions fi.Plot[{…, w[ fi],…},…] plots fi with features defined by the symbolic wrapper w.
Plot[…, {x} ∈ reg] takes the variable x to be in the geometric region reg.
(* bardziej rozbudowana *)
NOF_1.nb 17
?? Plot
Plot[ f , {x, xmin, xmax}] generates a plot of f as a function of x from xmin to xmax.Plot[{ f1, f2,…}, {x, xmin, xmax}] plots several functions fi.Plot[{…, w[ fi],…},…] plots fi with features defined by the symbolic wrapper w.
Plot[…, {x} ∈ reg] takes the variable x to be in the geometric region reg.
Attributes[Plot] = {HoldAll, Protected, ReadProtected}
Options[Plot] = AlignmentPoint → Center, AspectRatio → 1
GoldenRatio, Axes → True, AxesLabel → None,
AxesOrigin → Automatic, AxesStyle → {}, Background → None, BaselinePosition → Automatic,
BaseStyle → {}, ClippingStyle → None, ColorFunction → Automatic, ColorFunctionScaling → True,
ColorOutput → Automatic, ContentSelectable → Automatic, CoordinatesToolOptions → Automatic,
DisplayFunction ⧴ $DisplayFunction, Epilog → {}, Evaluated → Automatic,
EvaluationMonitor → None, Exclusions → Automatic, ExclusionsStyle → None, Filling → None,
FillingStyle → Automatic, FormatType ⧴ TraditionalForm, Frame → False, FrameLabel → None,
FrameStyle → {}, FrameTicks → Automatic, FrameTicksStyle → {}, GridLines → None,
GridLinesStyle → {}, ImageMargins → 0., ImagePadding → All, ImageSize → Automatic,
ImageSizeRaw → Automatic, LabelStyle → {}, MaxRecursion → Automatic, Mesh → None,
MeshFunctions → {#1 &}, MeshShading → None, MeshStyle → Automatic, Method → Automatic,
PerformanceGoal ⧴ $PerformanceGoal, PlotLabel → None, PlotLabels → None, PlotLegends → None,
PlotPoints → Automatic, PlotRange → Full, Automatic, PlotRangeClipping → True,
PlotRangePadding → Automatic, PlotRegion → Automatic, PlotStyle → Automatic,
PlotTheme ⧴ $PlotTheme, PreserveImageOptions → Automatic, Prolog → {},
RegionFunction → (True &), RotateLabel → True, ScalingFunctions → None, TargetUnits → Automatic,
Ticks → Automatic, TicksStyle → {}, WorkingPrecision → MachinePrecision
(* pomoc na temat wszystkich funkcji lub polecen zaczynajacych sie odwykres
Plot *)
? Plot*
System`
Plot PlotLabel PlotPoints PlotRegion
Plot3D PlotLabels PlotRange PlotStyle
Plot3Matrix PlotLayout PlotRangeClipping PlotTheme
PlotDivision PlotLegends
PlotRangeClipPlanes-
Style
PlotJoined PlotMarkers PlotRangePadding
Nasze własne funkcjePuszczamy wodze fantazji i definiujemy NOWĄ funkcję
f[x_] :=ta⋯
Tan[si⋯
Sin[cosinus
Cos[x]]] (* to nie jest jedyny sposob, ale na razie wystarczy;
wiecej informacji o tzw. natychmiastowej i opoznionej
defincji funkcji mozna znalezc na mojej stronie w notebooku
natychmiastowa_i_opozniona_definicja_funkcji.nb
*)
18 NOF_1.nb
wykres
Plot[f[x], {x, 0,pi
Pi}]
0.5 1.0 1.5 2.0 2.5 3.0
-1.0
-0.5
0.5
1.0
f[1]
Tan[Sin[Cos[1]]]
przybliżenie numeryczne
N[f[1], 20]
0.56514343133040975986
(* Jeszcze jeden wazny przyklad: funkcje mozna zdefiniowac KAWALKAMI *)
w[x_] :=funkcja odcinkowa
Piecewise[{{x^2, x < 0}, {x, x >= 0}}] (* uwaga na skladnie *)
wykres
Plot[w[x], {x, -2, 2}]
-2 -1 1 2
1
2
3
4
w[0]
0
NOF_1.nb 19
Operator %v = 24 * 5 / 6!
1
6
w = % + 11 (* % zastepuje ostatni uzyskany wynik
niekoniecznie musi to byc ten z poprzedniej komorki! *)
67
6
t1 = %% * 6 (* %% teraz przedostatnio uzyskany wynik *)
1
t2 = %%% * 6
1
(* wynik z komorki numer 62 *)
t3 = %62 * 6
{6 Null}
Nadawanie wartości zmiennym i ich
odwoływanieW jednej komórce można podać wiele komend
a1 = 23
a2 = 3
a3 = 7
23
3
7
Jeśli nie chcemy outputu (na przykład przy instrukcjach przypisania), wtedy dajemy
średniki
b1 = 23; b2 = 3; b3 = 7; b4 = -9.0; b5 = 76; b6 = 0;
wyczyść
Clear[b1 ] ; (* wartosc b1 stanie sie z powrotem nieokreslona *)
20 NOF_1.nb
b1
b1
b2 =.; (* to dziala tak samo. UWAGA na
zmiane koloru nazwy b2 z czarnej na niebieski *)
wyczyść
Clear[b3, b4, b5] (* to wyczysci trzy zmienne naraz *)
(* ponizsza instrukcja wyczysci WSZYSTKIE PRZYPISANE WARTOSCI i DEFINICJE *)
wyczyść wszystko
ClearAll["Global`*"]
a1
a1
f
f
Inne s1 =
sumowanie
Sum[n^2, {n, 1, 10}]
385
(* latwo uzyc opcjiwstaw
Insert →
wejście
Input from above i potem zmienic , by uzyskac ... *)
s2 =
sumowanie
Sum[n^5, {n, 1, 10}]
220 825
(* podobnie mozna wykorzystac output z poprzedniej komorki *)
sumowanie
Sum[ii^3, {ii, 1, n}]
1
4n2 1 + n2
g[n_] :=1
4n2 1 + n2 (* uzylem opcji
wstaw
Insert → Output from above *)
(*
wstaw
Insert → Picture → From file *)
;
NOF_1.nb 21
zmniejsz ostrość
Blur , 5
Jak unikać podstawowych błędów(1) Nawiasy ( ) są używane wyłącznie dla zaznaczenia kolejności operacji. Nie należy
używać { } oraz [ ] w wyrażeniach matematycznych !
(2) Polecenia programu Mathematica oraz wbudowane funkcje mają nazwy zaczyna-
jące się z dużej litery !
(3) Nawiasy kwadratowe są używane dla argumentów poleceń i funkcji !
(4) Nawiasy { } są używane wyłącznie w listach !
(5) Przy definiowaniu własnych funkcji (na razie) trzymać się wzoru: f[x_]:= x^5
(6) Równania (i porównywania) wymagają dwóch znaków ==
Należy zwracać uwagę na kolory !Kolor czerwony oznacza zwykle błędną składnię !
Kolor niebieski zmiennej oznacza, że nie nadano jej żadnej wartości, co może mieć
wpływ na dalsze wykorzystanie tej zmiennej !
22 NOF_1.nb