MathGroup Archive 2002

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

Search the Archive

FW: Re: To plot solutions, FindRoot as a function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37421] FW: [mg37353] Re: To plot solutions, FindRoot as a function
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sun, 27 Oct 2002 06:33:30 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

RE: [mg37353] Re: To plot solutions, FindRoot as a function
-----Original Message-----
From: DrBob [mailto:drbob at bigfoot.com]
To: mathgroup at smc.vnet.net
Subject: [mg37421] RE: [mg37353] Re: To plot solutions, FindRoot as a function


I was getting error messages, so I rewrote your solution this way: 

Series[a Tanh[b x] - x, {x, 0, 3}] // Normal 
x /. Solve[% == 0, x] 
start[a_, b_] = Last@% 
getSol[a_, b_] := Chop@x /. FindRoot[a Tanh[b x] == x, {x, start[a, b]}] 

Table[getSol[a, b], {a, 1, 2, .25}, {b, 1, 2, .25}]; 
ListDensityPlot[%] 
Plot3D[getSol[a, b], {a, 1, 2}, {b, 1, 2}] 

Of course, there's also a negative solution: 

Series[a Tanh[b x]/x - 1, {x, 0, 3}] // Normal 
x /. Solve[% == 0, x] 
start[a_, b_] = First@% 
getSol[a_, b_] := x /. FindRoot[a Tanh[b x] == x, {x, start[a, b]}] 

Table[getSol[a, b], {a, 1, 2, .25}, {b, 1, 2, .25}]; 
ListDensityPlot[%] 
Plot3D[getSol[a, b], {a, 1, 2}, {b, 1, 2}] 

I tried using the 5-th degree series instead, and got nowhere! 

DrBob 

-----Original Message----- 
From: Borut L [mailto:gollum at email.si] 
To: mathgroup at smc.vnet.net
Subject: [mg37421] [mg37353] Re: To plot solutions, FindRoot as a function 



Hi Veniamin, 

First, there is always a trivial solution, i.e. x = 0. 

You are probably interested in the additional one, yes?. Depending on 
the 
values of a and b, it exists in Reals or it doesn't. 

I would carefully avoid continuous analysis in such problems and looked 
for 
a discrete solution. You can always increase resolution. 

Here we go. 

getSol[a_,b_,x_]:=FindRoot[Evaluate[a Tanh[b x] == x], 
    {x,Sqrt[3 (a b-1)/(a b^3)]}] 

x/.Table[getSol[a,b,x],{a,1,2,.25},{b,1,2,.25}] 

ListDensityPlot[%] 

(* continuous :) *) 
Plot3D[Evaluate[x/.getSol[a,b,x]],{a,1,2},{b,1,2}] 



A note : You should check for the critical a and b, i.e. where the 
non-trivial solution vanishes. (e.g. a*b == 1). If you are thinking 
where 
I've got the initial value for FindRoot, think twice 

Series[a Tanh[b x],{x,0,3}]//Normal 






Hope that helps, 




Borut 




"Veniamin Abalmassov" <V.Abalmassov at unibas.ch> wrote in message 
news:ap861r$53e$1 at smc.vnet.net... 

| Hello, 
| 
| I'd like to plot the solution of an equation which depends on two 
| parameters, e.g. 
| 
| a*Tanh[b*x] == x 
| 
| So, I'd like to see it in 3D, one axis is "a", other is "b", and the 
last 
| is "solution". 
| 
| I've tried naively to do it as follows: 
| 
| sol[a_,b_]:=FindRoot[a*Tanh[b*x] == x, {x, {0.01, 0.1}}] 
| Plot[sol[a,b], {a, 1, 2}, {b, 1, 2}] 
| 
| And it doesn't work. Help me, please. What can I do? 
| 
| Thanks a lot, 
| 
| Veniamin 
| 
| 
| 
| 


  • Prev by Date: Re: Vector field with ImplicitPlot ?
  • Next by Date: Re: Re: Off by 0.00000001, Why?
  • Previous by thread: Re: To plot solutions, FindRoot as a function
  • Next by thread: Overlay ListDensityPlot and Value