newbie, solving an equation numerically



Try mnewton,

%o12;
                                     1000000 t
                                     ---------
                                        33
                                297 E          - 330
(%o26)                     t = --------------------
                                      10000000
(%i27) mnewton([first(%o12) - second(%o12)],[t],[0]);
(%o27)                  [[t = - 1.2924737663022043E-5]]
(%i28)

-sen


On Thu, 30 Nov 2006, Daniel Lakeland wrote:

> On Thu, Nov 30, 2006 at 09:42:17PM +0100, Hugo Coolens wrote:
>> Is find_root a separate package? Where can I find it?
>>
>> I'll try it out on my system and tell you what the result is
>
> find_root is standard as of fairly recently. It used to be called
> "interpolate" but that was deemed confusing so it was renamed about a
> year ago I think. It's in the docs. It does a binary search followed
> by newton's method when it gets close enough.
>
> However, it seems to have a bug of sorts. Does anyone else see the
> behavior that I see? I confirmed it at home on linux as well as on
> windows at work.
>
> -----Transcript------
>
> Maxima 5.10.0 http://maxima.sourceforge.net
> Using Lisp GNU Common Lisp (GCL) GCL 2.6.7 (aka GCL)
>
>
> (%i1) h1(s):=1/(1+tau[1]*s);
> h2(s):=1/(1+tau[2]*s);
> x(s):=1/s;
> tau[1]:33e-6;
> tau[2]:33e-6;
> eqn:first(solve(ilt(h1(s)*h2(s)*x(s),s,t)=0.1,t));
> 					   1
> (%o1) 			      h1(s) := ----------
> 				       1 + tau  s
> 					      1
> (%i2) 					   1
> (%o2) 			      h2(s) := ----------
> 				       1 + tau  s
> 					      2
> (%i3) 					   1
> (%o3) 				   x(s) := -
> 					   s
> (%i4) (%o4) 			     3.2999999999999996E-5
> (%i5) (%o5) 			     3.2999999999999996E-5
> (%i6)
> `rat' replaced 3.2999999999999996E-5 by 33//1000000 = 3.3000000000000003E-5
>
> `rat' replaced 0.9 by 9//10 = 0.9
> 				     1000000 t
> 				     ---------
> 					33
> 			       297 %e	       - 330
> (%o6) 			   t = ---------------------
> 				     10000000
> (%i7) find_root(%,t,0,2);
>
> Maxima encountered a Lisp error:
>
> Error in MACSYMA-TOP-LEVEL [or a callee]: ((MEQUAL SIMP) $T
>                                            ((MTIMES SIMP)
>                                             ((RAT SIMP) 1 10000000)
>                                             ((MPLUS SIMP) -330
>                                              ((MTIMES SIMP) 297
>                                               ((MEXPT SIMP) $%E
>                                                ((MTIMES SIMP)
>                                                 ((RAT SIMP) 1000000
>                                                  33)
>                                                 $T)))))) is not of type (OR
>                                                                          RATIONAL
>                                                                          LISP:FLOAT).
>
> Automatically continuing.
> To reenable the Lisp debugger set *debugger-hook* to nil.
> (%i8)
>
>

-- 
  ---------------------------------------------------------------------------
  | Sheldon E. Newhouse            |    e-mail: sen1 at math.msu.edu           |
  | Mathematics Department         |       				   |
  | Michigan State University      | telephone: 517-355-9684                |
  | E. Lansing, MI 48824-1027 USA  |       FAX: 517-432-1562                |
  ---------------------------------------------------------------------------