rewrite

Переписать выражение в терминах другой функции

Синтаксис

Описание

пример

rewrite(expr,target) переписывает символическое выражение expr в терминах целевой функции target. Переписанное выражение математически эквивалентно исходному выражению. Если expr - вектор или матрица, rewrite действует поэлементно на expr.

Примеры

свернуть все

Перепишите любую тригонометрическую функцию в терминах экспоненциальной функции путем определения целевой 'exp'.

syms x
sin2exp = rewrite(sin(x), 'exp')
tan2exp = rewrite(tan(x), 'exp')
sin2exp =
(exp(-x*1i)*1i)/2 - (exp(x*1i)*1i)/2

tan2exp =
-(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1)

Перепишите экспоненциальную функцию в терминах любой тригонометрической функции путем определения тригонометрической функции в качестве цели. Полный список целей см. в разделе target.

syms x
exp2sin = rewrite(exp(x), 'sin')
exp2tan = rewrite(-(exp(x*2i)*1i - 1i)/(exp(x*2i) + 1), 'tan')
exp2sin =
1 - 2*sin((x*1i)/2)^2 - sin(x*1i)*1i
exp2tan =
-(((tan(x) - 1i)*1i)/(tan(x) + 1i) + 1i)/...
    ((tan(x) - 1i)/(tan(x) + 1i) - 1)

Упрощение exp2tan в ожидаемую форму при помощи simplify.

exp2tan = simplify(exp2tan)
exp2tan =
tan(x)

Перепишите любую тригонометрическую функцию в терминах любой другой тригонометрической функции путем определения цели. Полный список целей см. в разделе target.

Переписать tan(x) в терминах функции синуса путем определения целевой 'sin'.

syms x
tan2sin = rewrite(tan(x), 'sin')
tan2sin =
-sin(x)/(2*sin(x/2)^2 - 1)

Перепишите любую гиперболическую функцию в терминах любой тригонометрической функции путем определения тригонометрической функции в качестве цели. Полный список целей см. в разделе target.

Переписать tanh(x) в терминах функции синуса путем определения целевой 'sin'.

syms x
tanh2sin = rewrite(tanh(x), 'sin')
tanh2sin =
(sin(x*1i)*1i)/(2*sin((x*1i)/2)^2 - 1)

Точно так же перепишите тригонометрические функции в терминах гиперболических функций путем определения гиперболической функции в качестве цели.

Перепишите любую обратную тригонометрическую функцию в терминах функции логарифма путем определения целевой 'log'. Полный список целей см. в разделе target.

Переписать acos(x) и acot(x) с точки зрения log функция.

syms x
acos2log = rewrite(acos(x), 'log')
acot2log = rewrite(acot(x), 'log')
acos2log =
-log(x + (1 - x^2)^(1/2)*1i)*1i

acot2log =
(log(1 - 1i/x)*1i)/2 - (log(1i/x + 1)*1i)/2

Точно так же перепишите логарифмическую функцию в терминах обратной тригонометрической функции путем определения обратной тригонометрической функции в качестве цели.

Переписать каждый элемент массива матрицы путем вызова rewrite на матрице.

Перепишите все элементы массива матрицы с точки зрения exp функция.

syms x
matrix = [sin(x) cos(x); sinh(x) cosh(x)];
rewrite(matrix, 'exp')
ans =
[ (exp(-x*1i)*1i)/2 - (exp(x*1i)*1i)/2, exp(-x*1i)/2 + exp(x*1i)/2]
[                 exp(x)/2 - exp(-x)/2,       exp(-x)/2 + exp(x)/2]

Перепишите функцию косинуса в терминах функции синуса. Здесь, rewrite заменяет функцию косинуса с помощью тождеств cos(2*x) = 1 – 2*sin(x)^2 который действителен для любого x.

syms x
rewrite(cos(x),'sin')
ans =
1 - 2*sin(x/2)^2

rewrite не заменяет sin(x) с любым 1cos2(x) или 1cos2(x) поскольку эти выражения действительны не для всех x. Однако использование квадрата этих выражений для замены sin(x)^2 действителен для всех x. Таким образом, rewrite заменяет sin(x)^2.

syms x
rewrite(sin(x),'cos')
rewrite(sin(x)^2,'cos')
ans =
sin(x)
ans =
1 - cos(x)^2

Входные параметры

свернуть все

Вход для перезаписи, заданный как символьное число, переменная, выражение, функция, вектор, матрица или многомерный массив.

Целевая функция, заданная как вектор символов. В этой таблице представлены правила перезаписи для всех разрешенных целевых объектов.

ЦельПерезаписывает эти функцииВ терминах этих функций
'exp'Все тригонометрические и гиперболические функции, включая обратные функцииexp, log
'log'Все обратные тригонометрические и гиперболические функцииlog
'sincos'tan, cot, exp, sinh, cosh, tanh, cothsin, cos
'sin', 'cos', 'tan', или 'cot'sin, cos, exp, tan, cot, sinh, cosh, tanh, coth кроме целиЦелевая тригонометрическая функция
'sinhcosh'tan, cot, exp, sin, cos, tanh, cothsinh, cosh
'sinh', 'cosh', 'tanh', 'coth'tan, cot, exp, sin, cos, sinh, cosh, tanh, coth кроме целиЦелевая гиперболическая функция
'asin', 'acos', 'atan', 'acot'log, и все обратные тригонометрические и обратные гиперболические функцииЦелевая обратная тригонометрическая функция
'asinh', 'acosh', 'atanh', 'acoth'log, и все обратные тригонометрические и обратные гиперболические функцииЦелевая обратная гиперболическая функция
'sqrt'abs(x + 1i*y)sqrt(x^2 + y^2)
'heaviside'sign, triangularPulse, rectangularPulseheaviside
'piecewise'abs, heaviside, sign, triangularPulse, rectangularPulsepiecewise

Совет

  • rewrite заменяет символические вызовы функций в expr с целевой функцией, только если замена математически действительна. В противном случае исходные вызовы функций сохраняются.

Введенный в R2012a