#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
便攜式B型超聲診斷儀具有無創傷、簡便易行、相對價廉等優勢,在臨床中越來越得到廣泛的應用。它將超聲波技術、微電子技術、計算機技術、機械設計與制造及生物醫學工程等技術融合在一起。開展該課題的研究對提高臨床診斷能力和促進我國醫療事業的發展具有重要的意義。 便攜式B型超聲診斷儀由人機交互系統、探頭、成像系統、顯示系統構成。其基本工作過程是:首先人機交互系統接收到用戶通過鍵盤或鼠標發出的命令,然后成像系統根據命令控制探頭發射超聲波,并對回波信號處理、合成圖像,最后通過顯示系統完成圖像的顯示。 成像系統作為便攜式B型超聲診斷儀的核心對圖像質量有決定性影響,但以前研制的便攜式B型超聲診斷儀的成像系統在三個方面存在不足:第一、采用的是單片機控制步進電機,控制精度不高,導致成像系統采樣不精確;第二、采用的數字掃描變換算法太粗糙,影響超聲圖像的分辨率;第三、它的CPU多采用的是51系列單片機,測量速度太慢,同時也不便于系統升級和擴展。 針對以上不足,提出了基于FPGA的B型超聲成像系統解決方案,采用Altera公司的EP2C5Q208C8芯片實現了步進電機步距角的細分,使電機旋轉更勻速,提高了采樣精度;提出并采用DSTI-ULA算法(Uniform Ladder Algorithm based on Double Sample and Trilinear Interotation)在FPGA內實現數字掃描變換,提高了圖像分辨率;人機交互系統采用S3C2410-AL作為CPU,改善了測量速度和系統的擴展性。 通過對系統硬件電路的設計、制作,軟件的編寫、調試,結果表明,本文所設計的便攜式B型超聲成像系統圖像分辨率高、測量速度快、體積小、操作方便。本文所設計的便攜式B型超聲診斷儀可在野外作業和搶險(諸如地震、抗洪)中發揮作用,同時也可在鄉村診所中完成對相關疾病的診斷工作。
上傳時間: 2013-05-18
上傳用戶:helmos
用Matlab軟件以及雅克比迭代和高斯-賽德爾迭代解方程組Ax=b,分析、比較其結果
上傳時間: 2015-04-04
上傳用戶:123456wh
高斯亞當消去法 GAUSSJ(A[],N,B[])用這個子過程實現高斯亞當消去法
上傳時間: 2015-08-29
上傳用戶:541657925
// 帶有列主元的高斯消元法 // 功能: 求解線性方程組 Ax = b // 參數: A - 指向n*n系數矩陣的指針 // b - 常數向量的指針 // n - 方程組的維數 // 返回值:0 - 如果成功。線性方程組的解保存在 b 中 // 1 - 求解失敗
上傳時間: 2013-12-18
上傳用戶:xcy122677
用全選主元高斯消去法求解N復系數階線性方程組AX=B
上傳時間: 2015-11-25
上傳用戶:ggwz258
第一章 有關數論的算法 1.1最大公約數與最小公倍數 1.2有關素數的算法 1.3方程ax+by=c的整數解及應用 1.4 求a^b mod n 第二章 高精度計算 2.1高精度加法 2.2高精度減法 2.3高精度乘法 2.4 高精度除法 練習 第三章 排列與組合 3.1加法原理與乘法原理 練習 3. 2 排列與組合的概念與計算公式 練習 3.3排列與組合的產生算法 練習 第四章 計算幾何 4.1 基礎知識 4.2 線段的相交判斷 4.3尋找凸包算法 練習 第五章 其它數學知識及算法 5.1 鴿巢原理 5.2 容斥原理及應用 5.3 常見遞推關系及應用
上傳時間: 2016-01-05
上傳用戶:frank1234
小信號放大器的設計 1. 放大器是射頻/微波系統的必不可少的部件。 2. 放大器有低噪聲、小信號、高增益、中功率、大功率等。 3. 放大器按工作點分有A、AB、B、C、D…等類型。 4. 放大器指標有:頻率范圍、動態范圍、增益、噪聲系數、工作效率、1dB壓縮點、三階交調等。
上傳時間: 2016-02-10
上傳用戶:ggwz258
基于MSP430單片機TimerB的數字->模擬信號轉換的設計.利用MSP430定時器B產生PWM,然后再通過RC濾波,得到直流或交流電壓信號.此方法成本低廉,可靠性高,易于使用.
上傳時間: 2013-11-26
上傳用戶:lanjisu111
< B語言與方法:實用形式化開發指南>> 本書介紹了B抽象機符號語言以及用于支持形式化規格說明和高集成 系統開發的方掛。首先,介紹了B 語言的發展歷史及與其他語言的關系,然 后,從集合、序列等基本數學符號表示到B 語言的結構化機制,再到它所支 持的大型程序設計方法,全面地介細了B 符號語言的描述方法。
上傳時間: 2014-11-29
上傳用戶:康郎