六 STL的數值計算 複數運算

2021-08-07 01:37:22 字數 2401 閱讀 8774

stl 的數值運算:

複數是由實部和虛部組成的數值。

虛部的特點是: 其平方值為負數,即複數虛部的帶著i,i是-1的平方根

類complex定義與中,

類定義:

template< class

t >

class

complex;

stl還提供了,float,double,long double的特殊版本。

1.建構函式

複數有兩個建構函式

函式宣告:

complex( const t& re = t(), const t& im = t() );

complex( const

complex& rhs );

說明:

1. 第一種形式利用引數re,和im確定複數物件

2. 第二種形式利用原有的複數物件

例子:

complexc1(1.5,2.5);//第一種形式

complex c2(c1); //第二種形式

//real

t real() const; (1)

void

real( t value ); (2)

第一種: 返回實部

第二種:設定實部

//img

t imag() const; (1)

void imag( t value ); (2)

第一種: 返回虛部

第二種:設定虛部

成員函式:

非成員函式:

複數可以進行其他簡單運算,如

- 絕對值函式: abs()

- 絕對值的平方: norm()

- 複數的相位 : arg

- 輸入與輸出:

- 共軛函式: conj

- 極座標函式 : polar

1.絕對值函式(abs)

函式原型:

template

< class t >

t abs( const

complex

& z );

複數的絕對值計算公式:

(實部的平方 + 虛部的平方)的平方根

2.絕對值的平方(norm)

函式原型

template

< class t >

t norm( const

complex

& z );

複數的絕對值的平方計算公式:

(實部的平方 + 虛部的平方)

3.複數的相位(arg)

函式原型為:

template

< class t >

t arg( const

complex

& z );

(1). 返回值:若無錯誤發生,則返回 z 在區間 (−π; π) 內的輻角。返回的單位是弧度。是複數的極座標形式的相位角。

4.輸出和輸入

operator

<<

operator>> : 複數的序列化和反序列化

5.共軛函式(conj)

函式原型:

template

< class t >

complex

conj( const

complex

& z );

產生並返回乙個複數。共軛複數是指實部相同,虛部與原複數的虛部互相反。

6.極座標函式(polar)

函式原型:

template

< class t >

complex

polar( const t& rho, const t& theta = 0 );

說明:

1. rho: 級

2. theta: 角

【沒搞懂】

複數的超越函式一般指的是三角函式和指數函式

三角函式:

雙曲函式:

指數函式:

- exp(std::complex) :以 e為底複數的指數

- log(std::complex) :沿負實軸割線的複數的自然對數

- log10(std::complex) :沿負實軸割線的複數的常用對數

冪函式:

- pow(std::complex) :複數的冪,兩個引數或其一可能是複數

- sqrt(std::complex) :右半側平面範圍內的複數平方根

數值計算中矩陣運算

1.矩陣運算最簡單的方法是使用matlib,因為在matlib中,矩陣是基本的資料型別,其語法與數 算基本一致,所以適合新手入手,但matlib也有很多不足之處。比如軟體比較龐大,收費,以及效率等問題。2.使用python的numpy庫,幾乎能代替matlib,但是程式的除錯難度上公升了一些,花的時...

bash的數值運算

在shell中,變數的預設型別是字串型別,而字串型別是不能進行數值運算的,所以shell提供了兩種方式來實現數值運算。1.用declare命令顯式地宣告變數的型別。2.用expr let數值運算工具或著特殊書寫格式來完成shell中的數值運算。一 declare命令介紹 目的 顯式地宣告變數的型別 ...

Problem C 複數的計算

自定義乙個複數的類complex,並過載運算子 使 之能用於複數的加法運算。參加運算的兩個運算量可以都是類的物件,也可以其中乙個是整數,順序隨意。例如 c1 c2,i c1均合法 i為整數,c1,c2為複數 編寫程式,分別求兩個複數之和 整數和複數之和。input 先輸入乙個數字a,表示有a組資料。...