




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高斯 - 若当全主元消去法解线性方程组我们知道对于一个方程组而言, 如果做相应的变换使系数矩阵变为单位阵的话那么就能得到它的解了,高斯-若当法就是这样的,但是为了减少误差,使用了全选主元法, 下面是程序。保存为 gauss.m在 matlab 中运行function ans=gauss(a,n,b)indexC=; % 用于纪录主元indexR=;ipiv=;m=1;for j=1:nipiv(j)=0;endfor i=1:nbig=0;for j=1:nif(ipiv(j)= 1)for k=1:nif abs(a(j,k)>big %寻找最大的主元big=abs(a(j,k);ir
2、ow=j;icol=k;endendendendipiv(icol)=ipiv(icol)+1;if(irow=icol)% 需要调换for l=1:ntemp=a(irow,l);a(irow,l)=a(icol,l);a(icol,l)=temp;endfor l=1:mtemp=b(irow,l);b(irow,l)=b(icol,l);b(icol,l)=temp;endendindexR(i)=irow;indexC(i)=icol;if(a(icol,icol)=0)disp('error');endpivinv=1/a(icol,icol);for l=1:na(
3、icol,l)=a(icol,l)*pivinv;endfor l=1:mb(icol,l)=b(icol,l)*pivinv;endfor ll=1:nif(ll=icol)dum=a(ll,icol);a(ll,icol)=0.0;for l=1:na(ll,l)=a(ll,l)-a(icol,l)*dum;endfor l=1:mb(ll,l)=b(ll,l)-b(icol,l)*dum;endendendendfor l=n:-1:1 % 已经进行过交换,现在交换回来if(indexR(l)=indexC(l)for k=1:ntemp=a(k,indexR(l);a(k,indexR
4、(l)=a(k,indexC(l);a(k,indexC(l)=a(k,indexR(l);endend end ans=b;F面解这个简单的方程组>> a=1 0 0 0;0 2 0 0 ;0 0 3 0 ;0 0 0 4 a =1000020000300004>> b=10;40;60;80b =10406080>> gauss(a,4,b)ans =10202020昨天才回答过这个问题 .你可以再搜搜的Gauss 消去法的分析。其包括两个过程:消去过程:把方程组系数矩阵A 化为同解的上三角矩阵;回代过程:按相反的顺序,从xn 至 x1 逐个求解上三角方
5、程组。%高斯消去法的MATLAB 程序function x=gauss(a,b); % 编写高斯消去法函数%a 表示方程组的系数矩阵, b 表示方程组的值%X 表示最终的输出结果,即方程组的解n=length(b); % 计算方程组的维数%下面的程序在不断的消去,直到变成a 变成上三角矩阵未知for k=1:n-1for i=k+1:na(i,k)=a(i,k)/a(k,k);for j=k+1:na(i,j)=a(i,j)-a(i,k)*a(k,j);endb(i)=b(i)-a(i,k)*b(k);endend%表示高斯消去法的回带过程x=zeros(n,1);x(n)=b(n)/a(n,
6、n);for k=n-1:-1:1s=b(k);for j=k+1:ns=s-a(k,j)*x(j);endx(k)=s/a(k,k);end实例验证:调用编好的消去法函数A=1,23223;-1,-3,10;B=0,3,2;gauss(A,B) ans =3.0000-1.55170.0345A=1,2,3;2,2,3;-1,-3,10;B=0,3,2;x=gauss(A,B) x =3.0000-1.55170.0345A*x %反代求解进行比较ans =0.00003.00002.0000matlab程序报错意思释疑(转自他处)1.Subscript indices must eithe
7、r be real positive integers or logicals中文解释:下标索引必须是正整数类型或者逻辑类型出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从0开始,要么出现了负数。注: matlab的语法规定矩阵的索引从1开始,这与 C等编程语言的习惯不一样。解决办法:自己调试一下程序,把下标为0或者负数的地方修正。2.Undefined function or variable "a"中文解释:函数或变量a没有定义1.1 nput argument "x" is undefined中文解释:输入变量x没
8、有定义4 .Matrix dimensions must agreeInner matrix dimensions must agree中文解释:矩阵的维数必须一致出错原因:这是由于运算符(=+ - / *等)两边的运算对象维数不匹配造成的,典型的出错原 因是错用了矩阵运算符。matlab通过“来区分矩阵运算和元素运算5 .Function definitions are not permitted at the prompt or in scripts中文解释:不能在命令窗口或者脚本文件中定义函数出错原因:一旦在命令窗口写function c = myPlus(a,b),此错误就会出现,因为
9、函数只能定义在m文件中6.1) X must have one or two columns2.) Vectors must be the same lengths中文解释:1 . X必须是1或者2列2 .向量长度必须一致7.One or more output arguments not assigned during call to '.'中文解释:在调用函数过程中,一个或多个输出变量没有被赋值8 .? Error using => mpowerMatrix must be square中文解释:错误使用mpwoer函数,要求矩阵必须是方阵9 .Explicit integral could not be found.中文解释:显式解没有找到10.Index exceeds matrix dimensions.Attempted to access b(3,2); index out of bounds because size(b)=2,2.中文解释:索引超出矩阵的范围附本人遇至 U 的问题:Attempted to access x(3); index out of bounds because numel(x)=2.表示x矩阵元素不够,导致 x(3)无法索引。11.In an assignment A(I) = B, the
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 畜牧业居间服务补充协议
- 银行业务办理流程优化指南
- 金融服务员工心态管理培训
- 大数据驱动的农业现代化智能化发展路径研究
- 创业项目可行性研究
- 高中历史:近代社会变革中的文化现象研究方案
- 汽车机械维修技术案例分析题库
- 农业生产智慧化发展趋势与前景展望方案
- 外科总论复习试题及答案
- 高职护理妇产科复习试题及答案
- 重症病人营养支持ICU
- 工会组建工作实务课件
- 外浮顶储罐·内浮顶储罐泡沫堰PPT
- 魏晋南北朝时期园林-课件
- 甘肃省平凉市各县区乡镇行政村村庄村名明细及行政区划代码
- (完整版)初中道德与法治课程标准
- 自动化腹膜透析(APD)的临床应用课件
- 涤纶长丝生产标准工艺简介
- 数字图像处理-6第六章图像去噪课件
- 监理施工设计图纸签发表
- DB43∕T 801-2013 二次张拉低回缩钢绞线竖向预应力短索锚固体系设计、施工和验收规范
评论
0/150
提交评论