#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
j-link,V466 j-link,V466 j-link,V466 j-link,V466 j-link,V466 j-link,V466 j-link,V466
上傳時間: 2021-03-23
上傳用戶:koko440
ad設計 Altium Designer 三維元件庫建模教程第一章:介紹 在傳統的電子整機設計過程中,電路設計部門和結構設計部門(或者由外部設計工作室設計)往往是被分為 兩個完全獨立的部門,因此在新產品開發過程中,都是結構設計好了,然后出內部 PCB 位置圖給 PCB 工程師, 而結構工程師并不了解電路設計過程中一些要點。對 PCB 布局一些高度較高元器件位置很多并不符合 PCB 工程 師電路設計的要求。以至 PCB 工程師不得不將就結構工程師所設計的元件布局。最后產品出來時,因為 PCB 布 局不合理等各種因素,問題百出。這不僅影響產品開發速度。也會導致企業兩部門之間發生沖突。 然而目前國內大多的電子企業都是停留于這種狀態,關鍵原因目前電路部門和結構部門沒有一個有效、快捷 的軟件協作接口來幫助兩個部分之間更好協調工作、來有效提高工作效率。而面對競爭日益激烈的市場。時間就 是金錢,產品開發周期加長而導致開發成本加劇,也延誤了產品上市的時間。這不僅降低了企業在市場的競爭力 也加速了企業倒退的步伐。對于企業來說,都希望
標簽: altium designer 建模
上傳時間: 2021-10-18
上傳用戶:
本文分享的是無線路由器 AR9331 為主控制芯片。AR9331目前同性能芯片中功耗較低的WIFI芯片,相比其它同類芯片,具有功耗低,發熱量小,性能穩定的特點。該無線 AP模塊型號為AP121,支持 802.11b/g/n。同時,該2.4G 無線路由器支持網絡數據無線收發,包括 WIFI、LAN、WAN數據采集服務,包括 USB、GPIO、I2C、SPI、I2S接口外設。
標簽: 無線路由器
上傳時間: 2022-06-18
上傳用戶:
該放大電路和光電耦合電路采用電壓反饋。pc817是常用的線性光藕,在各種要求比較精密的功能電路中常常被當作耦合器件,具有上下級電路完全隔離的作用,相互不產生影響。LM358內部包括有兩個獨立的、高增益、內部頻率補償的雙運算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與 電源電壓無關。
上傳時間: 2022-06-18
上傳用戶:shjgzh
新唐科技NUC970/N9H30系列晶片支援下列四種開機方法:1. eMMC 開機2. SPI Flash開機3. NAND Flash 開機4. USB ISP 開機以上四種是依據power-setting (PA0 and PA1) 去做選擇.。NuWriter工具能幫助使用者透過USB ISP模式,將Image檔案放入儲存體中,例如:eMMC 設備,SPI Flash設備或 NAND Flash設備。
上傳時間: 2022-06-23
上傳用戶:
Hopfield 網——擅長于聯想記憶與解迷路 實現H網聯想記憶的關鍵,是使被記憶的模式樣本對應網絡能量函數的極小值。 設有M個N維記憶模式,通過對網絡N個神經元之間連接權 wij 和N個輸出閾值θj的設計,使得: 這M個記憶模式所對應的網絡狀態正好是網絡能量函數的M個極小值。 比較困難,目前還沒有一個適應任意形式的記憶模式的有效、通用的設計方法。 H網的算法 1)學習模式——決定權重 想要記憶的模式,用-1和1的2值表示 模式:-1,-1,1,-1,1,1,... 一般表示: 則任意兩個神經元j、i間的權重: wij=∑ap(i)ap(j),p=1…p; P:模式的總數 ap(s):第p個模式的第s個要素(-1或1) wij:第j個神經元與第i個神經元間的權重 i = j時,wij=0,即各神經元的輸出不直接返回自身。 2)想起模式: 神經元輸出值的初始化 想起時,一般是未知的輸入。設xi(0)為未知模式的第i個要素(-1或1) 將xi(0)作為相對應的神經元的初始值,其中,0意味t=0。 反復部分:對各神經元,計算: xi (t+1) = f (∑wijxj(t)-θi), j=1…n, j≠i n—神經元總數 f()--Sgn() θi—神經元i發火閾值 反復進行,直到各個神經元的輸出不再變化。
上傳時間: 2015-03-16
上傳用戶:JasonC
詞法分析程序,可對以下的C源程序進行分析:main() {int a[12] ,sum for(i=1 i<=12 i++) {for(j=1 j<=12 j++)scanf("%d",&a[i][j]) } for(i=12 i>=1 i--){ for(j=12 j>=1 j--){ if(i==j&&i+j==13)sum+=a[i][j] } } printf("%c",sum) }
上傳時間: 2013-12-26
上傳用戶:skhlm
算法介紹 矩陣求逆在程序中很常見,主要應用于求Billboard矩陣。按照定義的計算方法乘法運算,嚴重影響了性能。在需要大量Billboard矩陣運算時,矩陣求逆的優化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。 高斯-約旦法(全選主元)求逆的步驟如下: 首先,對于 k 從 0 到 n - 1 作如下幾步: 從第 k 行、第 k 列開始的右下角子陣中選取絕對值最大的元素,并記住次元素所在的行號和列號,在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。 m(k, k) = 1 / m(k, k) m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根據在全選主元過程中所記錄的行、列交換的信息進行恢復,恢復的原則如下:在全選主元過程中,先交換的行(列)后進行恢復;原來的行(列)交換用列(行)交換來恢復。
上傳時間: 2015-04-09
上傳用戶:wang5829
一個簡單的類似鋼琴的游戲,能夠發出3個8度音, 低音:1~7; 中音:Q~U或q~u; 高音:A~J或a~j;
標簽: 鋼琴
上傳時間: 2015-06-09
上傳用戶:784533221