그냥 알려준 코드는 실행해도 답이 안나오는데,
여러번 자세히 지도해서 물어본 코드로는 답이 나옵니다. (모든 변수가 실수임을 지정하는게 중요한 듯 합니다)
import sympy as sp
import time
# 변수 정의, i 를 제외한 모든 변수가 실수임을 알림
es, er, ps, qs, delta, rr, xx = sp.symbols('es er ps qs delta rr xx', real=True)
i = sp.I
# 모든 변수 출력
print(es, er, ps, qs, delta, rr, xx)
print(i)
print('-' * 50)
left = (es * sp.exp(sp.I * delta) - er) / (rr + sp.I * xx)
right = (ps - sp.I * qs) / (es * sp.exp(-sp.I * delta))
print(f'left: {left}, right: {right}\n')
print('-' * 50)
real_part = sp.re(left - right)
imaginary_part = sp.im(left - right)
print(f'real part: {real_part}')
print('imaginary part: ', imaginary_part)
print('-' * 50)
start_time = time.time()
solution = sp.solve((real_part,imaginary_part),(xx,rr))
end_time = time.time()
solution_xx, solution_rr = solution[0]
print(f'solution of xx= {solution_xx},\n solution of rr= {solution_rr}')
print('-' * 50)
print(f'Time taken to find solution: {end_time - start_time} seconds')
C:/Python311/python.exe c:/pip/test/solve_equations.py
es er ps qs delta rr xx
I
--------------------------------------------------
left: (-er + es*exp(I*delta))/(rr + I*xx), right: (ps - I*qs)*exp(I*delta)/es
--------------------------------------------------
real part: es*xx*sin(delta)/(rr**2 + xx**2) + rr*(-er + es*cos(delta))/(rr**2 + xx**2) - ps*cos(delta)/es - qs*sin(delta)/es
imaginary part: es*rr*sin(delta)/(rr**2 + xx**2) - xx*(-er + es*cos(delta))/(rr**2 + xx**2) - ps*sin(delta)/es + qs*cos(delta)/es
--------------------------------------------------
solution of xx= es*(er*ps*sin(delta) - er*qs*cos(delta) + es*qs)/(ps**2 + qs**2),
solution of rr= es*(-er*ps*cos(delta) - er*qs*sin(delta) + es*ps)/(ps**2 + qs**2)
--------------------------------------------------
Time taken to find solution: 3.6123950481414795 seconds
Solution을 수식으로 표현하면
Ti-nspire CX CAS 와 비교하면
xx, rr 값은 똑같고,
≠0 조건을 표시하는건 TI-nspire 가 좋네요.
시간은 파이썬쪽이 (nspire PC Software에 비해) 훨씬 빠르게 나왔습니다.
* 아무래도 계산기를 에뮬레이팅 하는 쪽이 불리하겠죠.
CX II 에는 파이선 코드 작성이 가능한 걸로 아는데,
CX II 파이선에서도 위 코드가 동일하게 작동할지 모르겠지만,
작동할 경우에 속도 차이가 어떨지 궁금합니다.
=> 찾아보니 기본 python 은 매우 가벼운 모델이고, sympy 같은 모듈은 없을 것 같습니다.
그리고, ndless 가 아니면 추가 모듈 설치는 안된다고 하네요.
Chatgpt-3.5 에게 물어보니
파이선 코드를 이용한 풀이만 알려주고,
직접 계산은 어렵다고 하네요.
그냥 알려준 코드는 실행해도 답이 안나오는데,
여러번 자세히 지도해서 물어본 코드로는 답이 나옵니다. (모든 변수가 실수임을 지정하는게 중요한 듯 합니다)
Solution을 수식으로 표현하면
Ti-nspire CX CAS 와 비교하면
xx, rr 값은 똑같고,
≠0 조건을 표시하는건 TI-nspire 가 좋네요.
시간은 파이썬쪽이 (nspire PC Software에 비해) 훨씬 빠르게 나왔습니다.
* 아무래도 계산기를 에뮬레이팅 하는 쪽이 불리하겠죠.
CX II 에는 파이선 코드 작성이 가능한 걸로 아는데,
CX II 파이선에서도 위 코드가 동일하게 작동할지 모르겠지만,
작동할 경우에 속도 차이가 어떨지 궁금합니다.
=> 찾아보니 기본 python 은 매우 가벼운 모델이고, sympy 같은 모듈은 없을 것 같습니다.
그리고, ndless 가 아니면 추가 모듈 설치는 안된다고 하네요.