Алгебраическое упрощение
выполняет алгебраическое упрощение S
= simplify(expr
)expr
. Если expr
символьный вектор или матрица, эта функция упрощает каждый элемент expr
.
выполняет алгебраическое упрощение S
= simplify(expr
,Name,Value
)expr
использование дополнительных опций задано одним или несколькими Name,Value
парные аргументы.
Упростите эти символьные выражения:
syms x a b c S = simplify(sin(x)^2 + cos(x)^2) S = simplify(exp(c*log(sqrt(a+b))))
S = 1 S = (a + b)^(c/2)
Вызовите simplify
для этой символьной матрицы. Когда входной параметр является вектором или матрицей, simplify
попытки найти более простую форму каждого элемента вектора или матрицы.
syms x M = [(x^2 + 5*x + 6)/(x + 2), sin(x)*sin(2*x) + cos(x)*cos(2*x); (exp(-x*i)*i)/2 - (exp(x*i)*i)/2, sqrt(16)]; S = simplify(M)
S = [ x + 3, cos(x)] [ sin(x), 4]
Упростите символьное выражение, которые содержат логарифмы и степени. По умолчанию, simplify
не комбинирует степени и логарифмы, потому что объединение их не допустимо для типовых комплексных чисел.
syms x expr = (log(x^2 + 2*x + 1) - log(x + 1))*sqrt(x^2); S = simplify(expr)
S = -(log(x + 1) - log((x + 1)^2))*(x^2)^(1/2)
Применять правила упрощения, которые позволяют simplify
функционируйте, чтобы объединить степени и логарифмы, установить 'IgnoreAnalyticConstraints'
к true
:
S = simplify(expr, 'IgnoreAnalyticConstraints', true)
S = x*log(x + 1)
Упростите это выражение:
syms x expr = ((exp(-x*i)*i) - (exp(x*i)*i))/(exp(-x*i) + exp(x*i)); S = simplify(expr)
S = -(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1)
По умолчанию, simplify
использование один внутренний шаг упрощения. Можно стать отличающимися, часто короче, результаты упрощения путем увеличения числа шагов упрощения:
S10 = simplify(expr,'Steps',10) S30 = simplify(expr,'Steps',30) S50 = simplify(expr,'Steps',50)
S10 = 2i/(exp(x*2i) + 1) - 1i S30 = ((cos(x) - sin(x)*1i)*1i)/cos(x) - 1i S50 = tan(x)
Если вы не можете возвратить желаемый результат, попробуйте альтернативные функции упрощения. Смотрите Выбирают Функцию, чтобы Перестроить Выражение.
Получите эквивалентные результаты для символьного выражения путем устанавливания значения 'All'
к true
.
syms x expr = cos(x)^2 - sin(x)^2; S = simplify(expr,'All',true)
S = cos(2*x) cos(x)^2 - sin(x)^2
Увеличьте число шагов упрощения к 10. Найдите другие эквивалентные результаты для того же выражения.
S = simplify(expr,'Steps',10,'All',true)
S = cos(2*x) 1 - 2*sin(x)^2 2*cos(x)^2 - 1 cos(x)^2 - sin(x)^2 cot(2*x)*sin(2*x) exp(-x*2i)/2 + exp(x*2i)/2
Попытайтесь разделить действительные и мнимые части выражения путем устанавливания значения 'Criterion'
к 'preferReal'
.
syms x f = (exp(x + exp(-x*i)/2 - exp(x*i)/2)*i)/2 -... (exp(- x - exp(-x*i)/2 + exp(x*i)/2)*i)/2; S = simplify(f, 'Criterion','preferReal', 'Steps', 100)
S = sin(sin(x))*cosh(x) + cos(sin(x))*sinh(x)*1i
Если 'Criterion'
не установлен в 'preferReal'
, затем simplify
возвращает более короткий результат, но действительные и мнимые части не разделяются.
S = simplify(f,'Steps',100)
S = sin(sin(x) + x*1i)
Когда вы устанавливаете 'Criterion'
к 'preferReal'
, simplifier порицает формы выражения, где комплексные числа появляются в подвыражениях. Во вложенных подвыражениях глубже комплексное число появляется в выражении, наименьшее количество настройки, которую получает эта форма выражения.
Попытайтесь избежать мнимых условий в экспонентах установкой 'Criterion'
к 'preferReal'
.
Покажите это поведение путем упрощения комплексного символьного выражения с и без установки 'Criterion'
к 'preferReal'
. Когда 'Criterion'
установлен в 'preferReal'
, затем simplify
помещает мнимый термин вне экспоненты.
expr = sym(i)^(i+1); withoutPreferReal = simplify(expr,'Steps',100)
withoutPreferReal = (-1)^(1/2 + 1i/2)
withPreferReal = simplify(expr,'Criterion','preferReal','Steps',100)
withPreferReal = exp(-pi/2)*1i
Упростите выражения, содержащие символьные модули той же размерности при помощи simplify
.
u = symunit; expr = 300*u.cm + 40*u.inch + 2*u.m; S = simplify(expr)
S = (3008/5)*[cm]
simplify
автоматически выбирает модуль, чтобы переписать в. Чтобы выбрать определенный модуль, используйте rewrite
.
Упрощение математического выражения не является ясно заданным предметом. Нет никакой универсальной идеи, относительно которой форма выражения является самой простой. Форма математического выражения, которое является самым простым для одной проблемы, может быть сложной или даже неподходящая для другой проблемы.
Когда вы используете IgnoreAnalyticConstraints
, затем simplify
следует этим правилам:
регистрируйте (a) + журнал (b) = журнал (a · b) для всех значений a и b. В частности, следующее равенство допустимо для всех значений a, b и c:
A·) c = a c · b c.
журнал (a b) = b · регистрируйте (a) для всех значений a и b. В частности, следующее равенство допустимо для всех значений a, b и c:
(a b) c = a b · c.
Если f и g являются стандартными математическими функциями и f (g (x)) = x для всех маленьких положительных чисел, f (g (x)) = , x принят, чтобы быть допустимым для всех комплексных чисел x. В частности:
журнал (e x) = x
asin (sin (x)) = x, acos (cos (x)) = x, atan (tan (x)) = x
asinh (sinh (x)) = x, acosh (дубинка (x)) = x, atanh (tanh (x)) = x
Wk (x · e x) = x для всех индексов ветви k функции Ламберта В.