|
Re: how find a relation between unknowns in this equation?please help me
Posted:
May 8, 2013 7:49 PM
|
|
On 5/8/2013 4:41 PM, ghasem wrote: > "ghasem " <shaban_sadeghi@yahoo.com> wrote in message <kmeg52$jkt$1@newscl01ah.mathworks.com>... >> Hi. >> I have a non-linear equation including bessel functions with complex argument,as following: >> >> my_equation=(w*sqrt(k^2-100)*besseli(1,sqrt(k^2- w))*besselk(0,sqrt(k^2-100))+... >> besselk(1,sqrt(k^2-100))*besseli(0,sqrt(k^2- w))); > ============== > I'm sorry,I forgot that tell above equation is =0.i.e: > I have equation of f(real(k),imag(k),w)=0; % f = my_equation > that: > my_equation=(w*sqrt(k^2-100)*besseli(1,sqrt(k^2- w))*besselk(0,sqrt(k^2-100))+... > besselk(1,sqrt(k^2-100))*besseli(0,sqrt(k^2- w))) =0 > please direct me... > thanks > ghasem >
I guess you have 4 options to solve your bessel function equation.
1) solve the real and the imaging parts as was talked about before and combine result.
2) use symbolic solve():
w=99; syms k; my_equation=(w*sqrt(k^2-100)*besseli(1,sqrt(k^2- w))*besselk(0,sqrt(k^2-100))+... besselk(1,sqrt(k^2-100))*besseli(0,sqrt(k^2- w))); solve(my_equation,k) - 0.00023072214491381421450643003838304 - 2.1259310417079225152113020224253*i
3) Use a computer algebra system that supports root finding with complex numbers:
---------------------------- Clear[a, b, k]; w = 99; r = Sqrt[k^2 - 100]; eq = w r BesselI[1, r] BesselK[0, r] + BesselK[1, r] BesselI[0, r]; FindRoot[eq == 0, {k, 0.01 + 2 I}] {k -> 0.000263968 + 1.87608 I}
FindRoot[eq == 0, {k, 0.01 + 2 I}]
FindRoot[eq == 0, {k, 100}] {k -> 7.1247 + 0.000100538 I}
FindRoot[eq == 0, {k, 99 + 200 I}] {k -> 9.99814 + 0.0014217 I} -------------------------
4) use a matlab toolbox that allows complex root finding such as Chebfun and others like it. You can search fileexchange on this topic.
good luck,
--Nasser
|
|