#include "iostream" using namespace std; class Matrix { private: double** A; //矩陣A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //為向量b分配空間并初始化為0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //為向量A分配空間并初始化為0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析構中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"請輸入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"請輸入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"個:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分別求得U,L的第一行與第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分別求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"計算U得:"<<endl; U.Disp(); cout<<"計算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
標簽: 道理特分解法
上傳時間: 2018-05-20
上傳用戶:Aa123456789
《電子電氣工程師必知必會(第2版)》完整版作者:[美]Darren Ashby 翻譯:尹華杰出版社:人民郵電出版社簡介:本書從實際工作出發,總結了一名電氣工程師在日常工作中最為關鍵的知識點,從簡單的R,L.C元件到復雜的運放,微處理器/微控制器,數模/模數轉換器,電機,電源,再到元件的非理想性,電路的可靠性設計,仿真,焊接,以及電路和軟件的故障修理,文字幽默生動。此外本書還以較大篇幅介紹了作者作為研發部分的管理者,在人際溝通,管理方面的心得體會。本書即可供電氣信息類專業的師生作為參考,也適合電氣工程師閱讀。
標簽: 電子電氣工程師
上傳時間: 2022-07-16
上傳用戶:jason_vip1
術語和定義下列術語和定義適用于本標準。3.1 微波 Microwaves微波是電磁波按頻譜劃分的定義,是指波長從1m至0.1mm范圍內的電磁波, 其相應的頻率從0.3GHz至3000GHz。這段電磁頻譜包括分米波(頻率從0.3GHz至3GHz)\厘米波(頻率從3GHz至30GHz)\毫米波(頻率從30GHz至300GHz)和亞毫米波(頻率從300GHz至3000GHz,有些文獻中微波定義不含此段)四個波段(含上限,不含下限)。具有似光性、似聲性、穿透性、非電離性、信息性五大特點。3.2 射頻 RF(Radio Frequency)射頻是電磁波按應用劃分的定義,專指具有一定波長可用于無線電通信的電磁波。頻率范圍定義比較混亂,資料中有30MHz至3GHz, 也有300MHz至40GHz,與微波有重疊;另有一種按頻譜劃分的定義, 是指波長從1兆m至1m范圍內的電磁波, 其相應的頻率從30Hz至300MHz;射頻(RF)與微波的頻率界限比較模糊,并且隨著器件技術和設計方法的進步還有所變化。3.3 射頻 PCB 及其特點考慮PCB設計的特殊性,主要考慮PCB上傳輸線的電路模型。由于傳輸線采用集總參數電路模型和分布參數電路模型的分界線可認為是l/λ≥0.05.(其中,l是幾何長度; λ是工作波長).在本規范中定義射頻鏈路指傳輸線結構采用分布參數模型的模擬信號電路。PCB線長很少超過50cm,故最低考慮30MHz頻率的模擬信號即可;由于超過3G通常認為是純微波,可以考慮倒此為止;考慮生產工藝元件間距可達0.5mm,最高頻率也可考慮定在30GHz,感覺意義不大。綜上所述,可以考慮射頻PCB可以定義為具有頻率在30MHz至6GHz范圍模擬信號的PCB,但具體采用集總還是分布參數模型可根據公式確定。由于基片的介電常數比較高,電磁波的傳播速度比較慢,因此,比在空氣中傳播的波長要短,根據微波原理,微帶線對介質基片的要求:介質損耗小,在所需頻率和溫度范圍內,介電常數應恒定不變,熱傳導率和表面光潔度要高,和導體要有良好的沾附性等。對構成導體條帶的金屬材料要求:導電率高電阻溫度系數小,對基片要有良好的沾附性,易于焊接等。
上傳時間: 2022-07-22
上傳用戶:
程序清單A中收錄了產生PPM-TH和PAM-DS這兩個信號源的所有函數;程序清單B中收錄了加性高斯白噪聲(AWGN)信道建模,正交和非正交單脈沖PPM-TH接收機結構,以及反極性PAM-DS單脈沖接收機結構仿真所需的所有函數。
上傳時間: 2013-12-22
上傳用戶:hwl453472107
非均勻有理b樣條曲線nurbs的C++源碼庫。 3.0.11版
上傳時間: 2015-04-24
上傳用戶:Miyuki
de Boor 求值算法求作二次和三次B-樣條曲線非插值,給定頂點
上傳時間: 2014-05-25
上傳用戶:zyt
PCB可制造性設計探討 Discuss on Manufacturable P C B Design PCB可制造性設計探討
標簽: Manufacturable PCB Discuss Design
上傳時間: 2015-08-07
上傳用戶:dave520l
設A和B是長度相同的2個字符串。A和B的距離定義為相應位置字符距離之和。2個非空格字符的距離是它們的ASCII碼之差的絕對值。空格與空格的距離為0;空格與其它字符的距離為一定值k。 字符串A的擴展是在A中插入若干空格字符所產生的字符串。在字符串A和B的所有長度相同的擴展中,有一對距離最小的擴展,該距離稱為字符串A和B的擴展距離。 對于給定的字符串A和B,試設計一個算法,計算其擴展距離。
上傳時間: 2014-12-22
上傳用戶:15736969615
B-spline曲線是包含Bezier曲線的通用數學表示法。
上傳時間: 2015-11-22
上傳用戶:whenfly
非均勻有理B樣條的matlab程序,其中用到了C的混合編程。對于學習數據融合技術的人很有幫助!
上傳時間: 2016-11-23
上傳用戶:huyiming139