Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Решатель принимает и уравнения и выражения. Если вы вызываете solve
для выражения, команда принимает правую сторону, чтобы быть 0:
S1 := solve(x^3 - 1, x); S2 := solve(x^3 = 8, x); S3 := solve(x^3 - 3*x^2 = 1 - 3*x, x)
Присвойте отдельные решения переменных путем индексации в результат:
sol := S1[3]
Определение переменной, для которой вы хотите решить уравнение, является дополнительным. Если вы задаете переменную, команда solve
возвращает решения как набор чисел. В противном случае команда возвращает набор списков как решение:
solve(x^2 - 3*x + 2 = 0, x); solve(x^2 - 3*x + 2 = 0)
Если ваше уравнение содержит символьные параметры, задайте переменную, для которой вы хотите решить уравнение:
solve(a*x^2 + b*x + c, x)
Если вы решаете уравнение с символьными параметрами и не задаете переменную, solve
использует все параметры в качестве переменных и возвращает набор всех возможных решений. Например, решая следующее уравнение решатель принимает, что и x
и y
являются свободными переменными. при возврате всех возможных решений для этого уравнения решатель использует произвольный параметр z
:
solve(x^3 + y^3)
Чтобы задать больше чем одну переменную, предоставьте список переменных в качестве второго аргумента:
solve(a*x^2 + b*x + c, [a, b, c])
solve
также может возвратить выражение как x in S
, где x
является списком переменных, для которых вы решаете уравнение, и S
является набором векторов решения:
solve(a*x + 1/x)
Когда вы решаете полиномиальное уравнение высшего порядка, решатель иногда использует RootOf
, чтобы возвратить результаты:
solve(x^3 + 2*x + 1 = 0, x)
Чтобы получить явное решение для таких уравнений, попытайтесь вызвать решатель с опцией MaxDegree
. Опция задает максимальную степень полиномов, для которых решатель пытается возвратить явные решения. По умолчанию, MaxDegree=2
. Увеличивая это значение, можно получить явные решения для полиномов высшего порядка. Например, задайте MaxDegree=3
и получите явные решения вместо RootOf
для полинома третьего порядка:
solve(x^3 + 2*x + 1 = 0, x, MaxDegree = 3)
Когда вы решаете пятую часть - или полиномиальное уравнение высшего порядка, решатель может не мочь возвратить решение явным образом, даже с опцией MaxDegree
:
solve(x^5 + 2*x + 1 = 0, x); solve(x^5 + 2*x + 1 = 0, x, MaxDegree = 5)
В целом нет никаких явных выражений для корней полиномов степеней выше, чем 4. При установке опции MaxDegree
на 4 или более высокое значение не имеет никакого значения.
RootOf
символически представляет набор корней полинома. Можно использовать выражения, содержащие RootOf
в дальнейших вычислениях. Например, найдите сумму по всем корням полинома:
sum(S^2 + S + 2, S in RootOf(X^5 + 2*X + 1, X));
Чтобы получить числовое приближение корней, используйте команду float
:
float(RootOf(X^4 + X + 1, X))
Для получения дополнительной информации на числовых приближениях, смотрите уравнения Решения Численно.
Для одномерных полиномиальных уравнений MuPAD® также может вычислить интервалы, содержащие действительные корни. Смотрите Изолирующие Действительные Корни Полиномиальных уравнений.
По умолчанию команда solve
не возвращает кратность корней. Когда решение уравнения содержит несколько корней, MuPAD удаляет копии:
solve(x^2 - 6*x + 9 = 0, x)
Решатель не отображает несколько корней, потому что он возвращает результаты как набор. Набор в MuPAD не может содержать дублирующиеся элементы. Чтобы получить полиномиальные корни с их кратностью, используйте опцию Multiple
:
solve(x^2 - 6*x + 9 = 0, x, Multiple); solve((x - 1)^3*(x - 2)^7, x, Multiple)
Для некоторых полиномиальных уравнений решатель не может возвратить явные символьные решения.
p:= x^5 - 31*x^4/32 + 32*x^3/33 - 33*x^2/34 - 34*x/35 + 35/36: solve(p, x)
Если вы предпочитаете решение в форме кроме RootOf
и хотите избежать числовых методов, используйте polylib::realroots
, чтобы найти все интервалы, содержащие действительные решения:
p:= x^5 - 31*x^4/32 + 32*x^3/33 - 33*x^2/34 - 34*x/35 + 35/36: polylib::realroots(p)
solve
может решить неравенства. Как правило, набором решения неравенства является interval
или объединение интервалов:
solve(x^2 > 5, x)
Используйте solve
, чтобы решить следующее неравенство. Решение включает набор всех комплексных чисел, исключая и:
solve(x^2 <> 7, x)