#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
资源包含以下内容:1.无线电收音机及无线电路的设计与制作-铃木宪次.pdf2.晶体管电路设计与制作 单管、双管电路以及各种晶体管应用电路-黑田彻.pdf3.模拟技术应用技巧101例-稻叶保 .pdf4.测量电子电路设计 滤波器篇-远坂俊昭.pdf5.测量电子电路设计—模拟篇.pdf6.电子元器件应用技术 基于OP放大器与晶体管的放大电路设计-黑田彻.pdf7.电子元器件的选择与应用 电阻器与电容器的种类、结构及性能-三宅和司.pdf8.直流电动机实际应用技巧,图解实用电子技术丛书.pdf9.锁相环(PLL)电路设计与应用-远坂俊昭.pdf10.高低频电路设计与制作-铃木雅臣.pdf11.高速数字电路设计与安装技巧-久保寺忠.pdf12.高频电路设计与制作.pdf13.图解实用电子技术丛书19册
上传时间: 2013-04-15
上传用户:eeworm
学生信息查询系统C语言实现 包含的功能有: 1、 系统功能选择菜单:提供了5个功能 A、 按“班级+平均成绩”显示原始数据 B、 输入学号,显示学生档案,并可选择用顺序查找或者折半查找去实现 C、 输入不完全的学生姓名即可模糊查找学生档案。 D、 输入班级及课程即可统计平均分,优秀率及及格率。 2、 数据显示函数 3、 学号查找函数 4、 模糊查找函数 5、 成绩统计函数
上传时间: 2014-08-20
上传用户:fanboynet
四选一选择器,输入四个,输出1个.当NM=00时选A 当NM=01时选B 当NM=10时选C 当NM=11时选D
上传时间: 2013-12-25
上传用户:woshiayin
1.24位真彩色->256色灰度图。 2.预处理:中值滤波。 3.二值化:用一个初始阈值T对图像A进行二值化得到二值化图像B。 初始阈值T的确定方法是:选择阈值T=Gmax-(Gmax-Gmin)/3,Gmax和Gmin分别是最高、最低灰度值。 该阈值对不同牌照有一定的适应性,能够保证背景基本被置为0,以突出牌照区域。 4.削弱背景干扰。对图像B做简单的相邻像素灰度值相减,得到新的图像G,即Gi,j=|Pi,j-Pi,j-1|i=0,1,…,439 j=0,1,…,639Gi,0=Pi,0,左边缘直接赋值,不会影响整体效果。 5.用自定义模板进行中值滤波 区域灰度基本被赋值为0。考虑到文字是由许多短竖线组成,而背景噪声有一大部分是孤立噪声,用模板(1,1,1,1,1)T对G进行中值滤波,能够得到除掉了大部分干扰的图像C。 6.牌照搜索:利用水平投影法检测车牌水平位置,利用垂直投影法检测车牌垂直位置。 7.区域裁剪,截取车牌图像。
上传时间: 2014-01-08
上传用户:songrui
区域增长的算法实现: 1)根据图像的不同应用选择一个或一组种 子,它或者是最亮或最暗的点,或者是位 于点簇中心的点 2...通过像素集合的区域增长 算法实现: 区域A 区域B 种子像素增长.3)增长的规则 4) 结束条件.
上传时间: 2015-09-30
上传用户:wcl168881111111
汇编语言编写的演奏声音程序,有四个选择,A B C 分别是三首不同的曲子,Q退出
上传时间: 2014-02-15
上传用户:时代电子小智
基于换乘次数优先的公交路线选择模型 2007年B题论文
上传时间: 2016-10-03
上传用户:weixiao99
MFC+access的通讯录系统。 (1) 查看功能:选择此功能时列出下列三类功能. A办公类 B个人类 C商务类 当选中某类时,显示出此类所有数据中的姓名和电话号码 (2)增加功能:能录入新数据,一个结点包括:姓名,电话号码,分类(办公类,个人类,商务类), 电子邮件, (3)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (4)删除功能:选中某个人的姓名时,可对此人的相对数据进行删除并自动调整后续条目的编号,
上传时间: 2013-12-19
上传用户:缥缈
用汇编编写的河内塔程序 将第一柱a上n-1个盘借助第二柱c移到第三柱b 把a上剩下的一个盘移到c 将n-1个盘从b借助a移到第三柱c 这三步是图示河内塔的根本方法 功能一:自己动手移动河内塔 先按左右键选择要移的盘,按箭头上键确定 再按左右键移到要的盘 如此,再根据河内塔的规则确定较好的次数step2 功能二:图示河内塔移动过程 根据河内塔的基本方法,确定图象,按任意键选下一步,(开始时输入level)
上传时间: 2015-01-10
上传用户:chenbhdt