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
- References:
- Solving integral equations numerically
- From: viehhaus <g.viehhauser1@physics.ox.ac.uk>
- Solving integral equations numerically