Search All of the Math Forum:

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

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: complicated equation including bessel functions
Replies: 22   Last Post: May 8, 2013 2:43 PM

 Search Thread: Advanced Search

 Messages: [ Previous | Next ]
 Steven Lord Posts: 18,038 Registered: 12/7/04
Re: complicated equation including bessel functions
Posted: May 8, 2013 1:15 PM
 Plain Text Reply

"ghasem " <shaban_sadeghi@yahoo.com> wrote in message
news:kmduru\$nov\$1@newscl01ah.mathworks.com...
>> Yes. Instead of trying to solve for a root of f(z) = besselj(1, z) [for
>> example] solve for solutions of f([x; y]) = [real(besselj(1, x+1i*y));
>> imag(besselj(1, x+1i*y))]
>>
>> function output = mysystem(inputs)
>> % The inputs are all purely real
>> realPartOfInput = inputs(1);
>> imagPartOfInput = inputs(2);
>>
>> % Build a complex number from the inputs
>> z = complex(realPartOfInput, imagPartOfInput);
>>
>> % Now you can work with the complex value z internally
>> complexOutput = besselj(1, z);
>>
>> % In order to return a value to FSOLVE, the outputs must be purely real
>> % Break the output into its parts
>> output = [real(complexOutput); imag(complexOutput)];
>>
>> Instead of having a system of one equation in one unknown you have a
>> system of two equations (the real and imaginary parts of the BESSEL
>> function) in two unknowns (the real and imaginary parts of z.)
>>
>> --
>> Steve Lord
>> slord@mathworks.com
>> To contact Technical Support use the Contact Us link on
>> http://www.mathworks.com

> ====================================
> Hi steve Lord.
> thank you for your attention.I know that.But when complex unknowns are
> within argument of bessel function,do you think by using of real and imag
> commands,we have a real and imag expression,really?

Yes.

> for example,suppose we have:
> syms a b % a,b are unknown

IF you want to operate symbolically you want to declare these as real.
Otherwise Symbolic Math Toolbox will assume that they could be complex, and
so:

> c = a+1j*b;

real(c) will be real(a)-imag(b).

If instead you told Symbolic Math Toolbox that a and b were real:

syms a b real % Use SYM instead inside a function
c = a+1j*b;
real(c) % returns a since b cannot contribute

But if you're trying to solve this symbolically, you should NOT be using
FSOLVE or FZERO. Those are for finding NUMERIC solutions to equations. The
SOLVE function solves equations SYMBOLICALLY. Don't mix the two. In this
case, trying to solve the system symbolically will probably take an
extremely long time and generate an incredibly large and complicated
expression (if it can be solved symbolically at all.) I recommend solving
the system numerically using the technique I described above.

> d = besseli(1,c);
> % now write real(d),we have:
> real(d) =
> conj(besseli(1, a + b*i))/2 + besseli(1, a + b*i)/2
> % now my question is:
> do you think that "conj(besseli(1, a + b*i))/2 + besseli(1, a + b*i)/2" is
> a purely real expression?
> I think that is not.
> So,we can not use from real and imag command to obtain purely real and
> imaginary expression,when we have complex argument in bessel functions...
> when use from real and imag commands in this case,again our equation is
> complex!
> are you agree with me?

See above about FSOLVE versus SOLVE. Either keep all your calculations
symbolic or keep all your calculations numeric. Mixing the two requires
additional care.

--
Steve Lord
slord@mathworks.com
To contact Technical Support use the Contact Us link on
http://www.mathworks.com

Date Subject Author
5/7/13 ghasem
5/8/13 ghasem
5/8/13 Torsten
5/8/13 Bruno Luong
5/8/13 Torsten
5/8/13 ghasem
5/8/13 Bruno Luong
5/8/13 ghasem
5/8/13 Nasser Abbasi
5/8/13 Bruno Luong
5/8/13 ghasem
5/8/13 Torsten
5/8/13 ghasem
5/8/13 Torsten
5/8/13 Bruno Luong
5/8/13 ghasem
5/8/13 Bruno Luong
5/8/13 ghasem
5/8/13 Steven Lord
5/8/13 ghasem
5/8/13 Steven Lord
5/8/13 ghasem
5/8/13 ghasem

© The Math Forum at NCTM 1994-2018. All Rights Reserved.