- TI nspire
[TI-nspire CAS] Function - cSolve : 복소수 해 찾기

1. cSolve 란?
- cSolve 는 '복소수가 포함된 수식'이나 '복소수가 해인 수식'의 해를 찾는 함수입니다.
- 찾아진 해는 실수꼴일 수도 있고, 실수꼴이 아닐 수도 있습니다.
- cSolve 는 도메인이 real 로 설정된 상태이더라도, 일시적으로 도메인을 복소수로 지정합니다.
하지만, 복소수를 취급하실거면 rectangular 든 polar든 선택하시는 것이 좋습니다.
2. 사용 예 1 (방정식, 부등식)
- cSolve(Equation, Var) ⇒ Boolean expression
- cSolve(Equation, Var=Guess) ⇒ Boolean expression
- cSolve(Inequality, Var) ⇒ Boolean expression
3. 사용 예 2 (연립 방정식)
- cSolve(Eqn1 and Eqn2 [and…], VarOrGuess1, VarOrGuess2 [, … ]) ⇒ Boolean expression
- cSolve(SystemOfEqns, VarOrGuess1, VarOrGuess2 [, …]) ⇒ Boolean expression
- 모든 방정식(Eqn)이 다항식(polynomials)이고, 어떠한 초기 추정값도 지정되지 않았다면, cSolve 는 모든 복소수 해를 결정하기 위해 lexical Gröbner/Buchberger elimination method 를 사용합니다.
- 어떠한 방정식(Eqn)이라도 어떠한 변수에 대해 다항식이 아니(non-polynomial)고, 어떠한 초기 추정값도 지정되지 않았으며, 모든 방정식이 모든 해 변수들에 대해 리니어(linear)하다면, cSolve 는 모든 해를 결정하기 위해 Gaussian elimination 을 사용합니다.
- 계산 소요 시간이나 메모리 사용량은 해로 적어놓은 변수의 순서(order)에 매우 크게 영향을 받습니다. 만약 (무한 루프 등) 인내력의 한계에 도달하게 된다면, 방정식 내의 변수들이나 해로 지정한 변수 리스트를 재조정해보시는 것도 좋습니다.
- 연립 방정식 시스템이 모든 변수들에 대해 다항식도 아니고 해 변수들이 리니어하지도 않(non-linear)다면, cSolve는 최적의 해 하나를 찾기 위해 approximate iterative method 를 사용합니다.
조건 1 : '해 변수의 갯수' = '방정식의 갯수'
조건 2 : 방정식 내 모든 변수들이 숫자로 간소화될 수 있어야 함.
4. 주의사항
- cSolve 는 TI-nspire (non-CAS) 에서는 사용할 수 없습니다.
- OS 버전에 따라 cSolve 결과가 다를 수도 있습니다.
- Setting 에서
가급적(x)반드시(!) Angle=Radian 으로 바꿔두세요.
Degree 등일 때는 "Error: Domain error" 내지 "false" 오류가 발생할 수 있습니다. - 결과값의 표시 방법은 Document Setting - Real or Complex Format 에 영향을 받습니다.

x-y 직교좌표일 때는 Rectangular 를 선택하시는 것을 추천드리고,
r-θ 극좌표일 때는 Polar를 선택하시면 됩니다. 이 때는 Deg / Rad 에 또 영향을 받습니다. - solve와 비교하면 계산 시간이 오래 걸릴 수 있고, 재수가 없으면 무한 루프에 빠지기도 합니다.
이러한 사태를 방지하기 위해서는 초기값을 넣어주시면 해결될 수 있습니다.
approx로 계산해서 해결되기도 합니다.
5. 상세 설명

- solve와 달리 csolve는 실수해/복소수해 모두를 찾아줍니다.
- (이 예제에서) 'Solve 해집합' ⊂ 'cSolve 해집합' 성립
- 분모가 홀수인 분수 지수꼴에서는 'Solve 해집합' ⊂ 'cSolve 해집합'이 아닐 수 있음.

- cSolve 는 우선적으로 exact symbolic method 를 사용하지만, 경우에 따라 (알아서) 반복 근사법을 사용하기도 합니다.

- (복소수 연립방정식에서) 간혹 무한 루프에 빠지는 경우가 있습니다. (모래시계)
- 이 때는 【on】 버튼을 길게 눌러 연산을 강제로 멈추게(break, "Calculation Interrupted") 할 수 있습니다.
http://www.allcalc.org/4619 - 아니면 명령시부터 【ctrl】【enter】 를 이용해 반복 근사법만 계산하도록 강제할 수도 있습니다.
이 때 결과값은 소숫점 형태(Decimal Form)로만 표현됩니다. - 아니면 변수에 초기 추정값을 지정하는 방법을 사용할 수도 있습니다.
추정값은 실수나 복소수 모두 가능합니다.

