Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Solving integral equations numerically

  • To: mathgroup at smc.vnet.net
  • Subject: [mg100056] Re: [mg99982] Solving integral equations numerically
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Fri, 22 May 2009 01:49:22 -0400 (EDT)
  • References: <200905210405.AAA09649@smc.vnet.net>
  • Reply-to: drmajorbob at bigfoot.com

To have a CHANCE of success, you need to define functions properly, so  
that FindRoot has something to work with.

For instance:

nodes = 11; (*number of nodes*)
RCOM = 2.17 ;(*common resistance*)
RS0 = 0.1 ;(*off-sensor resistance for sensor*)
RS = 1.1 ;(*sensor resistance pre node*)
Ph = 6 ;(*hybrid power in W*)
tcool = -25; (*coolant temperature \
(degC)*)
ta = 1.2/2/0.0000862; (*activation temperature (K)*)
l =
  63.56/1000;(*length of thermal path*)
w =
  128.05/1000;(*width of thermal path*)
T0 = 273 + tcool + Ph*RCOM;

Clear[T]
T[Tlo_] = 4/3*(Tlo - T0^2/ta)*(x^2/l^2 - 2*x/l) + Tlo ;

Clear[I1, I2, nint]
nint[Tlo_?NumericQ, upper_?NumericQ] :=
  NIntegrate[T[Tlo]^2*Exp[-ta/T[Tlo]]*x, {x, 0, upper}]
I1[qref_?NumericQ, Tlo_?NumericQ] := (RCOM + RS0)*w*qref*
   Exp[ta/273]/273^2*nint[Tlo, 1]
I2[qref_?NumericQ, Tlo_?NumericQ] := (RS/l)*w*qref*Exp[ta/273]/273^2*
   nint[Tlo, 1/2]

FindRoot[{Tlo == T0 + I1[qref, Tlo],
   T0^2/ta == Tlo + I2[qref, Tlo]}, {{Tlo, 270}, {qref, 300}}]

Unfortunately, FindRoot still fails... because the functions "blow up" to  
unreasonable values.

You need a better starting point, better understanding of the functions,  
or something.

Bobby

On Wed, 20 May 2009 23:05:08 -0500, viehhaus  
<g.viehhauser1 at physics.ox.ac.uk> wrote:

> Hi,
>
> I'm trying to solve a set of two integral equations, which don't have an  
> analytic solution, so I'm using NIntegrate and FindRoot
>
> nodes = 11 (*number of nodes*)
> RCOM = 2.17 (* common resistance *)
> RS0 = 0.1 (*off-sensor resistance for sensor*)
> RS = 1.1 (*sensor resistance pre node*)
> Ph = 6 (*hybrid power in W*)
> tcool = -25 (*coolant temperature (degC) *)
> ta = 1.2/2/0.0000862 (*activation temperature (K) *)
> l = 63.56/1000(*length of thermal path*)
> w = 128.05/1000(*width of thermal path*)
> T0 = 273 + tcool + Ph*RCOM
> T = 4/3*(Tlo - T0^2/ta)*(x^2/l^2 - 2*x/l) + Tlo (*parabolic temperature  
> function  in sensor*)
> I1 = (RCOM + RS0)*w*qref*Exp[ta/273]/273^2*NIntegrate[T^2*Exp[-ta/T],  
> {x, 0, l}]
> I2 = (RS/l)*w*qref*Exp[ta/273]/273^2*NIntegrate[T^2*Exp[-ta/T]*x, {x, 0,  
> l/2}]
> FindRoot[{Tlo == T0 + I1, T0^2/ta == Tlo + I2}, {{Tlo, 270}, {qref,  
> 300}}]
>
> but I get errors like "... has evaluated to non-numerical values for all  
> sampling points in the region with boundaries {{0,0.06356}}..." and  
> FindRoot does not move. Any idea what I'm doing wrong?
>
> Cheers, Georg
>



-- 
DrMajorBob at bigfoot.com


  • Prev by Date: Re: Re: Wolfram|Alpha Lookup Tool for Mathematica
  • Next by Date: Re: Wolfram|Alpha Lookup Tool for Mathematica
  • Previous by thread: Re: Solving integral equations numerically
  • Next by thread: Re: Solving integral equations numerically