Complex Numbers & Functions
- Supports Complex Numbers and Functions relating to Complex Numbers
Complex Numbers:
Complex Numbers are numbers that have both a real and imaginary part i. They are represented as a + bi where a is the real part and b is the imaginary part. i is the imaginary unit, where i^2 = -1.
Complex Numbers are supported by the struct Complex in the numerlib::Complex module. To create a new Complex Number, use the new() function.
Parameters:
real: The real part of the Complex Number, represented by af64value.imag: The imaginary part of the Complex Number, represented by af64value.
Returns:
A new Complex Number, with the complex type.
Equation:
\[ a + bi \]
Example:
use numerilib::Complex;
fn main() {
let z = Complex::new(1.0, 2.0);
println!("Complex Number z: {}", z);
}
Executes as:
>>> Complex Number z: 1+2i
Returning Parts of a Complex Number:
Inorder to return the real or imaginary part of a Complex Number, use the .real_part() or imag_part() functions.
Parameters:
&self: The Complex Number to return the real or imaginary part of.
Returns:
The real or imaginary part of the Complex Number, represented by a f64 value.
Returning Real Value Example:
use numerilib::Complex;
fn main() {
let z = Complex::new(1.0, 2.0);
let real = z.real_part();
println!("Real Part of z: {}", real);
}
Executes as:
>>> Real Part of z: 1
Returning Imaginary Value Example:
use numerilib::Complex;
fn main() {
let z = Complex::new(1.0, 2.0);
let imag = z.imag_part();
println!("Imaginary Part of z: {}", imag);
}
Executes as:
>>> Imaginary Part of z: 2
The Magnitude of a Complex Number:
The Magnitude of a Complex Number is the distance from the origin to the Complex Number. It is represented by the absolute value of the Complex Number.
Parameters:
&self: The Complex Number to return the magnitude of.
Returns:
The magnitude of the Complex Number, represented by a f64 value.
Equation:
\[ \left| z \right| = \sqrt{a^2 + b^2} \]
Example:
use numerilib::Complex;
fn main() {
let z = Complex::new(1.0, 2.0);
let magnitude = z.magnitude();
println!("Magnitude of z: {}", magnitude);
}
Executes as:
>>> Magnitude of z: 2.23606797749979 // √5
Complex Arithmetic:
Complex Arithmetic is supported by the Complex struct in the numerilib::Complex module. One Quick Notice: Complex Arithmetic can only be done by using operations in the Complex type.
Addition Example:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let b = Complex::new(1.0, 4.0);
let sum = a + b;
println!("Sum of 3+2i + 1+4i = {}", sum);
}
Executes as:
>>> Sum of 3+2i + 1+4i = 4+6i
Subtraction Example:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let b = Complex::new(1.0, 4.0);
let difference = a - b;
println!("Difference of 3+2i - 1+4i = {}", difference);
}
Executes as:
>>> Difference of 3+2i - 1+4i = 2-2i
Multiplication Example:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let b = Complex::new(1.0, 4.0);
let product = a * b;
println!("Product of 3+2i * 1+4i = {}", product);
}
Executes as:
>>> Product of 3+2i * 1+4i = -5+14i
Division Example:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let b = Complex::new(1.0, 4.0);
let quotient = a / b;
println!("Quotient of 3+2i / 1+4i = {}", quotient);
}
Executes as:
>>> Quotient of 3+2i / 1+4i = 0.5-0.5i
Power Raised to a i32:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let power = a.powi(2);
println!("Power of 3+2i ^ 2 = {}", power);
}
Executes as:
>>> Power of 3+2i ^ 2 = 5+11.999999999999998i
Power Raised to a f64:
use numerilib::Complex;
fn main() {
let a = Complex::new(3.0, 2.0);
let power = a.powf(2_f64);
println!("Power of 3+2i ^ 2 = {}", power);
}
Executes as:
>>> Power of 3+2i ^ 2 = 5+11.999999999999998i