Main Content

expand

표현식을 전개하고 및 항등식을 사용하여 함수의 입력값 단순화

설명

예제

expand(S)S의 모든 괄호를 곱하고 표준 항등식을 적용하여 cos(x + y)와 같은 함수에 대한 입력값을 단순화합니다.

예제

expand(S,Name,Value)는 하나 이상의 이름-값 쌍 인수로 지정된 추가 옵션을 사용합니다. 예를 들어, 'IgnoreAnalyticConstraints'true로 지정하면 편의적인 항등식을 통해 입력값이 단순화됩니다.

예제

모두 축소

syms x
p = (x - 2)*(x - 4);
expand(p)
ans =
x^2 - 6*x + 8

삼각 함수 표현식 cos(x + y)를 전개합니다. 표준 항등식을 적용하여 cos 함수의 입력값 x + yx 또는 y로 단순화합니다.

syms x y
expand(cos(x + y))
ans =
cos(x)*cos(y) - sin(x)*sin(y)

e(a + b)2을 전개합니다. 표준 항등식을 적용하여 exp 함수의 입력값 (a + b)^2을 단순화합니다.

syms a b
f = exp((a + b)^2);
expand(f)
ans =
exp(a^2)*exp(b^2)*exp(2*a*b)

벡터에 있는 표현식을 전개합니다. 항등식을 적용하여 표현식에 있는 함수의 입력값을 단순화합니다.

syms t
V = [sin(2*t), cos(2*t)];
expand(V)
ans =
[ 2*cos(t)*sin(t), 2*cos(t)^2 - 1]

기본적으로 expand는 함수의 입력값을 단순화하는 항등식을 적용하여 거듭제곱 항과 함수를 둘 다 전개합니다. 'ArithmeticOnly'를 사용하면 거듭제곱 항만 전개되고 함수의 전개는 억제됩니다.

(sin(3*x) - 1)^2을 전개합니다. 기본적으로 expand는 거듭제곱 ^2을 전개하고 sin 입력값 3*xx로 단순화합니다.

syms x
f = (sin(3*x) - 1)^2;
expand(f)
ans =
2*sin(x) + sin(x)^2 - 8*cos(x)^2*sin(x) - 8*cos(x)^2*sin(x)^2...
 + 16*cos(x)^4*sin(x)^2 + 1

ArithmeticOnlytrue로 설정하여 sin(3*x)와 같은 함수의 전개를 억제합니다.

expand(f, 'ArithmeticOnly', true)
ans =
sin(3*x)^2 - 2*sin(3*x) + 1

log 함수 호출의 입력값을 단순화합니다. 변수가 복소수 값을 가질 경우에는사용되는 항등식이 유효하지 않기 때문에 기본적으로 expand는 로그 입력값을 단순화하지 않습니다.

syms a b c
f = log((a*b/c)^2);
expand(f)
ans =
log((a^2*b^2)/c^2)

'IgnoreAnalyticConstraints'true로 설정하여 로그 입력값을 단순화하는 항등식을 적용합니다.

expand(f,'IgnoreAnalyticConstraints',true)
ans =
 2*log(a) + 2*log(b) - 2*log(c)

입력 인수

모두 축소

입력값으로, 숫자, 벡터, 행렬, 배열로 지정되거나 기호 숫자, 기호 변수, 기호 배열, 기호 함수, 기호 표현식으로 지정됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 버전에서는 쉼표를 사용하여 각 이름과 값을 구분하고 따옴표로 Name을 묶으십시오.

예: expand(S,'ArithmeticOnly',true)

대수 표현식만 전개할지 여부로, 'ArithmeticOnly'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다. 값이 true이면 함수는 삼각 함수, 쌍곡 함수, 로그 함수 및 특수 함수를 전개하지 않고 표현식의 산술 부분만 전개합니다. 이 옵션은 거듭제곱과 근의 전개는 금지하지 않습니다.

단순화를 위해 편의적 항등식을 사용할지 여부로, 'IgnoreAnalyticConstraints'와 함께 true 또는 false가 쉼표로 구분되어 지정됩니다.

'IgnoreAnalyticConstraints'true로 설정하면 더 간단한 해를 얻을 수 있지만, 이로 인해 일반적으로는 유효하지 않은 결과가 나올 수 있습니다. 즉, 이 옵션은 편의적인 수학적 항등식을 적용하지만 그 적용 결과가 변수의 모든 값에 대해 성립하지 않을 수 있습니다. 경우에 따라, 이 옵션을 사용하면 expand에서 더 간단하지만 초기 표현식과 동등하지 않은 결과가 반환될 수 있습니다. 알고리즘 항목을 참조하십시오.

알고리즘

'IgnoreAnalyticConstraints'를 사용하는 경우 expand는 다음 규칙 중 일부를 적용합니다.

  • a 및 b의 모든 값에 대해 log(a) + log(b) = log(a·b). 특히 다음 등식은 a, b 및 c의 모든 값에 대해 유효합니다.

    (a·b)c = ac·bc.

  • a 및 b의 모든 값에 대해 log(ab) = b·log(a). 특히 다음 등식은 a, b 및 c의 모든 값에 대해 유효합니다.

    (ab)c = ab·c.

  • f 및 g가 표준 수학 함수이고 모든 작은 양수에 대해 f(g(x)) = x인 경우 f(g(x)) = x가 모든 복소수 x에 대해 유효한 것으로 간주됩니다.

    • log(ex) = x

    • asin(sin(x)) = x, acos(cos(x)) = x, atan(tan(x)) = x

    • asinh(sinh(x)) = x, acosh(cosh(x)) = x, atanh(tanh(x)) = x

    • k의 모든 값에 대해 Wk(x·ex) = x

버전 내역

R2006a 이전에 개발됨