- 변수(var)끝에 밑줄(underscore)을 붙이면, 변수_(var_) 는 복소수로 취급됩니다.
- 복소수해를 가질 가능성이 있는 수식에서는 모든 다른 변수들에도 밑줄을 붙여주는 편이 좋습니다.
그렇지 않으면 기대하지 않은 결과값을 찾을 가능성이 있습니다.


- 연립방정식은 값이 없는 추가 변수(c_)를 포함할 수 있고, 이것은 나중에 숫자로 치환될 수 있습니다.

- 수식에는 없는 변수(w_) 를 포함하는 해
- 여기서 c 는 constants 의 약자입니다. (뒤에 붙는 숫자는 1~255까지 순차적으로 결정됩니다.)

- Gaussian elimination
- Approximate iterative method
- 복소수 해를 결정하기 위해서, 종종 복소수 초기 추정값이 필요합니다.
댓글2
-
세상의모든계산기
csolve 와 무한 루프
[TI-nspire] 계산기 먹통(=무한 루프=모래 시계=무한 로딩) 강제종료 방법
https://allcalc.org/4619

무한루프 회피하려면?
ㄴ 초기값 입력 or approx 계산 【ctrl】【enter】하면 되는데,
이 경우에는 approx 계산방법으로는 해결되지 않네요.
세상의모든계산기 님의 최근 댓글
Ctrl+Z 를 이용해 뒤로 돌아기기 Undo 기능이 있는지 살펴보세요. 2026 01.23 쌀집계산기로 연립방정식 계산하기 - 크래머/크레이머/크라메르 공식 적용 https://allcalc.org/56739 3. 'x' 값 구하기 계산기 조작법 목표: x = Dx / D = [(c×e) - (b×f)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 1 * 1 M+ : 메모리(M)에 1를 더합니다. (현재 M = 1) -0.1 * -0.2 M- : 메모리(M)에서 0.02를 뺍니다. (현재 M = 0.98 = 0.98) 이로써 메모리(MR)에는 분모 0.98가 저장됩니다. 2단계: 분자 Dx 계산 후 나누기 78000 * 1 : 78000를 계산합니다. = : GT에 더합니다. -0.1 * 200000 : -20000를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. // sign changer 버튼 사용 GT : GT를 불러옵니다. GT는 98000 (분자 Dx) 값입니다. ÷ MR = : 위 결과(98000)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 x값 100,000를 구합니다. 4. 'y' 값 구하기 계산기 조작법 목표: y = Dy / D = [(a×f) - (c×d)] / [(a×e) - (b×d)] 계산하기 1단계: 분모 D 계산 (메모리 활용) 'x'에서와 분모는 동일하고 메모리(MR)에 0.98가 저장되어 있으므로 패스합니다. 2단계: 분자 Dy 계산 후 나누기 GT ± = : GT를 불러오고 부호를 뒤집어 GT에 더합니다. GT가 0으로 리셋됩니다. 【AC】를 누르면 M은 유지되고 GT만 리셋되는 계산기도 있으니 확인해 보세요. 1 * 200000 : 200000를 계산합니다. = : GT에 더합니다. 78000 * -0.2 : -15600를 계산합니다. ± = : 부호를 뒤집어 GT에 넣습니다. GT : GT를 불러옵니다. 215600 (분자 Dy) 값입니다. ÷ MR = : 위 결과(215600)를 메모리(MR)에 저장된 분모 D(0.98)로 나누어 최종 y값 220,000를 구합니다. x, y 값을 이용해 최종 결과를 구합니다. 2026 01.18 크레이머 = 크레머 = 크라메르 공식 = Cramer's Rule https://allcalc.org/8985 2026 01.18 부호 변경, Sign Changer 버튼 https://allcalc.org/52092 2026 01.18 [fx-570 CW] 와의 차이 CW에 【×10x】버튼이 사라진 것은 아닌데, 버튼을 누를 때 [ES][EX] 처럼 특수기호 뭉치가 생성되는 것이 아니고, 【×】【1】【0】【xㅁ】 버튼이 차례로 눌린 효과가 발생됨. ※ 계산 우선순위 차이가 발생할 수 있으므로 주의. 괄호로 해결할 것! 2026 01.18