Изчисления
Mathematica позволява лесно комбиниране и включване на различни вградени функции и допълнителни пакети, така че да могат да се решават всевъзможни сложни задачи. Системата има строги вътрешни правила, напълно съответстващи на математическите. Естествено тя владее правилата за диференциране, интегриране и другите символни операции и множеството таблици и специални функции. В същото време ние също можем да дефинираме и оперираме със свои правила. Тази абстракция е още по-изчистена, когато се извършват числени пресмятания, поради различните видове числа и точността, с които работим.
Пример 1. Важно е да се знае, че Mathematica винаги ОПИТВА да извърши най-точното пресмятане, прилагайки допустимите правила от математиката. За целта ясно трябва да се разбира, че типът на резултата е същият като типа на данните. Числовите константи и променливи могат да са цели, рационални, реални, комплексни. Този тип най-лесно се задава неявно, т.е. по подразбиране, според числата и променливите, които участват в оператора. Например 123 е цяло число, а 123. е реално. Достатъчно е само една данна да е от по-висок тип, за да се промени типът на резултата. Следват най-простите случаи за преминаване от един тип към друг, както и изчислителните им аспекти..
Тук данните са от цял тип и Mathematica работи точно:
![]()
![]()
![]()
![]()
![]()
Сега типовете стават реални и същите действия се извършват приближено, по подразбиране с 6 знака след десетичната точка:
![pn = N[p] rn = pn/12 rn^(1/2) RowBox[{RowBox[{1., /, 3}], +, 1/4}]](HTMLFiles/index_6.gif)
![]()
![]()
![]()
![]()
С комплексните числа се работи когато е зададена имагинерна единица i , а константите могат да са цели или реални. Функциите Re[x1 ] and Im[ x1] дават съответно реалната и имагинерната част на комплексното число x1:
![x1 = (1 + 2)/(5 - 3) RowBox[{x2, =, RowBox[{RowBox[{(, RowBox[{1., +, 2}], )}], /, (5 - 3)}]}] Re[x1] Im[x1] (x1^2 * x2)^(1/3)](HTMLFiles/index_11.gif)
![]()
![]()
![]()
![]()
![]()
Пример 2. Матрицата е типичен пример за двумерен масив. В Mathematica масивите най-лесно се представят във вид на вложени списъци. В първата вътрешна къдрава скоба са елементите на първия ред, във втората - на втория ред и т.н. Стандартното матричното представяне можем да покажем с функцията MatrixForm. Извличането на отделен елемент става с двойни квадратни скоби, както е показано на третия и четвъртия ред от примера.
![a = {{2, 4, 5}, {1, -8, 2}, {3, 7, 4}} MatrixForm[a] a[[1, 1]] a[[3, 2]]](HTMLFiles/index_17.gif)
![]()
![]()
![]()
![]()
Пример 3. Функцията Eigenvalues[ ] изчислява собствените стойности на матрицата а от Пример 2. Резултатът отново се връща като списък, но списък от правила, защото дадените елементи на матрицата са цели, а резултатът не е. Проблемът се решава като предварително сменим типа чрез вградената функция N[ ].
![z = Eigenvalues[a] ra = N[a] z = Eigenvalues[ra]](HTMLFiles/index_22.gif)
![]()
![]()
![]()
Пример 4. Един начин за генериране на матрици е чрез функцията Table[ ]. Ето как можем да получим матрицата на Вандермонд и да пресметнем нейната детерминанта. Последният ред служи за опростяване на резултата.
![v = Table[x_i^j, {j, 0, 4}, {i, 5}] MatrixForm[v] Det[v] ; dvan = Simplify[%]](HTMLFiles/index_26.gif)
![]()

![]()
Пример 5. Подобно на пример 4 ще генерираме матрица, чиито елементи са неопределени интеграли и ще изчислим детерминантата й:
![w = Table[∫ (Cos[t] * Sin[t])/(i + j) t, {j, 3}, {i, 3}] ; ws = Simplify[%] ; MatrixForm[ws] dw = Det[ws] %//N](HTMLFiles/index_30.gif)
![( 1 2 1 2 1 2 ) -- Cos[t] -- Cos[t] ... 2 -- Cos[t] --- Cos[t] --- Cos[t] 8 10 12](HTMLFiles/index_31.gif)
![]()
![]()
Пример 6. Производната на резултата от пример 5 запомняме в променливата f, опростяваме я и даваме графиката в интервала [ -π, π ]:
![f = ∂_tdw f = TrigReduce[f] Plot[f, {t, -π, π}]](HTMLFiles/index_34.gif)
![]()
![]()
![[Graphics:HTMLFiles/index_37.gif]](HTMLFiles/index_37.gif)
![]()
Пример 7. По-долу се намират локалните екстремуми на f в най-близата околност на точката t = 2.5 - минимумът е при t = 2.72106, а максинумът е при t = 0.420534.
![]()
![]()
![]()
Пример 8. Сега разлагаме f в ред на Тейлър до 10-та степен.
![]()
![]()
Пример 9. Тук се изчислява интеграл, който не e тривиалeн. За да се изчисли се добавя точка след поне една константа, например 3. За да следим поведеноето на функцията е добре да имаме и графиката й.
![RowBox[{g, =, RowBox[{(1 + x^3), /, RowBox[{(, RowBox[{x^4, +, RowBox[{3., x^2}], -, 5x, +, 2} ... (1 + x^3), /, RowBox[{(, RowBox[{x^4, +, RowBox[{3., x^2}], -, 5x, +, 2}], )}]}], x}]}]}]](HTMLFiles/index_44.gif)
![]()
![[Graphics:HTMLFiles/index_46.gif]](HTMLFiles/index_46.gif)
![]()
![]()
Created by Mathematica (October 6, 2007)