Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Используя MuPAD®, можно работать со следующими типами чисел:
Целые числа
Рациональные числа
Числа с плавающей запятой
Комплексные числа
По умолчанию MuPAD принимает, что все переменные являются комплексными числами.
При вычислении с целыми числами и рациональными числами, MuPAD возвращает целочисленные результаты
2 + 2
или рациональные результаты:
(1 + (5/2*3))/(1/7 + 7/9)^2
Если MuPAD не может найти представление выражения в целочисленной или рациональной форме, он возвращает символьное выражение:
56^(1/2)
Можно выполнить точные расчеты, которые включают константы =exp(1)=2.718...
и π=3.1415...
:
2*(exp(2)/PI)
Для получения дополнительной информации о математических константах, реализованных в MuPAD, смотрите Константы.
По умолчанию MuPAD выполняет все расчеты в точной форме. Чтобы получить приближение с плавающей точкой к выражению, используйте float
команда. Например:
float(sqrt(56))
Точность приближения зависит от значения глобальной переменной DIGITS
. Переменная DIGITS
может принять любое целочисленное значение между 1 и 229 + 1. Например:
DIGITS:=20: float(sqrt(56))
Значение по умолчанию переменной DIGITS
10. Восстановить значение по умолчанию, введите:
delete DIGITS
Когда MuPAD выполняет арифметические операции на числах, включающих по крайней мере одно число с плавающей запятой, он автоматически переключается, чтобы аппроксимировать числовые расчеты:
(1.0 + (5/2*3))/(1/7 + 7/9)^2
Если выражение включает точные значения такой как или sin (2) и числа с плавающей запятой, MuPAD аппроксимирует только числа:
1.0/3*exp(1)*sin(2)
Чтобы аппроксимировать выражение точными значениями, используйте float
команда:
float(1.0/3*exp(1)*sin(2))
или используйте числа с плавающей запятой в качестве аргументов:
1.0/3*exp(1.0)*sin(2.0)
Также можно аппроксимировать константы π и:
DIGITS:=30: float(PI); float(E); delete DIGITS
Во входных областях MuPAD распознает верхний регистр I мнимой единицей. В выходных областях MuPAD использует нижний регистр i, чтобы отобразить мнимую единицу:
sqrt(-1), I^2
И действительные и мнимые части комплексного числа могут содержать целые числа, rationals, и числа с плавающей запятой:
(1 + 0.2*I)*(1/2 + I)*(0.1 + I/2)^3
Если вы используете точные выражения, например, MuPAD не всегда возвращает результат в Декартовых координатах:
1/(sqrt(2) + I)
Чтобы разделить результат в его действительные и мнимые части, используйте rectform
команда:
rectform(1/(sqrt(2) + I))
Функции Re
и Im
возвратите действительные и мнимые части комплексного числа:
Re(1/(2^(1/2) + I))
Im(1/(2^(1/2) + I))
Функциональный conjugate
возвращает сопряженное комплексное число:
conjugate(1/(2^(1/2) + I))
Функциональный abs
и arg
возвратите абсолютное значение и угол в полярных координатах комплексного числа:
abs(1/(2^(1/2) + I)); arg(1/(2^(1/2) + I))
Чтобы вычислить производную математического выражения, используйте diff
команда. Например:
f := 4*x + 6*x^2 + 4*x^3 + x^4: diff(f, x)
Также можно вычислить частную производную многомерного выражения:
f := y^2 + 4*x + 6*x^2 + 4*x^3 + x^4: diff(f, y)
Чтобы найти производные высшего порядка, используйте вложенный вызов diff
команда
diff(diff(diff(sin(x), x), x), x)
или, более эффективно:
diff(sin(x), x, x, x)
Можно использовать оператор последовательности $
вычислить производные второго или высшего порядка:
diff(sin(x), x $ 3)
diff(f, x1, x2, ...)
эквивалентно diff(...diff(diff(f, x1), x2)...)
. Система сначала дифференцирует f
относительно x1
, и затем дифференцирует результат относительно x2
, и так далее. Например,
diff(diff((x^2*y^2 + 4*x^2*y + 6*x*y^2), y), x)
эквивалентно
diff(x^2*y^2 + 4*x^2*y + 6*x*y^2, y, x)
Чтобы улучшать производительность, MuPAD принимает, что все смешанные производные коммутируются. Например.
Это предположение достаточно для большинства технических и научных проблем.
Для дальнейших расчетов удалите f
:
delete f:
MuPAD обеспечивает две функции дифференцирования, diff
и D
. diff
функционируйте подачи для дифференциации математических выражений, таких как sin(x)
, cos(2y)
, exp(x^2)
, x^2 + 1
, f(y)
, и так далее.
Дифференцировать стандартную функцию, такую как sin
exp
, heaviside
, или пользовательская функция, такая как f:= x -> x^2 + 1
, используйте дифференциальный оператор D
:
D(sin), D(exp), D(heaviside)
f := x -> x^2 + 1: D(f)
'
ярлык для дифференциального оператора D
:
sin', sin'(x), f'
Команда D(f)(x)
принимает тот f
одномерная функция и представляет производную f
в точке x
. Например, производная синусоидальной функции при точке x 2:
D(sin)(x^2)
Обратите внимание на то, что в этом примере вы дифференцируете sin
функция, не функциональный f := x -> sin(x^2)
. Дифференциация f
возвращает этот результат:
f := x -> sin(x^2): D(f)
Для получения дополнительной информации об использовании оператора D
для вычисления второго - и производные высшего порядка функций, смотрите Дифференцирующиеся Функции.
Чтобы вычислить интегралы используют int
команда. Например, можно вычислить неопределенные интегралы:
int((cos(x))^3, x)
int
команда возвращает результаты без постоянного интегрирования.
Чтобы найти определенный интеграл, передайте верхнее и нижние пределы интервала интегрирования к int
функция:
int((cos(x))^3, x = 0..PI/4)
Можно использовать бесконечность в качестве предела при вычислении определенного интеграла:
int(sin(x)/x, x = -infinity..infinity)
Если MuPAD не может выполнить выражение в закрытой форме, он возвращает выражение. Например:
int(sin(x^2)^2, x = -1..1)
Можно аппроксимировать значение интеграла численно с помощью float
команда. Например:
float(int(sin(x^2)^2,(x = -1..1)))
Также можно использовать numeric::int
команда, чтобы оценить интеграл численно. Например:
numeric::int(sin(x^2)^2, x = -1..1)
Чтобы создать матрицу в MuPAD, используйте matrix
команда:
A := matrix([[1, 2], [3, 4], [5, 6]]); B := matrix([[1, 2, 3], [4, 5, 6]])
Также можно создать векторы с помощью matrix
команда:
V := matrix([1, 2, 3])
Можно явным образом объявить матричные размерности:
C := matrix(3, 3, [[-1, -2, -3], [-4, -5, -6], [-7, -8, -9]]); W := matrix(1, 3, [1, 2, 3])
Если вы объявляете матричные размерности и вводите строки или столбцы короче, чем заявленные размерности, MuPAD заполняет матрицу нулевыми элементами:
F := matrix(3, 3, [[1, -1, 0], [2, -2]])
Если вы объявляете матричные размерности и вводите строки или столбцы дольше, чем заявленные размерности, MuPAD возвращает следующее сообщение об ошибке:
matrix(3, 2, [[-1, -2, -3], [-4, -5, -6], [-7, -8, -9]])
Error: Number of columns does not match. [(Dom::Matrix(Dom::ExpressionField()))::mkSparse]
Также можно создать диагональную матрицу:
G := matrix(4, 4, [1, 2, 3, 4], Diagonal)
Чтобы добавить, вычтите, умножьте и разделите матрицы, используйте типичные арифметические операторы. Например, чтобы умножить две матрицы, введите:
A := matrix([[1, 2], [3, 4], [5, 6]]); B := matrix([[1, 2, 3], [4, 5, 6]]); A*B
Если вы добавляете номер x
к матричному A
, MuPAD добавляет x
времена единичная матрица к A
. Например:
C := matrix(3, 3, [[-1, -2, -3], [-4, -5, -6], [-7, -8, -9]]); C + 10
Можно вычислить определитель и инверсию квадратной матрицы:
G := matrix([[1, 2, 0], [2, 1, 2], [0, 2, 1]]); det(G); 1/G
MuPAD linalg
библиотека содержит функции для обработки линейных алгебраических операций. Пользуясь этой библиотекой, можно выполнить большое разнообразие расчетов на матрицах и векторах. Например, чтобы найти собственные значения квадратных матриц G, F, и (A*B), используют linalg:: команда собственного значения:
linalg::eigenvalues(G); linalg::eigenvalues(F); linalg::eigenvalues(A*B)
Чтобы видеть все функции, доступные в этой библиотеке, введите info(linalg)
во входной области. Можно получить подробную информацию об определенной функции путем ввода ?functionname
. Например, чтобы открыть страницу справки на функции собственного значения, введите ?linalg::eigenvalues
.
Чтобы решить простое алгебраическое уравнение с одной переменной, используйте solve
команда:
solve(x^5 + 3*x^4 - 23*x^3 - 51*x^2 + 94*x + 120 = 0, x)
Можно решить уравнение символьными параметрами:
solve(a*x^2 + b*x + c = 0, x)
Если вы хотите получить решение для особых значений параметров, используйте assuming
команда. Например, можно решить следующее уравнение, принимающее тот a
положительно:
solve(a*x^2 + b*x + c = 0, x) assuming a > 0
Для получения дополнительной информации смотрите Используя Предположения.
Можно решить систему уравнений:
solve([x^2 + x*y + y^2 = 1, x^2 - y^2 = 0], [x, y])
или можно решить систему уравнений, содержащую символьные параметры:
solve([x^2 + y^2 = a, x^2 - y^2 = b], [x, y])
Можно решить различные типы обыкновенных дифференциальных уравнений:
o := ode(x^2*diff(y(x), x, x) + 2*x*diff(y(x), x) + x, y(x)): solve(o)
Кроме того, можно решить неравенства:
solve(x^4 >= 5, x)
Если вы хотите получить результат по полю вещественных чисел только, assume
это x является вещественным числом:
assume(x in R_); solve(x^4 >= 5, x)
Можно выбрать решения, которые положительны:
solve(x^4 >= 5, x) assuming x > 0
Существует несколько способов представить многочленное выражение. Стандартная полиномиальная форма является суммой одночленов. Чтобы получить эту форму многочленного выражения, используйте expand
команда:
expand((x - 1)*(x + 1)*(x^2 + x + 1)* (x^2 + 1)*(x^2 - x + 1)*(x^4 - x^2 + 1))
Можно учесть это выражение с помощью factor
команда:
factor(x^12 - 1)
Для многомерных выражений можно задать переменную и собрать условия с теми же степенями в этой переменной:
collect((x - a)^4 + a*x^3 + b^2*x + b*x + 10*a^4 + (b + a*x)^2, x)
Для рациональных выражений можно использовать partfrac
команда, чтобы представить выражение как сумму частей (разложение элементарной дроби). Например:
partfrac((7*x^2 + 7*x + 6)/(x^3 + 2*x^2 + 2*x + 1))
MuPAD также обеспечивает две общих функции упрощения: simplify
и Simplify
. simplify
функция быстрее, и она может обработать большинство элементарных выражений:
simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)* (x^2 - x + 1)*(x^4 - x^2 + 1))
Simplify
функционируйте поиски более простых результатов глубже, чем simplify
функция. Более обширный поиск делает эту функцию медленнее, чем simplify
. Simplify
функция позволяет вам расширять набор правила упрощения со своими собственными правилами и служит лучше для преобразования более сложных выражений. Для элементарных выражений это дает тот же результат как упростите:
Simplify((x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 + 1)* (x^2 - x + 1)*(x^4 - x^2 + 1))
Для следующего выражения две функции упрощения дают различные формы того же математического выражения:
f := exp(wrightOmega(-ln(3/5)))*exp(ln(5) - ln(3)): simplify(f); Simplify(f)
Обратите внимание на то, что нет никакой универсальной стратегии упрощения, потому что значение самого простого представления символьного выражения не может быть задано ясно. Различные проблемы требуют различных форм того же математического выражения. Можно использовать общие функции упрощения simplify
и Simplify
чтобы проверять, дают ли они более простую форму выражения, вы используете.
Также можно преобразовать и упростить тригонометрические выражения. Функции для управления тригонометрическими выражениями эквивалентны для многочленных выражений. Например, чтобы расширить тригонометрическое выражение, используйте expand
команда:
expand(sin(5*x))
Чтобы учесть тригонометрическое выражение, используйте factor
команда:
factor(cos(x)^4 + 4*cos(x)^3*sin(x) + 6*cos(x)^2*sin(x)^2 + 4*cos(x)*sin(x)^3 + sin(x)^4)
Можно использовать общие функции упрощения по тригонометрическим выражениям:
simplify(cos(x)^2 + sin(x)^2)
simplify(cos(x)^4 + sin(x)^4 + sin(x)*cos(x))
Simplify(cos(x)^4 + sin(x)^4 + sin(x)*cos(x))
По умолчанию все переменные в MuPAD представляют комплексные числа. При решении уравнений или упрощении выражений, программное обеспечение рассматривает все возможные случаи для комплексных чисел. Если вы решаете уравнение или упрощаете выражение, это предположение по умолчанию приводит к точному и полному набору результатов включая сложные решения:
solve(x^(5/2) = 1, x)
Чтобы получить действительные решения только, передайте предположение MuPAD с помощью assuming
команда:
solve(x^(5/2) = 1, x) assuming x in R_
Можно сделать различные предположения на значениях, что переменная представляет. Например, можно решить уравнение, принимающее, что переменная x представляет только положительные значения:
solve(x^4 - 1 = 0, x) assuming x > 0
Можно сделать несколько предположений:
solve(x^4 - a = 0, x) assuming a = 16 and x in R_
Можно использовать предположения при интеграции математических выражений. Например, без предположения на переменной x
, следующий интеграл зависит от знака выражения x 2 - 1:
int(1/abs(x^2 - 1), x)
Если вы знаете, что x> 1, можно передать предположение интегралу:
int(1/abs(x^2 - 1), x) assuming x > 1
Используя предположения наряду с упрощением функции сужают возможные значения, которые переменные представляют и могут обеспечить намного более короткие результаты, чем одни только функции упрощения. Например:
simplify(sqrt(x^2 + 2*x + 1) + sqrt(x^2 - 2*x + 1) + sqrt(x^2 + 4*x + 4) + sqrt(x^2 - 4*x + 4))
от
simplify(sqrt(x^2 + 2*x + 1) + sqrt(x^2 - 2*x + 1) + sqrt(x^2 + 4*x + 4) + sqrt(x^2 - 4*x + 4)) assuming x > 2
Можно передать предположения следующим функциям: expand
упрощение
, limit
, solve
, и int
. Simplify
функция не позволяет предположения на переменных.