Message Boards Message Boards

GROUPS:

Sum of first n roots for a function?

Posted 5 months ago
846 Views
|
6 Replies
|
0 Total Likes
|

I have a function: y = x * e^(-m) and m is described by this equation: 1/m - m/2 - cot(m) = 0. It has infinite roots How can I find a sum for the first n roots of equation in my function and plot this? y = Sum(x * e^(-m)) from 0 to n. For the first 3 roots: y = x * e^(-m1) + x * e^(-m2) + x * e^(-m3)

6 Replies
Posted 5 months ago

You could also make f a function of x and t.

ClearAll@f
f[x_, t_] := 
 2*(Power[#, 2]*BesselJ[5/2, #] - 2*#*BesselJ[7/2, #] + 
       2*BesselJ[9/2, #])*Exp[-Power[#, 2]*t*Power[1, 2]]*
     BesselJ[3/2, #*x]*
     Cos[0]/(Power[BesselJ[5/2, #], 2]*Power[#, 3]*Sqrt[x]) & /@ 
   zeros // Total

Manipulate[Plot[f[x, t], {x, 0, 10}], {t, 10^ Range[-4, -1]}]

enter image description here

What exactly do you mean? And what is t in your function f[ x ]?

This at least give a plot:

zeros = {5.940369990572713`, 9.205840142936665`, 12.404445021901974`, 
  21.899696479493013`, 18.742645584774756`, 21.89969647949278`, 
  25.05282528099297`, 28.203361003952356`};
t = 1;
f[x_] := 
 2*(Power[#, 2]*BesselJ[5/2, #] - 2*#*BesselJ[7/2, #] + 
       2*BesselJ[9/2, #])*Exp[-Power[#, 2]*t*Power[1, 2]]*
     BesselJ[3/2, #*x]*
     Cos[0]/(Power[BesselJ[5/2, #], 2]*Power[#, 3]*Sqrt[x]) & /@ 
   zeros // Total
Plot[f[x], {x, 0, 1}]
Posted 5 months ago

I have more complex function, but am I right?

zeros = m /. 
    FindInstance[1/m - m/2 - Cot[m] == 0 && 0 <= m <= 30, m, Reals, 
     10] // N // Sort
f[x_] = 2*(Power[#, 2]*BesselJ[5/2, #] - 2*#*BesselJ[7/2, #] + 
       2*BesselJ[9/2, #])*Exp[-Power[#, 2]*t * Power[1, 2]]*
     BesselJ[3/2, #*x]*
     Cos[0]/(Power[BesselJ[5/2, #], 2]*Power[#, 3]*Sqrt[x]) & /@ 
   zeros // Total
Plot[f[x], {x, 0, 1}]
Posted 5 months ago

And now I want to use this zeros in building graph y(x) but I don't know how. I mean not writing it into function by myself, but with Wolfram.

Posted 5 months ago

I think Hans missed the first zero. Another way using FindInstance

zeros = m /. 
    FindInstance[1/m - m/2 - Cot[m] == 0 && 0 <= m <= 30, m, Reals, 10] // N // Sort
(* {2.08158, 5.94037, 9.20584, 12.4044, 15.5792, 18.7426, 21.8997, 25.0528, 28.2034} *)

x Exp[-#] & /@ zeros // Total
(* 0.127469 x *)

Is it this what you want?

p1 = Plot[1/m - m/2 - Cot[m], {m, 1, 30}]

here you can (by GetCoordinates) get some approximate values of zeroes

prox = {{5.692, 
   0.1677}, {8.554, -2.711}, {12.01, -4.356}, {14.62, -6.207}, \
{17.98, -8.057}, {21.18, -9.496}, {24.21, -11.14}, {27.5, -12.79}}

Use this to find the (approx) zeros

prox1 = Transpose[prox][[1]]
zeros = FindRoot[1/m - m/2 - Cot[m] == 0, {m, #}] & /@ prox1

Then

zeros1 = zeros /. {m -> x_} -> x
u=x Exp[-#] & /@ zeros1
u1=u // Total
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract