방정식에서 항을 추출한 다음 각각을 0으로 설정하는 방법은 무엇입니까?

Aug 20 2020

긴 방정식이 있습니다.

equ = 4576.66 a[1] Cos[t] + 3.3877 a[1]^3 Cos[t]^3 + 4576.65 a[2] Cos[2 t] + 10.1631 a[1]^2 a[2] Cos[t]^2 Cos[2 t] + 10.1631 a[1] a[2]^2 Cos[t] Cos[2 t]^2 + 3.3877 a[2]^3 Cos[2 t]^3 + 4576.63 a[3] Cos[3 t] + 10.1631 a[1]^2 a[3] Cos[t]^2 Cos[3 t] + 20.3262 a[1] a[2] a[3] Cos[t] Cos[2 t] Cos[3 t] + 10.1631 a[2]^2 a[3] Cos[2 t]^2 Cos[3 t] + 10.1631 a[1] a[3]^2 Cos[t] Cos[3 t]^2 + 10.1631 a[2] a[3]^2 Cos[2 t] Cos[3 t]^2 + 3.3877 a[3]^3 Cos[3 t]^3 - 0.415 a[1] Sin[t] - 0.83 a[2] Sin[2 t] - 1.245 a[3] Sin[3 t] == 2/625 Cos[theta] Cos[t w] - 2/625 Sin[theta] Sin[t w]

Sin[t]*Cos[t]^3은 작은 항이므로 0으로 취할 수 있습니다. 따라서 n의 거듭 제곱에 대한 sin [t] 및 cos [t]를 제거하려고합니다. 내 본능은 Cases그것을 달성하기 위해 사용 하는 것이지만 어떻게 만드는지는 모르겠습니다.

예를 들어, 유지 4576.66 a[1] Cos[t]하고 4576.65 a[2] Cos[2 t]싶지만 4576.65 a[2] Cos[2 t]및 설정 10.1631 a[1]^2 a[2] Cos[t]^2 Cos[2 t]합니다 0.

추가 정보

  1. 이외에도에서 Cos[t]^2Cos[2t]^3, Sin[t]*Cos[t]Sin[t]^2*Sin[2t]등은 제거되어야한다. , Sin[t] Sin[2t] Sin[3t]... Sin[n*t]Cos[t] Cos[2t] Cos[3t]... 만 Cos[n*t]남겨야합니다.

  2. 는 상수 Sin[theta] Sin[t w]이기 때문에 같은 용어 는 살아남 아야 Sin[theta]합니다.

솔루션 요약

다음 wolfram 언어 문법을 사용하여 예상 용어를 추출하십시오 _ h any expression with head h.. 패턴 및 변환 규칙을 참조하십시오.

답변

2 kglr Aug 20 2020 at 16:02
equ /. HoldPattern[ Power[_Cos | _Sin, _] | 
   Times[(Cos | Sin)[Except[theta]], (Cos | Sin)[Except[theta]], ___]] -> 0