0
$\begingroup$

When I try to solve the non-homogeneous differential equation

DSolve[ y''[x] + y[x] == a Cos[2x] + b Cos[x] + c Cos[2x-3]+ d Cos[2x]^2- 6d Cos[2x]+9d + e Cos[x]^2+ fCos[x] Cos[3x]+h Cos[x]^2 Cos[2x-3] +i cos[x]^4, y[x], x] 

I get a solution with squares of $\sin x$ and $\cos x$. I want to remove all the $\sin x$ terms from the solution and want to express the solution in terms of $\cos 2 x$ and $\cos 4x$.

So what should be the input that will give the result that I want?

$\endgroup$
3
  • $\begingroup$ Note that you have 2 typos: fCos and i cos. If you fix that and Simplify, I think you get what you want (else look at TrigReduce), I hope that helps $\endgroup$ Commented Mar 22, 2013 at 17:25
  • $\begingroup$ Can't I ignore $\sin x$ by Mathematica and express in terms of cos 2x and cos4x? I'm saying this because I have to do lots of maths like this. $\endgroup$ Commented Mar 22, 2013 at 17:32
  • $\begingroup$ ah sorry misread, I thought you wanted to replace the squares only. $\endgroup$ Commented Mar 22, 2013 at 17:38

2 Answers 2

2
$\begingroup$

Borrowing a page from the documentation, the simplest way is to create a ComplexityFunction that makes Sin more expensive, as follows:

solns = DSolve[y''[x] + y[x] == a Cos[2 x] + b Cos[x] + c Cos[2 x - 3] + d Cos[2 x]^2 - 6 d Cos[2 x] + 9 d + e Cos[x]^2 + f Cos[x] Cos[3 x] + h Cos[x]^2 Cos[2 x - 3] + i Cos[x]^4, y[x], x]; cfcn[e_] := 100 Count[e, _Sin, {0, Infinity}] + LeafCount[e] simp = Simplify[ solns, ComplexityFunction -> cfcn ] (* {{y[x] -> 1/120 (1140 d + 60 e + 45 i + 30 h Cos[3] - 2 h Cos[3 - 4 x] - 20 (2 c + h) Cos[3 - 2 x] + 60 b Cos[x] + 120 C[1] Cos[x] - 40 a Cos[2 x] + 240 d Cos[2 x] - 20 e Cos[2 x] - 20 f Cos[2 x] - 20 i Cos[2 x] - 4 d Cos[4 x] - 4 f Cos[4 x] - i Cos[4 x] + 60 b x Sin[x] + 120 C[2] Sin[x])}} *) 

Note: it can't get rid of all of the Sin terms, but it got rid of most. Also, further tidying up can be done by using Collect:

Collect[ simp, {Sin[_], Cos[_]}] (* {{y[x] -> 1/120 (1140 d + 60 e + 45 i) + 1/4 h Cos[3] - 1/60 h Cos[3 - 4 x] - 1/6 (2 c + h) Cos[3 - 2 x] + 1/120 (60 b + 120 C[1]) Cos[x] + 1/120 (-40 a + 240 d - 20 e - 20 f - 20 i) Cos[2 x] + 1/120 (-4 d - 4 f - i) Cos[4 x] + 1/120 (60 b x + 120 C[2]) Sin[x]}} *) 
$\endgroup$
1
$\begingroup$

If you really want to remove all Sin[x] terms, you could do the simplification with a substituted variable $a \equiv \cos(x)$, following the general approach in this answer:

solns = DSolve[ y''[x] + y[x] == a Cos[2 x] + b Cos[x] + c Cos[2 x - 3] + d Cos[2 x]^2 - 6 d Cos[2 x] + 9 d + e Cos[x]^2 + f Cos[x] Cos[3 x] + h Cos[x]^2 Cos[2 x - 3] + i Cos[x]^4, y[x], x]; Simplify[solns[[1, 1, 2]] /. x -> ArcCos[a]] /. a -> Cos[x] 

eqn

Here, the Cos[x] is restored only after the simplification has already been done on an expression in which a was substituted for Cos[x], thus making Sin[x] more expensive automatically, without the need for a modified ComplexityFunction.

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.