Question: Using fsolve for complicated functions

Hi

I have a complex function (i.e. f) with real values for real domain (real amounts of independent variable omega). If the previous calculations are conducted correctly, the minimum positive real root of mentioned function must be equal to 15.4182/sqrt(12). The formula of f is inserted as a plain text.

Formula.txt

The plot of f is depicted as follows:

It seems that the root is between 4 and 5. The command fsolve does not work.

fsolve(simplify(f),omega=4..5)

Also, the Newton iterative method is useless since the imaginary part exists.

f:=simplify(f):

x[1]:=4:

for i while or(i=10, abs(eval(f,omega=x[i]))<1E-3) do

x[i+1]:=x[i]-eval(f,omega=x[i])/eval(diff(f,omega),omega=x[i])

end do:

x[i];

Please propose a way to find first positive real root of above function.

Moreover, I sometimes see discordant results when I use plot command to seek an approximate range for fsolve. I have another function (i.e. f(x)) that fsolve gives the root x=4, which is true but the plot command shows that the root is not occurred at x=4.

 

Please Wait...