I apologize for my unclear question, I will write it in a more detailed way.

I first define:

g[τ_, ϵ_] := c /. FindRoot[2.` c^4 - 1.6931471805599454` c^4 τ - 
0.8611473146305157` τ^2 + 
0.25` τ^2 Log[ϵ^(1/6)/c^(
  2/3)] + (1.` c^4 + 
   0.6732867951399863` τ) τ Log[τ] - 
0.125` τ^2 Log[τ]^2 - 
0.25` τ^2 Log[-0.6931471805599453` + Log[τ]], {c, 1000}]

The function I am trying to solve is as follows:

![I am still learning how to type equations here, in order not to cause to many problems for you guys to read. I use picture to express my equtions ]1

I can plot $\zeta_2 (r)$ in the region $1<r<\tau/2$ for different values of $a, \tau, \epsilon$, where $a>0$, $\tau>2$, $10^{-7}<\epsilon<10^{-2}$. what I need to do is to find the smallest value of r satisfying $\zeta_2(r)=0$. I use Findroot to do it. but it does not work well all the way through the parameter region.

The second question is that supposing we find the smallest value of $r$, which is $h[a,\tau,\epsilon]$, I need to do a integration, which is defined as:

w[a_, τ_, ϵ_] := Integrate[Evaluate[{Subscript[ζ, 2][r]^2} /. f[a, τ, ϵ]], {r, 1, h[a,τ, ϵ]}]

As a test, I choose $a=1, \tau=5, \epsilon=10^{-6}, h(a,\tau,\epsilon)=1.2$, but $w(1,5,10^{-6})$ does not return me a number. So how should I define $w$ to get a number?

The last question is if I have got the right definition of $w$, set the derivative $D[w,{a,1}]=0$, and find $a$ in terms of $\tau, \epsilon$. I am getting stocked by doing the derivative of functions. Thanks very much. By the way, I hope this time that Mr.Wizard won't wasting time on revising my writing. I am really sorry


I have never understood why WRI would not incorporate Ted Ersek's RootSearch routine into Mathematica. It is true that RootSearch is restricted to 1-dimensional roots along a path and FindRoot will handle multi-dimensional roots. Also many roots can be obtained by Solve or Reduce and probably various algebraic methods. But these are often not obvious to use. RootSearch is easy to use to find numerical roots, intuitive and it applies to many common problems. So here is an example. Since you haven't supplied us with an example I've made up one that should be good enough.

<< Ersek`RootSearch` 

f[x_] := Sin[100 x] + Cos[50 x] + x - 1.8`30
Plot[f[x], {x, 0, 1}]

enter image description here

roots = RootSearch[f[x] == 0, {x, 0, 1}, PrecisionGoal :> 25]
{{x -> 0.1342401536562234144657613}, 
 {x -> 0.1425470784657371848184752}, 
 {x -> 0.2576641634599237715747900}, 
 {x -> 0.2703039062616023447786570}, 
 {x -> 0.3816011520392444127374391}, 
 {x -> 0.3975359955533713429773951}, 
 {x -> 0.5057681048545612636327423}, 
 {x -> 0.5245246522191860737400116}, 
 {x -> 0.6300648404511711207196194}, 
 {x -> 0.6513679694342461184637879}, 
 {x -> 0.7544406174842106100577210}, 
 {x -> 0.7781141014717457963000968}, 
 {x -> 0.8788641445373034149609143}, 
 {x -> 0.9047910841068439265967640}}

Here we take the first root and check it.

f[x] /. First[roots]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.