Re: Solving periodic functions
- To: mathgroup at smc.vnet.net
- Subject: [mg74961] Re: Solving periodic functions
- From: "dimitris" <dimmechan at yahoo.com>
- Date: Fri, 13 Apr 2007 01:57:07 -0400 (EDT)
- References: <evkroh$o0k$1@smc.vnet.net>
It depends.
Symbolically or numerically?
Here I cover both approaches.
First you do a plot of your function in order to get an idea of it.
In[46]:=
f[x_] := 6*Cos[x] - 5*Cos[x]
In[51]:=
Plot[f[x], {x, -2*Pi, 2*Pi}, Frame -> {True, True, False, False}, Axes
-> {True, False},
FrameTicks -> {Range[-2*Pi, 2*Pi, Pi/2], Range[-1, 1, 0.5]}]
Numerically:
In[55]:=
<< "NumericalMath`IntervalRoots`" (*load a relevant package*)
In[57]:=
IntervalBisection[f[x], x, Interval[{-2*Pi, 2*Pi}], 0.05, MaxRecursion
-> 10]
List @@ %
(FindRoot[f[x], {x, #1[[1]], #1[[2]]}, WorkingPrecision -> 40] & ) /@
%
Out[57]=
Interval[{-4.761476365597028, -4.663301595172351},
{-1.619883712007237, -1.5217089415825569},
{1.5217089415825569, 1.619883712007237}, {4.663301595172351,
4=2E761476365597028}]
Out[58]=
{{-4.761476365597028, -4.663301595172351}, {-1.619883712007237,
-1.5217089415825569}, {1.5217089415825569, 1.619883712007237},
{4.663301595172351, 4.761476365597028}}
Out[59]=
{{x ->
-4.71238898038468985769396507491925432629575409906265835072`40.},
{x ->
-1.570796326794896619231321691639751442098584699687552896386`40.},
{x ->
1=2E570796326794896619231321691639751442098584699687552896386`40.},
{x ->
4=2E71238898038468985769396507491925432629575409906265835072`40.}}
In[60]:=
Information["IntervalBisection", LongForm -> False]
IntervalBisection[f, x, int, eps] uses the interval bisection method
to find \
subintervals of the given interval int of length less than eps
(possibly) \
containing roots of the expression f.
Symbolically:
In[72]:=
Reduce[f[x] == 0 && -2*Pi <= x <= 2*Pi, x, Reals]
N[%, 40]
Out[72]=
x == -((3*Pi)/2) || x == -(Pi/2) || x == Pi/2 || x == (3*Pi=
)/2
Out[73]=
x == -4.712388980384689857693965074919254326295754099062658731462`40.
||
x ==
-1.570796326794896619231321691639751442098584699687552910487`40. ||
x == 1.570796326794896619231321691639751442098584699687552910487`40.
||
x == 4.712388980384689857693965074919254326295754099062658731462`40.
Regards
Dimitris
=CF/=C7 David Rees =DD=E3=F1=E1=F8=E5:
> This is probably totally elementary, but I'm stumped nonetheless.
>
> Anyway, in Mathematica, how do I solve an equation with multiple periodic
> functions within a given function domain bound?
>
> i.e. How would I find all values of x given 6Cos[x]-5Cos[x] = 0 where
> 0<x<=2Pi ?
>
> thanks