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 allMATLAB은 부등식에 있는 복소수를 실수축으로 투영합니다.
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에 개발됨