#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
PMSM仿真的资源,需要自取,对于初学者是个不错的资源,有些人在其他地方可能找不到相关资源。
上传时间: 2022-02-21
上传用户:
VIP专区-嵌入式/单片机编程源码精选合集系列(58)资源包含以下内容:1. veriloghdl语言工具书.2. 嵌入式词典查询.3. 基于ZigBee的无线网络技术.4. IO 口模拟232通讯程序使用两种方式的C程序.5. 用Turbo C 实现动画的一个简单的实现方法 这种简单方法利用cleardevice()和delay()函数相互配合.6. dsp2812系列开发办的原理图.7. 此程序为网络通信的16位校验累加和的经典程序。虽然简单但是很经典。代码简洁.8. 触摸式人行灯控制器原理图 触摸式人行灯控制器原理图.9. 3310LCD的C51驱动程序,还不错哦.10. 一些常用的LCD的C51驱动程序,还不错哦.11. NXP示例编码集,Software that is described herein is for illustrative purposes only which provides custom.12. W78E516B在系统编程的上位机程序.13. 使用TI TMS2407 实现SVPWM同步电机控制算法。源代码在闻廷科技的2407开发板上已经调试成功。.14. Nucleus Kernel Demo Full source code.15. Altera CPLD矩阵键盘一个很不错的Altera芯片程序.16. 基于Nios II的串口通信.17. The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F.18. 用CPLD驱动SJA1000 CAN控制器.19. arm uart program lpc2104.20. 嵌入式PLC,基于8051F020,在KEIL上开发,可实现自定义PLC功能.21. SMDK2410原理图protel格式和PCB库元件.22. 功能:调用IAP服务程序实现Flash ROM的读/写操作向Flash ROM地址1000H处写入10个数据.23. 功能:由KEY1键使系统进入空闲状态.24. WDT功能试验。使用WDT的定时模块.25. 功能:使用CCU的4个模块.26. s3c2440开发板can控制器sja1000驱动.27. 一个3分频器。可进一步改装成实际需要的分频器使用.28. 通过软件的仿真,硬件的调试,实现串口数据的传输,开发环境包括C-C++与汇编语言..29. ICD2原理图(protel格式、带usb接口和串口).30. 免費分享版網路硬碟 01.創意風格首頁 02.申請會員 03.密碼查詢 04.會員容量限制 05.上傳檔案支援  Persits.Upload Dundas.Upload Lyf.31. 是一个ARM214系连的最小系统原理图,希望能多爱好嵌入是开发的人员有帮助.32. ds1621的c51驱动,带12864液晶驱动..33. ds1302时钟代码.34. LCD显示屏驱动sed1335驱动.35. 汉字显示字库及程序源码14*16标准字库.36. 14*16字库生成器升级版.37. This utility downloads code to Philip LPC 2000 series chips.38. 测试ARM的外围SDAM的状态和参数.39. 三星44B0上的MP3源码.40. CPLD 的程序,分频器.
上传时间: 2013-07-23
上传用户:eeworm
jk-b交通信号控制机原理图
上传时间: 2013-07-13
上传用户:eeworm
专辑类-实用电子技术专辑-385册-3.609G jk-b交通信号控制机原理图-1.3M.zip
上传时间: 2013-08-02
上传用户:zhf1234
本文分析了永磁同步直线电动机的运行机理与运行特性,并通过坐标变换,分别得出了电机在a—b—c,α—β、d—q坐标系下的数学模型。针对永磁同步直线电机模型的非线性与耦合特性,采用了次级磁场定向的矢量控制,并使id=0,不但解决了上述问题,还实现了最大推力电流比控制。为了获得平稳的推力,采用了SVPWM控制,并对它算法实现进行了研究。 针对速度环采用传统PID控制难以满足高性能矢量控制系统,通过对传统PID控制和模糊控制理论的研究,将两者相结合,设计出能够在线自整定的模糊PID控制器。将该控制器代替传统的PID控制器应用于速度环,以提高系统的动静态性能。 在以上分析的基础上,设计了永磁同步直线电机矢量控制系统的软、硬件。其中电流检测采用了新颖的电流传感器芯片IR2175,以解决温漂问题;速度检测采用了增量式光栅尺,设计了与DSP的接口电路,通过M/T法实现对电机的测速。最后在Matlab/Simlink下建立了电机及其矢量控制系统的仿真模型,并对分别采用传统PID速度控制器和模糊PID速度控制器的系统进行仿真,结果表明采用模糊PID控制具有更好的动态响应性能,能有效的抑制暂态和稳态下的推力脉动,对于负载扰动具有较强的鲁棒性。
上传时间: 2013-07-04
上传用户:13681659100
随着电子技术的快速发展,各种电子设备对时间精度的要求日益提升。在卫星发射、导航、导弹控制、潜艇定位、各种观测、通信等方面,时钟同步技术都发挥着极其重要的作用,得到了广泛的推广。对于分布式采集系统来说,中心主站需要对来自于不同采集设备的采集数据进行汇总和分析,得到各个采集点对同一事件的采集时间差异,通过对该时间差异的分析,最终做出对事件的准确判断。如果分布式采集系统中的各个采集设备不具有统一的时钟基准,那么得到的各个采集时间差异就不能反映出实际情况,中心主站也无法准确地对事件进行分析和判断,甚至得出错误的结论。因此,时钟同步是分布式采集系统正常运作的必要前提。 目前国内外时钟同步领域常用的技术有GPS授时技术,锁相环技术和IRIG-B 码等。GPS授时技术虽然精度高,抗干扰性强,但是由于需要专用的GPS接收机,若单纯使用GPS 授时技术做时钟同步,就需要在每个采集点安装接收机,成本较高。锁相环是一种让输出信号在频率和相位上与输入参考信号同步的技术,输出信号的时钟准确度和稳定性直接依赖于输入参考信号。IRIG-B 码是一种信息量大,适合传输的时间码,但是由于其时间精度低,不适合应用于高精度时钟同步的系统。基于上述分析,本文结合这三种常用技术,提出了一种基于FPGA的分布式采集系统时钟同步控制技术。该技术既保留了GPS 授时的高精确度和高稳定性,又具备IRIG-B时间码易传输和低成本的特性,为分布式采集系统中的时钟同步提供了一种新的解决方案。 本文中的设计采用了Ublox公司的精确授时GPS芯片LEA-5T,通过对GPS芯片串行时间信息解码,获得准确的UTC时间,并实现了分布式采集系统中各个采集设备的精确时间打码。为了能够使整个分布式采集系统具有统一的高精度数据采集时钟,本论文采用了数模混合的锁相环技术,将GPS 接收芯片输出的高精度秒信号作为参考基准,生成了与秒信号高精度同步的100MHZ 高频时钟。本文在FPGA 中完成了IRIG-B 码的编码部分,将B 码的准时标志与GPS 秒信号同步,提高了IRIG-B 码的时间精度。在分布式采集系统中,IRIG-B时间码能直接通过串口或光纤将各个采集点时间与UTC时间统一,节约了各点布设GPS 接收机的高昂成本。最后,通过PC104总线对时钟同步控制卡进行了数据读取和测试,通过实验结果的分析,提出了改进方案。实验表明,改进后的时钟同步控制方案具有很高的时钟同步精度,对时钟同步技术有着重大的推进意义!
上传时间: 2013-08-05
上传用户:lz4v4
B/S权限控制的例子
标签: 权限控制
上传时间: 2014-01-11
上传用户:yoleeson
注塑机生产过程的微机控制系统设计本系统设计是通过8255A并行端口A、B传输数据控制12个LED发光二级管的亮灭来模拟控制两台注塑机的生产过程。其中端口A和B分别对应1号和2号注塑机,每一个LED代表一个工序。编程语言采用BORLAND C++语言。
上传时间: 2013-12-25
上传用户:叶山豪
计算机控制技术.了解步进电机控制的基本原理; b.掌握控制步进电机转动的编程方法。
上传时间: 2014-01-20
上传用户:咔乐坞