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