last day (15 days later) » 

9:23 PM
0
Q: Solution of transcendental equation

sreeraj tLet me come straight to the point: I want to solve transcendental equation. Before down voting the question, I would like to say that I have checked most of the other questions and I haven't found any solutions (if there are any please let me know). My code goes like this: ClearAll["Global`*"] e...

 
With //Quiet you suppress any messages concerning the convergence of FindRoot. You can only compare convergent solutions, thereby you should be sure, that the solution is unique! Do you have any additional information about the solution (constraints, real or complex,...)?
parameter w seems to be a list of dimension 7 . You use "Secant" method (why?) with only one starting value in each dimension...
 
From my experience with dispersion relations, if you want to have for complex roots you have to initial guesses that are very close to the actual roots and then use Muller's method. The initial guesses are obtained usually using other methods like FEM.
 
@qahtah thanks for the suggestion. Have you anywhere encountered the solution to this problem? And if possible could share the code for it...
@UlrichNeumann My roots can be real in some k range complex n another...
 
@sreeraj t : What about w, is it a list (Length 7)? Why secantmethod?
 
@UlrichNeumann, as i mentioned in the question, i posed the similar problem in Mathematica community page and got this answer from there. I honestly don't know why it is there. And i believe that list of w should be a of should contain 7 values as this problem has 7 roots..
 
9:23 PM
@sreeraj t: So you expect from FindRoot to find 7 distinct(!) solutions, even though the startvalues aren't distinct?
 
My problem is totally different. I think the common thing is to use Muller's method after you try to come up with initial guesses. I used a very robust code of muller's : mathworks.com/matlabcentral/fileexchange/…
 
@UlrichNeumann, apparently yes. But i don't think that by changing the guess values it will be of that much use... i checked it...
 
I have doubts that the function Abs[ dispersion[wR + I wI, .1] ] posesses zeropoints. For example k=0.1 shows an empty region: RegionPlot [-1 < Abs[ dispersion[wR + I wI, .1] ] < 1, {wR, -5, 5}, {wI, -5, 5} , MaxRecursion -> 4]
 
@UlrichNeumann, what is 'Abs[ dispersion[wR + I wI, .1] ]' in your program? And also, a dounbt has been raised in my mind that Secant methos has only 3 guess values and hence can give only 3 roots, is it correct??? Though not told explicitly at mathworld.wolfram.com/SecantMethod.html i suspect about this is true.
 
@ sreeraj t: You try to solve dispersion[w , k=.1(* for example*)]==0 . I assume a complex function dispersion[] , if this function equals zero also the absolute value (` Abs[]`) is zero. The RegionPlot[...] should show the Region where the function changes sign.
@ sreeraj t: Your expectation concerning secant-method isn't correct. This method approximates the derivative of the function by the secant (throug two points). Normally FindRoot searchs one root of your equation...
 
9:23 PM
@UlrichNeumann, thanks for the clarification...
@qahtah, I was thinking about the link that you had suggested. But, any thought on how to convert my problem into their 'language'???
 
There is a package called mat2matlab that does the job.
 
@qahtah, i tried to search for mat2matlab package. But couldn't find it. Where can i find it? And by the by, i am using MATLAB 2015b...
 
Sorry, it is called Tomatlab. It is available in the link above.
 

last day (15 days later) »