On 5/2/2013 6:59 PM, ghasem wrote: > hi. > I want to find all of zeros following equation: > t0*besseli(1,t1) * besselk(0,t0) + t1 * besselk(1 ,t0) * besseli(0,t1) > = 0 > where: > k0 is real constant and known. > t0 and t1 are in terms of k: > t1 = sqrt(k^2-?r*k0^2) t0 = sqrt(k^2-k0^2) k is unknown complex number > ( k = k1 +j k2 ) > besseli and besselk are modified bessel functions of first and second > type. > in above equation,only unknown is k . > now, i want to find zeros of above equation,i.e find " k " values. > by using of solve command only one of the zeros are found. > i can not use from fzero command,because I don't have any guess point > that is imaginary(k) = k2 =0. > > i don't know how find all of zeros in this equation. > this equation is a dispersion relation. > is there someone who help me? > ghasem
You can use fsolve from Optimization Toolbox. Take the real and complex parts of everything in sight so that the arguments are (k1,k2) and the result is (freal,fcomplex), where f is the value of the left-had side of your equation. Start fsolve at a whole lot of different points and gather the solutions.
Alan Weiss MATLAB mathematical toolbox documentation