Алгебраическое упрощение
S = simplify(expr)
S = simplify(expr,Name,Value)
выполняет алгебраическое упрощение 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 (загар (x)) = x
asinh (sinh (x)) = x, acosh (дубинка (x)) = x, atanh (tanh (x)) = x
Wk (x · e x) = x для всех индексов ответвления k функции Ламберта В.