Выразить выражение в терминах других выражений в MATLAB - PullRequest
0 голосов
/ 05 июля 2018

Есть ли способ выразить выражение в терминах других выражений в MATLAB?

Например, следующие выражения были записаны как сумма (X + Y) и произведение (XY)

1/X + 1/Y = (X + Y)/XY

1/X^2 + 1/Y^2 + 2/(XY) = (X + Y)^2/(XY)

2*X/Y + 2*Y/X = 2*((X + Y)^2 - 2*X*Y)/(XY)

Я знаю о функции rewrite () , но не могу найти, как ее можно использовать для выполнения того, что я хочу?

1 Ответ

0 голосов
/ 05 июля 2018

Есть несколько различных функций, которые вы можете попробовать изменить формат вашего символического выражения:

  • collect: собирает коэффициенты (можно указать выражение для сбора степеней):

    >> collect(1/X + 1/Y)
    
    ans =
    
    (X + Y)/(Y*X)
    
  • simplify: выполнить алгебраическое упрощение:

    >> simplify(1/X^2 + 1/Y^2 + 2/(X*Y))
    
    ans =
    
    (X + Y)^2/(X^2*Y^2)
    
  • numden: преобразовать в рациональную форму с числителем и знаменателем:

    >> [n, d] = numden(2*X/Y + 2*Y/X)
    
    n =
    
    2*X^2 + 2*Y^2
    
    d =
    
    X*Y
    
    >> n/d
    
    ans =
    
    (2*X^2 + 2*Y^2)/(X*Y)
    
...