#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
在包 hugeinteger 中創建功能類 HugeInteger,該類用來存放和操作一個不超過 40 位的大整數。 (1) 定義一個構造函數,用來對大整數進行初始化。參數為一個字符串。 (2) 定義 input 成員函數,實現大整數的重新賦值。參數為一個字符串,無返回 值。 (3) 定義 output 成員函數,將大整數輸出到屏幕上。無參數無返回值。 (4) 定義 add 成員函數,實現兩個大整數的加法。參數為一個 HugeInteger 對 象,無返回值,例如: HugeInteger A = new HugeInteger("12345"); HugeInteger B = new HugeInteger("1234"); A.add(B); 此時,A 為 13579,B 為 1234。 (5) 定義 sub 成員函數,實現兩個大整數的減法。參數和返回值同 add 函數。 (6) 定義若干大整數關系運算的成員函數,包括 isEqualTo(等于,=)、 isNotEqualTo(不等于,≠)、isGreaterThan(大于,>)、isLessThan(小 于,<)、isGreaterThanOrEqualTo(大于等于,≥)和 isLessThanOrEqualTo (小于等于,≤)。這些函數的參數為一個 HugeInteger 對象,返回值為一個 布爾類型,表示關系運算的結果,例如: HugeInteger A = new HugeInteger("12345"); HugeInteger B = new HugeInteger("1234"); 那么此時 A.isGreaterThan(B)的結果應當為 True,表示 12345>1234。
上傳時間: 2019-06-01
上傳用戶:idealist
This edition updates and continues the series of books based on the residential courses on radiowave propagation organised by the IEE/IET. The first course was held in 1974, with lectures by H. Page, P. Matthews, D. Parsons, M.W. Gough, P.A. Watson, E. Hickin, T. Pratt, P. Knight, T.B. Jones, P.A. Bradley, B. Burgess and H. Rishbeth.
標簽: Propagation Radiowaves edition 3rd of
上傳時間: 2020-05-31
上傳用戶:shancjb
Extensively rewritten to present the C++11 language, standard library, and key design techniques as an integrated whole, Stroustrup thoroughly addresses changes that make C++11 feel like a whole new language, offering definitive guidance for leveraging its improvements in performance, reliability, and clarity. C++ programmers around the world recognize Bjarne Stoustrup as the go-to expert for the absolutely authoritative and exceptionally useful information they need to write outstanding C++ programs. Now, as C++11 compilers arrive and development organizations migrate to the new standard, they know exactly where to turn once more: Stoustrup's C++ Programming Language, Fourth Edition.Bjarne Stroustrup是C++的設計師和最早的實現者,也是《C++程序設計語言》、《帶標注的C++參考手冊》和《C++語言的設計與演化》的作者。他從丹麥Aarhus大學和英國牛津大學畢業,現在是AT&T大規模程序設計研究部的負責人,AT&T特別成員,AT&T貝爾實驗室特別成員,以及ACM特別成員。Stroustrup的研究興趣包括分布式系統、操作系統、模擬、設計和程序設計。他也是Addison·Wesley的C++In-Depth系列書籍的編輯。
標簽: C++
上傳時間: 2022-02-01
上傳用戶:
用三點法實現機器人三維位置測量的研究摘 要 :提 出 了一 種 微 小 爬 壁 機 器 人 三 維 位 置 測 量 的新 方 法 。筆 者 通 過 深 入 分 析 研 究各 種 位 置 測 控 方 法 與 系 統 ,提 出采 用單 目視 覺方 法 中的 聚 焦法 ,以 CCD作 為 傳 感 器 ,用 三 點 法 實現 對 機 器 人 的 三 維 位 置 測 量 。 驗 證性 實驗 結果表 明 ,本研 究提 出的測 量原 理和 系統是 正 確 可行 的 。 關鍵詞 :機 器人 ;位置 測量 ;CCD傳 感 器 ;單 目視 覺 ;攝 像 機 標 定 中 圖分 類 號 :TP242.6 文 獻 標 識 碼 :B Abstract:A new 3D position measurementmethod Ofa wall—climbing micro robothas been researched.Researc— hing on the various position measuring and controlling method,theauthorhasputforwardanewprojecttomeas— ure the 3D position of the robot,in which the focusing method with singlecamera and CCD sensorhasbeen used to getthe position information.The elementary experiment has verified the principle and the system. Key words:robot;position detection;CCD sensor;single camera vision;camera caiibration 位置測量技 術是智 能機 器人 的關鍵 技術 ,是各 種 機器人控 制系統 中極 為重 要 的環節 ,也 是 國內外研 究 的熱點所 在。 按 照測試 系統 與被 測機 器 人 的關 系 ,可 以將位 置 測量技術 分為接觸 式和非接觸式 兩大類 。接觸 式測量 系統 由于在測 量過程 中或多或少地 對機器人施 加 了載 荷 ,因而僅適用于靜 態 位置測 量 。而動 態 位 置測量 系 統 主要分 5類 :①激光跟蹤 系統 ;@ CCD交 互測量 收 稿 日期 :2001—07—03 基 金項 目:國家 863高科技 研 究 資助 項 目(9804-06);教 育 部 高 等 學校 骨干教 師 資助 計 3t,j項 目 作者 簡 介 :張 智海 (1973一 ),男 ,工 學碩 士 ,主 要 研 究 方 向 為 智 能 機 器人 測 控 技 術 。 系統 ;③ 超聲波 測量 系統 ;④ PSD(positionsensitivede— vice)位 置 測 量 系統 ;⑤ 帶 有 接 近覺 傳 感 器 的 測量 系 統 。位置測量 還可 以從另一個分類 角度劃分為主動式 測量和被動 式測 量 。主動式測 量主要可 以分為結 構光方法和激光 自動聚焦法兩類 。被 動式測量 主要 可 以分為雙 目視 覺 、三 目視覺 、單 目視覺 等方法 。 對 比以上各種方法 的 優缺 點 ,針對 筆者 研制 的微 小爬壁機器人 的空 間三 維位 置 測量 的要 求 ,測量 系統 必須滿足尺 寸小 、分 辨率 高 、穩定 性 和可 靠性 好 、時 間 響應快等特 點 ,提 出了采用 單 目視覺方法 中的聚焦法 , 選用 CCD作 為傳感器 ,用 三點法實現對機器人 的三維 位置測量 ,并用 Matlab和 V
標簽: 機器人
上傳時間: 2022-02-12
上傳用戶:
第一章C語言概述A 第二章C語言跨平臺HelloWorld-A 第三章C語言數據類型_運算符與表達式 第四章C語言邏輯流程A 第五章C語言函數_數組_指針_字符串_結構體共用體 第六章C語言位運算_文件_函數高級_指針高級_內存高級映射_內存四區生存期作用域 第七章編譯選項_鏈表_棧_隊列_C實戰 ok 課件.rar
上傳時間: 2013-04-15
上傳用戶:eeworm
A complete design for a data acquisition card for the IBM PC is detailed in this application note. Additionally, C language code is provided to allow sampling of data at speed of more than 20kHz. The speed limitation is strictly based on the execution speed of the "C" data acquisition loop. A "Turbo" XT can acquire data at speeds greater than 20kHz. Machines with 80286 and 80386 processors can go faster than 20kHz. The computer that was used as a test bed in this application was an XT running at 4.77MHz and therefore all system timing and acquisition time measurements are based on a 4.77MHz clock speed.
上傳時間: 2013-10-29
上傳用戶:BOBOniu
/*--------- 8051內核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序狀態字寄存器 sbit CY = PSW^7; //進位標志位 sbit AC = PSW^6; //輔助進位標志位 sbit F0 = PSW^5; //用戶標志位0 sbit RS1 = PSW^4; //工作寄存器組選擇控制位 sbit RS0 = PSW^3; //工作寄存器組選擇控制位 sbit OV = PSW^2; //溢出標志位 sbit F1 = PSW^1; //用戶標志位1 sbit P = PSW^0; //奇偶標志位 sfr SP = 0x81; //堆棧指針寄存器 sfr DPL = 0x82; //數據指針0低字節 sfr DPH = 0x83; //數據指針0高字節 /*------------ 系統管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //電源控制寄存器 sfr AUXR = 0x8E; //輔助寄存器 sfr AUXR1 = 0xA2; //輔助寄存器1 sfr WAKE_CLKO = 0x8F; //時鐘輸出和喚醒控制寄存器 sfr CLK_DIV = 0x97; //時鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1; //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中斷允許寄存器 sbit EA = IE^7; //總中斷允許位 sbit ELVD = IE^6; //低電壓檢測中斷控制位 8051
上傳時間: 2013-10-30
上傳用戶:yxgi5
;片內RAM初始化子程序 IBCLR :MOV A,R0 MOV R1,A CLR AIBC1 :MOV @R1,A INC R1 DJNZ R7,IBC1 RET ;片外RAM初始化子程序 EBCLR1 :MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A CLR CEBC11 :MOVX @DPTR,A INC DPTR DJNZ R7,EBC11 RET ;片外RAM初始化子程序(雙字節個單元) EBCLR2 :MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A MOV A,R7 JZ EBC21 INC R6EBC21 :CLR A MOVX @DPTR,A INC DPTR DJNZ R7,EBC21 DJNZ R6,EBC21 RET ;內部RAM數據復制程序;入口 :R0,R7;占用資源:A;堆棧需求:2字節;出口 :R1 IBMOV :MOV A,R0 ADD A,R7 MOV R0,A MOV A,R1 ADD A,R7 MOV R1,AIBM1 :DEC R0 DEC R1 MOV A,@R0 MOV @R1,A DJNZ R7,IBM1 RET ;外部RAM數據復制程序;入口 :ADDPH,ADDPL,R7;占用資源:ACC;堆棧需求:2字節;出口 :R0,R1 EBMOV1 :MOV A,ADDPL ADD A,R7 MOV DPL,A CLR A ADDC A,ADDPH MOV DPH,A MOV A,R7 ADD A,R1 XCH A,R0 ADDC A,#00H MOV P2,AEBM11 :DEC R0 CJNE R0,#0FFH,EBM12 DEC P2EBM12 :DEC DPL MOV A,DPL CJNE A,#0FFH,EBM13 DEC DPHEBM13 :MOVX A,@R0 MOVX @DPTR,A DJNZ R7,EBM11 RET ;外部RAM數據復制程序
上傳時間: 2013-10-30
上傳用戶:bs2005
MCS-51單片機實用子程序庫 ;片內RAM初始化子程序IBCLR: MOV A,R0MOV R1,ACLR AIBC1 : MOV @R1,AINC R1DJNZ R7,IBC1RET;片外RAM初始化子程序EBCLR1: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,ACLR CEBC11: MOVX @DPTR,AINC DPTRDJNZ R7,EBC11RET;片外RAM初始化子程序(雙字節個單元)EBCLR2: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,AMOV A,R7JZ EBC21INC R6EBC21: CLR AMOVX @DPTR,AINC DPTRDJNZ R7,EBC21DJNZ R6,EBC21RET;內部RAM數據復制程序;入口: R0,R7;占用資源: A;堆棧需求: 2字節
上傳時間: 2013-10-10
上傳用戶:18602424091