Simplifying atan expressions
- Subject: Simplifying atan expressions
- From: Henry Baker
- Date: Mon, 20 Feb 2012 12:45:34 -0800
result=4*atan(1/5)-atan(1/239);
1 1
(%o1) result = 4 atan(-) - atan(---)
5 239
(%i2) lhs(%)=logcontract(logarc(rhs(%)));
4
(%i - 5) (%i + 239)
%i log(- --------------------)
4
(%i - 239) (%i + 5)
(%o2) result = ------------------------------
2
(%i3) %*2/%i;
4
(%i - 5) (%i + 239)
(%o3) - 2 %i result = log(- --------------------)
4
(%i - 239) (%i + 5)
(%i4) exp(lhs(%))=exp(rhs(%));
4
- 2 %i result (%i - 5) (%i + 239)
(%o4) %e = - --------------------
4
(%i - 239) (%i + 5)
(%i5) lhs(%)=rectform(rhs(%));
- 2 %i result
(%o5) %e = - %i
(%i6) log(lhs(%))=log(rhs(%));
(%o6) - 2 %i result = log(- %i)
(%i7) rectform(lhs(%))=rectform(rhs(%));
%i %pi
(%o7) - 2 %i result = - ------
2
(%i8) solve(%,result);
%pi
(%o8) [result = ---]
4
This example shows why rectform, log, exp, logcontract, logarc, etc., should distribute over "=".
At 11:20 AM 2/20/2012, Stavros Macrakis wrote:
>Consider the expression 4*atan(1/5)-atan(1/239) (Machin's formula).
>
>How can we use Maxima to simplify it to %pi/4?
>
>Well, here's one approach:
>
>atan(trigexpand(trigexpand(tan(ex))))
>
>And here's another way that doesn't depend on trig identities:
>
>(%i1) ex:4*atan(1/5)-atan(1/239);
>(%o1) 4*atan(1/5)-atan(1/239)
>(%i2) llex: logcontract(logarc(ex));
>(%o2) %i*log(-(%i-5)^4*(%i+239)/((%i-239)*(%i+5)^4))/2
>(%i3) rectform(llex);
>(%o3) (atan(sin(4*atan(1/5))/cos(4*atan(1/5)))-atan(sin(4*(%pi-atan(1/5)))/cos(4*(%pi-atan(1/5))))-2*atan(1/239))/2
> <<< oops, not so helpful
>(%i4) scanmap(rectform,llex,bottomup);
> <<< but reorganizing the rectform calculation gives a better result
> <<< makes me think that rectform could be improved...
>(%o4) %pi/4
>
>Are any of these techniques packaged into some analog of trigsimp?
>
> -s