- •Элементарное введение в систему аналитических вычислений «mathematica»
- •7. Уравнения 19
- •8. Правила преобразования 22
- •9. Функции и программы 23
- •10. Построение графиков 27
- •2.6. Числа
- •3. Оператор связывания имени с выражением
- •4. Арифметика
- •4.1. Численная аппроксимация
- •4.2. Математические функции
- •4.3. Арифметика с комплексными числами
- •4.4. Функции с комплексными переменными
- •4.5. Операции с матрицами
- •1) Синтаксис записи векторов и матриц совпадает с синтаксисом записи списков.
- •2) Определение элементов матриц и векторов.
- •3) Арифметические действия с векторами и матрицами:
- •4.6. Матричные функции
- •4.7. Массивы, векторы и матрицы
- •5. Алгебра
- •5.1. Функции для преобразования полиномов
- •5.2. Функции определения структуры полинома
- •5.3. Функции преобразования рациональных выражений
- •6. Символьная математика
- •6.1. Базовые функции
- •7. Уравнения
- •7.1. Правила записи уравнений.
- •7.2. Решение алгебраических уравнений в аналитическом и численном видах
- •7.3. Дифференциальные уравнения
- •8. Правила преобразования
- •9. Функции и программы
- •9.1. Определение функции
- •9.2. Глобальные и локальные переменные
- •9.3. Структурные операторы
- •9.4. Рекурсивный вызов функций
- •9.5. Пакеты функций
- •10. Построение графиков
- •10.1. Двухмерные графики
- •10.2. Графики функций, зависящей от двух переменных
- •10.3. Графики функции, заданной параметрически
- •Литература
7.3. Дифференциальные уравнения
a) DSolve - находит решение дифференциального уравнения , как функцию y[x] от независимой переменной x.
ПРИМЕР аналитического решения дифференциального уравнения.
In[1]= DSolve[y'[x]==2 a x, y[x], x]
Out[1]= {{y[x]->a x2+c[1]}}
NDSolve - численное решение дифференциальных уравнений на промежутке .
ПРИМЕР решения системы дифференциальных уравнений численным методом.
Пусть необходимо решить систему дифференциальных уравнений 2-го порядка
с начальными условиями
относительно переменных на промежутке времени t от 0 до 20 секунд.
In[1]:=NDSolve[{x1'[t] == x2[t],
x2'[t] == x2[t] * (1 - x1[t]^2) - x1[t],
x1[0] == 3.0 ,x2[0] == 0,5},
{x1[t], x2[t]}, {t, 0,20}]
Out[1]= {{x1[t] -> InterpolatingFunction[{0., 20.}, <>][t],
x2[t] -> InterpolatingFunction[{0., 20.}, <>][t]}}
Решение системы дифференциальных уравнений найдено в виде интерполяционной функции {{x1[t] -> InterpolatingFunction[{0., 20.}, <>][t],
x2[t] -> InterpolatingFunction[{0., 20.}, <>][t]}}
Графический вывод фазовых кривых:
In[2]:= ParametricPlot[Evaluate[{x1[t], x2[t]} /.%], {t, 0, 20}]
Out[2]= -Graphics-
Графический вывод временных процессов:
In[3]:= Plot[Evaluate[{x1[t], x2[t]} /.%%], {t, 0, 20}]
Out[3]= -Graphics-
8. Правила преобразования
Правила преобразования применяются для формальной подстановки в математических выражениях вместо lhs компоненты rhs компоненты. Синтаксис записи правил преобразования имеет следующий вид:
expr /.lhs -> rhs ,
где expr - математическое выражение; lhs - компонент , который необходимо заменить; rhs - компонент, на который заменяется lhs; -> - оператор замены.
Если к выражению необходимо применить несколько правил преобразования, то правила необходимо записать в виде списка:
expr /. {lhs1 -> rhs1, lhs2 ->rhs2...}
ПРИМЕРЫ применения правил преобразования
In[1]:= x + y /. x->3 - вместо x в выражение подставляется 3
Out[1]= 3 + y
In[2]:= x + y /. {x->a, y->b} - вместо x в выражение подставляется a, а вместо y подстав-
Out[2]= a + b ляется b
expr /.{rules, rules,...} - дает список результатов после применения каждого правила
In[3]:= x+y /. {{x->1, y->2}, {x->4, y->2}}
Out[3]= {3, 6}
expr//.rules - правила преобразования применяются друг к другу и к выражению expr
In[4]:= x^2 + y^6 /. { x->2+a } - обычное применение правил
Out[4]= (2 + a)2 + y6
In[5]:=x^2+y^6 //. { x->2+a, a->3 } - применение правил друг к другу и к выражению
Out[5] =25 + y6
Замечание: Правило преобразования можно связать с именем.
In[6]:= rt = Sin[x_]^2 + Cos[x]^2 -> 1;
In[7]:= x - Cos[a x^2 + b x + c]^2 - Sin[a x^2 + b x + c]^2 /. rt
Out[7]= x - 1
9. Функции и программы
9.1. Определение функции
Функции в языке программной системы Mathematica определяются следующим образом:
<имя функции>[<список формальных параметров>]:=<тело функции>.
После каждого имени параметра в списке формальных параметров ставится символ "_". Символ "_" в конце имени параметра означат, что параметр является формальным. В теле функции за именем формальный переменой символ подчеркивания не ставится. Пользователь всегда может вывести определение функции. Для этого необходимо ввести команду
?<имя функции>.
Определение функции в процессе работы можно удалить с помощью команды Clear[<имя функции>].
ПРИМЕРЫ:
In[1]:= f[x_] := x^2 - определение функции
In[2]:= f[a+1] - вызов функции
Out[2]:=(1 + a)2
In[3]:= ?f - вывод определения функции
Global `f
f[x_]:=x^2