Why is airy(3,1) complex? (No numerical round-off in the complex part)
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Why does Matlab return a complex number for airy(3,1)?
The result is a pure real, the imaginary part is identically zero (no numerical round off), yet the value is considered complex?
>> format long
>> y = airy(3,1)
y =
0.932435933392775
>> isreal(y)
ans =
0
>> format hex
>> imag(y)
ans =
0000000000000000
0 Kommentare
Antworten (3)
Wayne King
am 18 Sep. 2012
Bearbeitet: Wayne King
am 18 Sep. 2012
What release are you using?
>> format long
>> isreal(airy(3,1))
ans =
1
0 Kommentare
David Wilson
am 18 Sep. 2012
2 Kommentare
Wayne King
am 18 Sep. 2012
I've confirmed that behavior in R2012a, but it is fixed in R2012b, let me check the bug reports
Wayne King
am 18 Sep. 2012
I don't see it as a bug report David, but the behavior is fixed in 12b, airy(3,1) returns the scalar with attribute real
Matt Tearle
am 18 Sep. 2012
Looks like a bug in 12a. If you do
whos y
it shows the class as double (complex), so isreal is working properly, but how the heck it gets a complex y with 0 real part is a mystery to me. It looks like the problem is actually coming from besselmx, which airy calls:
z = besselmx(real('B'),1,1)
whos z
It's fixed in 12b, where airy is now a built-in.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Elementary Math finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!