assume
기호 객체에 가정 설정
설명
예제
일반적인 가정
연관된 구문을 사용하여 가정을 설정합니다.
기호 변수 x 에 대한 가정 | 구문 |
---|---|
실수 | assume(x,"real") |
유리수 | assume(x,"rational") |
양수 | assume(x,"positive") |
양의 정수 | assume(x,{'positive','integer'}) |
–1보다 작거나 1보다 큼 | assume(x<-1 | x>1) |
2에서 10 사이의 정수 | assume(in(x,"integer") & x>2 & x<10) |
정수가 아님 | assume(~in(z,"integer")) |
0이 아님 | assume(x ~= 0) |
짝수 | assume(x/2,"integer") |
홀수 | assume((x-1)/2,"integer") |
0에서 2π 사이 | assume(x>0 & x<2*pi) |
π의 배수 | assume(x/pi,"integer") |
변수가 짝수 또는 홀수라고 가정하기
x/2
가 정수라고 가정하여 x
가 짝수라고 가정합니다. (x-1)/2
가 정수라고 가정하여 x
가 홀수라고 가정합니다.
x
가 짝수라고 가정합니다.
syms x assume(x/2,"integer")
solve
를 사용하여 0
에서 10
사이의 모든 짝수를 찾습니다.
solve(x>0,x<10,x)
ans = 2 4 6 8
x
가 홀수라고 가정합니다. assume
은 이전 가정을 유지하지 않고 이전 가정 in(x/2, "integer")
를 자동으로 삭제합니다.
assume((x-1)/2,"integer") solve(x>0,x<10,x)
ans = 1 3 5 7 9
추후 계산을 위해 x
에 대한 가정을 지웁니다.
assume(x,"clear")
여러 개의 가정
assume
명령을 연이어 실행해도 여러 개의 가정이 설정되지 않습니다. 대신, 각 assume
명령은 이전 가정을 삭제하고 새 가정을 설정합니다. assumeAlso
또는 &
연산자를 사용하여 여러 개의 가정을 설정할 수 있습니다.
assume
을 사용하여 x > 5
를 가정한 다음 x < 10
을 가정합니다. assumptions
를 사용하여 두 번째 가정만 존재함을 확인합니다. 이는 assume
이 두 번째 가정을 설정할 때 첫 번째 가정을 삭제했기 때문입니다.
syms x assume(x > 5) assume(x < 10) assumptions
ans = x < 10
assumeAlso
를 사용하여 두 번째 가정에 첫 번째 가정을 더합니다. 두 가정 모두 존재함을 확인합니다.
assumeAlso(x > 5) assumptions
ans = [ 5 < x, x < 10]
x
에 대한 가정을 지웁니다.
assume(x,"clear")
&
연산자를 사용하여 두 조건을 가정해 보겠습니다. 두 가정 모두 존재함을 확인합니다.
assume(x>5 & x<10) assumptions
ans = [ 5 < x, x < 10]
추후 계산을 위해 x
에 대한 가정을 지웁니다.
assume(x,"clear")
피적분 함수에 대한 가정
기호 파라미터 a
에 대한 가정을 사용할 때와 사용하지 않을 때의 부정적분 계산 결과를 비교해 보겠습니다.
assume
을 사용하여 a
가 -1
이 아니라는 가정을 설정합니다.
syms x a assume(a ~= -1)
다음 적분을 계산합니다.
int(x^a,x)
ans = x^(a + 1)/(a + 1)
이번에는 가정을 지우고 동일한 적분을 계산합니다. 가정이 없으면 int
는 다음 조각별 결과를 반환합니다.
assume(a,"clear") int(x^a, x)
ans = piecewise(a == -1, log(x), a ~= -1, x^(a + 1)/(a + 1))
방정식의 파라미터와 변수에 대한 가정
가정을 사용하여 방정식의 반환되는 해를 특정 구간으로 제한합니다.
아래의 방정식을 풉니다.
syms x eqn = x^5 - (565*x^4)/6 - (1159*x^3)/2 - (2311*x^2)/6 + (365*x)/2 + 250/3; solve(eqn, x)
ans = -5 -1 -1/3 1/2 100
assume
을 사용하여 해를 구간 –1 <= x <= 1로 제한합니다.
assume(-1 <= x <= 1) solve(eqn, x)
ans = -1 -1/3 1/2
논리 연산자 and
, or
, xor
, not
또는 그 단축 연산자를 사용하여 동시에 여러 개의 가정을 설정합니다. 예를 들어, -1
보다 작은 모든 음수 해와 1
보다 큰 모든 양수 해로 제한해 보겠습니다.
assume(x < -1 | x > 1) solve(eqn, x)
ans = -5 100
추후 계산을 위해 가정을 지웁니다.
assume(x,"clear")
가정을 사용해 단순화하기
적절한 가정을 설정하면 보다 단순한 표현식을 얻을 수 있습니다.
simplify
를 사용하여 표현식 sin(2*pi*n)
을 단순화해 보십시오. simplify
함수는 입력값을 단순화할 수 없으며, 입력값을 그대로 반환합니다.
syms n simplify(sin(2*n*pi))
ans = sin(2*pi*n)
n
이 정수라고 가정해 보겠습니다. simplify
는 이제 표현식을 단순화합니다.
assume(n,"integer") simplify(sin(2*n*pi))
ans = 0
추후 계산을 위해 가정을 지웁니다.
assume(n,"clear")
표현식에 대한 가정
기호 표현식에 가정을 설정합니다.
변수 이외에 표현식에도 가정을 설정할 수 있습니다. 예를 들어, 다음 적분을 계산합니다.
syms x f = 1/abs(x^2 - 1); int(f,x)
ans = -atanh(x)/sign(x^2 - 1)
가정 x2 – 1 > 0을 설정하여 더 단순한 결과를 생성합니다.
assume(x^2 - 1 > 0) int(f,x)
ans = -atanh(x)
추후 계산을 위해 가정을 지웁니다.
assume(x,"clear")
관계를 증명하기 위한 가정
먼저 조건을 가정한 다음 isAlways
를 사용하여 특정 조건에서만 참이 되는 관계를 증명합니다.
x
가 정수가 아니면 sin(pi*x)
는 0
이 되지 않음을 증명합니다. isAlways
함수는 논리값 1
(true
)을 반환합니다. 이는 이 조건이 설정된 가정하에 있는 모든 x
값에 대해 성립함을 의미합니다.
syms x assume(~in(x,"integer")) isAlways(sin(pi*x) ~= 0)
ans = logical 1
행렬 요소에 대한 가정
sym
을 사용하여 모든 행렬 요소에 가정을 설정합니다.
자동 생성된 요소를 갖는 2×2 기호 행렬 A
를 만듭니다. set
을 rational
로 지정합니다.
A = sym("A",[2 2],"rational")
A = [ A1_1, A1_2] [ A2_1, A2_2]
assumptions
를 사용하여 A
의 요소에 대한 가정을 반환합니다.
assumptions(A)
ans = [ in(A1_1, 'rational'), in(A1_2, 'rational'),... in(A2_1, 'rational'), in(A2_2, 'rational')]
assume
을 사용하여 모든 행렬 요소에 가정을 설정할 수도 있습니다. 이번에는 A
의 모든 요소가 양의 유리수 값을 갖는다고 가정해 보겠습니다. 가정을 문자형 벡터로 구성된 셀형 배열 {'positive','rational'}
로 설정합니다.
assume(A,{'positive','rational'})
assumptions
를 사용하여 A
의 요소에 대한 가정을 반환합니다.
assumptions(A)
ans = [ 0 < A1_1, 0 < A1_2, 0 < A2_1, 0 < A2_2,... in(A1_1, 'rational'), in(A1_2, 'rational'),... in(A2_1, 'rational'), in(A2_2, 'rational')]
추후 계산을 위해 가정을 지웁니다.
assume(A,"clear")
입력 인수
팁
assume
은 기호 변수에 설정된 모든 이전 가정을 제거합니다. 가정을 추가할 때 이전 가정을 유지하려면assumeAlso
를 사용하십시오.clear
를 사용하여 MATLAB® 작업 공간에서 기호 변수를 삭제하면 그 변수에 설정한 모든 가정이 기호 엔진에 유지됩니다. 나중에 동일한 이름으로 새 기호 변수를 선언하면 이 기호 변수는 이전 가정을 상속받습니다.기호 변수
var
에 설정된 모든 가정을 지우려면 다음 명령을 사용하십시오.assume(var,"clear")
MATLAB 작업 공간에 있는 모든 객체를 삭제하고 MATLAB 작업 공간과 연결된 Symbolic Math Toolbox™ 엔진이 모든 가정을 지운 채로 종료되도록 하려면 다음 명령을 사용하십시오.
clear all
MATLAB은 부등식에 있는 복소수를 실수축으로 투영합니다.
condition
이 부등식인 경우, 부등식의 양변 모두 실수 값을 나타내야 합니다. 복소수체는 순서체가 아니므로 복소수가 있는 부등식은 유효하지 않습니다. (즉,5 + i
가2 + 3*i
보다 큰지 작은지 판단할 수 없습니다.) 예를 들어,x > i
는x > 0
이 되고x <= 3 + 2*i
는x <= 3
이 됩니다.툴박스는 기호 함수에 대한 가정은 지원하지 않습니다. 대신, 기호 변수와 기호 표현식에 가정을 설정하십시오.
sym
과syms
를 사용하여 새 기호 변수를 만들 때 변수가 실수, 양수, 정수 또는 유리수라는 가정을 설정할 수도 있습니다.a = sym("a","real"); b = sym("b","rational"); c = sym("c","positive"); d = sym("d","positive"); e = sym("e",{'positive','integer'});
또는 더 효율적인 다음과 같은 명령을 사용할 수 있습니다.
syms a real syms b rational syms c d positive syms e positive integer
버전 내역
R2012a에 개발됨