#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
# include<stdio.h> # include<math.h> # define N 3 main(){ float NF2(float *x,float *y); float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}}; float b[N]={7.2,8.3,4.2},sum=0; float x[N]= {0,0,0},y[N]={0},x0[N]={}; int i,j,n=0; for(i=0;i<N;i++) { x[i]=x0[i]; } for(n=0;;n++){ //計算下一個值 for(i=0;i<N;i++){ sum=0; for(j=0;j<N;j++){ if(j!=i){ sum=sum+A[i][j]*x[j]; } } y[i]=(1/A[i][i])*(b[i]-sum); //sum=0; } //判斷誤差大小 if(NF2(x,y)>0.01){ for(i=0;i<N;i++){ x[i]=y[i]; } } else break; } printf("經過%d次雅可比迭代解出方程組的解:\n",n+1); for(i=0;i<N;i++){ printf("%f ",y[i]); } } //求兩個向量差的二范數函數 float NF2(float *x,float *y){ int i; float z,sum1=0; for(i=0;i<N;i++){ sum1=sum1+pow(y[i]-x[i],2); } z=sqrt(sum1); return z; }
上傳時間: 2019-10-13
上傳用戶:大萌萌撒
function [R,k,b] = msc(A) % 多元散射校正 % 輸入待處理矩陣,通過多元散射校正,求得校正后的矩陣 %% 獲得矩陣行列數 [m,n] = size(A); %% 求平均光譜 M = mean(A,2); %% 利用最小二乘法求每一列的斜率k和截距b for i = 1:n a = polyfit(M,A(:,i),1); if i == 1 k = a(1); b = a(2); else k = [k,a(1)]; b = [b,a(2)]; end end %% 求得結果 for i = 1:n Ai = (A(:,i)-b(i))/k(i); if i == 1 R = Ai; else R = [R,Ai]; end end
上傳時間: 2020-03-12
上傳用戶:15275387185
P P I I CK I I T T3 3 使用 說明--- - 連機 、 脫 機操作試用 MPLAB IDE 軟件一 、 P P I I C CK K I I T3 接 口說 明, , 硬 件 二 、 P P I I C CK K I I T3 連 接 電腦 MPL L AB I I DE 聯機三 、 聯機四 、聯機讀芯片程序五 、 脫機 燒寫 調試
上傳時間: 2022-03-24
上傳用戶:
這本書適合對8051稍有基礎的讀者閱讀。書中主要以“旗威科技”生產的FLAG51單片機控制板為描述主體,再配合其他的電路組合成一個典型的數字控制系統。本書共分為四大部分,分別探討到8051單片機的諸多經典范例。第一部分談到8051的基本應用范例與數字儀器的使用,以及軟硬件的排錯技巧,這些都是8051進階者所需具備的專業知識。當我們要把8051單片機改成8052時,你知道其中的差異嗎?這些不同點都在本書的第6章上提到。8051·的時序(Timing)研究則是硬件工程師另一項考驗,相同的線路經過兩個硬件工程師的處理與安排后,可能會有完全不同的結果,其中的差異可能就是對時序的了解程度了,第7章里我們分別用示波器與邏輯分析儀說明8051的重要時序,這可能是除了Intel原廠的資料外,對時序探討最透徹的中文文章了。第二部分提到一個以8051單片機為基礎的控制板FLAG51是如何被開發出來的,從構想到整合是一連串設計的組合。接下來我們以FLAG51控制板為主體,陸續開發了I/O監視板、七段顯示板、數字隔離輸入板與RELAY輸出板等等,這些控制板的設計與開發的歷程都一并記錄在書中。第三部分為溫濕度制作的專題報告,我們利用AT89C2051去制作溫度計與濕度計,這方面的測量雖是屬感測器的范疇,但是控制與顯示的主體卻是8051的匯編語言程序,我們認為所有8051的進階者都要經過類似的考驗,方能堂堂正正進入單片機的設計主流群體當中。第四部分為8051串行通信RS485的徹底研究。許多儀器或設備都有RS485通信接口,只通過兩條對絞線就可以控制多達32臺設備。本書的這部分即做這方面技術與程序上的探討,懂得這方面的知識后,你絕對會對8051另眼相看的。更多相關內容已全部上傳:8051單片機徹底研究-基礎篇:http://dl.21ic.com/download/8051-330965.html 8051單片機徹底研究-經驗篇:http://dl.21ic.com/download/8051-330966.html 8051單片機徹底研究-入門篇:http://dl.21ic.com/download/8051-330967.html 8051單片機徹底研究-實習篇:http://dl.21ic.com/download/8051-330969.html 8051單片機C語言軟件設計的藝術:http://dl.21ic.com/download/8051-330970.html
上傳時間: 2022-06-25
上傳用戶:
VIP專區-嵌入式/單片機編程源碼精選合集系列(5)資源包含以下內容:1. 嵌入式數據庫系統.2. 一個演示實時多任務系統運行的仿真程序源碼.3. 偉福仿真器軟件使用.4. 一個完美的門禁考勤系統數據存儲方案.5. 華邦CPU編程器仿真器設計.6. 給大家發一個44b0x開發板的源代碼.7. 一個s3c44b0上的啟動兼測試程序.8. s3c44b0的一個bios源程序.9. DVB I2C讀寫驅動程序.10. 一種QPSK調制解調算法的誤碼率仿真.11. 嵌入式可編程器件CPLD的典型實例 壓縮包.12. 外部中斷INT0模擬1200bps串口通訊。一次MCU可以可以接收并通過MCU向下位機發送30個字節。.13. 老外個人做的MP3/優盤。使用ATMEL MEGA系列的MCU.14. 關于PS/2和USB鍵盤、鼠標的各種掃描碼的資料。.15. TMS320F240 DSK板原理圖.16. 本文從理論上推導出CRC 算法實現原理.17. 一個TCPIP應用于MSP430的源程序.18. 8位LED顯示芯片7219的C原程序.19. 嵌人式系統編程學習.20. sonix 常用mcu的硬件資料.21. D1302充電程序.22. 對24C02的讀、寫.23. 嵌入式瀏覽器Dillo源碼.24. 手寫識別Chinput源碼.25. 嵌入式設計應用范例系列一。.26. 基于PPC的BootLoader.27. 數模轉換程序.28. 串行打印機程序!.29. 下載用上位機程序.30. LCD點陣12864 C語言.31. 用c寫的液晶驅動.32. EMBEDDED SOFTWARE DEVELOPMENT WITH ECOS.33. Nucleus PLUS源碼分析.34. 44bx中文手冊.35. bsp基本概念.36. FAT32文件系統詳細介紹.37. Flash文件系統實現論文.38. i.MX開發板原理圖.39. Linux MTD源代碼分析.40. ULIP及vxsim網絡仿真的實現.
上傳時間: 2013-07-19
上傳用戶:eeworm
利用此源碼可以使用ALTERA DE2開發板將鍵盤變成一部電子琴
上傳時間: 2016-03-23
上傳用戶:cc1015285075
ALTERA DE2開發板一個網路晶片DM9000A的應用範例 並將一個網頁嵌入到DE2開發板中
上傳時間: 2014-12-01
上傳用戶:zhliu007
主要是用於arm s3c4510的開發板,我寫了一個7段顯示器與relocation記憶體搬移的程式希望大家喜歡
上傳時間: 2015-09-08
上傳用戶:R50974
三星2410,廣州友善之臂開發板附帶的linux下的硬盤IDE驅動.
上傳時間: 2014-11-22
上傳用戶:jennyzai