Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید



2.14. Using Complex Numbers


2.14.1. Problem




Your application must
manipulate complex numbers, as are often needed in engineering,
science, and mathematics.

2.14.2. Solution


Either keep track of the real and imaginary components yourself:

# $c = $a * $b manually
$c_real = ( $a_real * $b_real ) - ( $a_imaginary * $b_imaginary );
$c_imaginary = ( $a_real * $b_imaginary ) + ( $b_real * $a_imaginary );

or use the Math::Complex module (part of the standard Perl
distribution):

# $c = $a * $b using Math::Complex
use Math::Complex;
$c = $a * $b;

2.14.3. Discussion


Here's how you'd manually multiply 3+5i and
2-2i:

$a_real = 3; $a_imaginary = 5; # 3 + 5i;
$b_real = 2; $b_imaginary = -2; # 2 - 2i;
$c_real = ( $a_real * $b_real ) - ( $a_imaginary * $b_imaginary );
$c_imaginary = ( $a_real * $b_imaginary ) + ( $b_real * $a_imaginary );
print "c = ${c_real}+${c_imaginary}i\n";
c = 16+4i

and with Math::Complex:

use Math::Complex;
$a = Math::Complex->new(3,5); # or Math::Complex->new(3,5);
$b = Math::Complex->new(2,-2);
$c = $a * $b;
print "c = $c\n";
c = 16+4i

You may create complex numbers via the cplx
constructor or via the exported constant i:

use Math::Complex;
$c = cplx(3,5) * cplx(2,-2); # easier on the eye
$d = 3 + 4*i; # 3 + 4i
printf "sqrt($d) = %s\n", sqrt($d);
sqrt(3+4i) = 2+i

The
Math::Trig module uses the Math::Complex module internally because
some functions can break out from the real axis into the complex
plane—for example, the inverse sine of 2.

2.14.4. See Also


The documentation for the standard Math::Complex module (also in
Chapter 32 of Programming Perl)



2.13. Multiplying Matrices2.15. Converting Binary, Octal, and Hexadecimal Numbers




Copyright © 2003 O'Reilly & Associates. All rights reserved.

/ 875