Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: how find a relation between unknowns in this equation?please help me
Replies: 3   Last Post: May 8, 2013 8:43 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Nasser Abbasi

Posts: 5,689
Registered: 2/7/05
Re: how find a relation between unknowns in this equation?please
help me

Posted: May 8, 2013 7:49 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

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





Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.