matlab求解代数方程组,matlab求解代数方程组.doc
matlab求解代数方程组.doc
1第三讲Matlab求解代数方程组理论介绍:直接法+迭代法,简单介绍相关知识和应用条件及注意事项软件求解:各种求解程序讨论如下表示含有个未知数、由个方程构成的线性方程组:nn121212nnnaxaxb(1)一、直接法1.高斯消元法:高斯消元法的基本原理:在(1)中设将第一行乘以加到第得:10,a1,ka(2,3),kn()(1)(1)(1)122(2)(2)()nnnnxaxba(2)其中再设将(2)式的第二行乘以加(1)(1),.kab()0,a(2),3,)ka到第行,如此进行下去最终得到:(1)()(1)(1)221()(1)(1),,nnnnaxaxbaxb(3)从(3)式最后一个方程解出,代入它上面的一个方程解出,并如此进行nx1nx下去,即可依次将全部解出,这样在的假设121,,n()0,2)ka2下,由上而下的消元由下而上的回代,构成了方程组的高斯消元法.高斯消元法的矩阵表示:若记,则(1)式可表为于是高11(),(,),(,)TTijnnnAaxb.Axb斯消元法的过程可用矩阵表示为:121121.nnMAxMb其中:(1)21(1)naMa(2)32(2)11naMa高斯消元法的Matlab程序:%顺序gauss消去法,gauss函数function[A,u]=gauss(a,n)fork=1:n-1%消去过程fori=k+1:nforj=k+1:n+1%如果a(k,k)=0,则不能削去ifabs(a(k,k))>1e-6%计算第k步的增广矩阵a(i,j)=a(i,j)-a(i,k)/a(k,k)*a(k,j);else%a(k,k)=0,顺序gauss消去失败disp(‘顺序gauss消去失败‘);pause;exit;3endendendend%回代过程x(n)=a(n,n+1)/a(n,n);fori=n-1:-1:1s=0;forj=i+1:ns=s+a(i,j)*x(j);endx(i)=(a(i,n+1)-s)/a(i,i);end%返回gauss消去后的增广矩阵A=triu(a);%返回方程组的解u=x;练习和分析与思考:用高斯消元法解方程组:1234512457184693xxxx2.列主元素消元法在高斯消元法中进行到第步时,不论是否为0,都按列选择k()kia中最大的一个,称为列主元,将列主元所在行与第行交换再()|,)kiank按高斯消元法进行下去称为列主元素消元法。列主元素消元法的matlab程序4%列主元guass消去函数function[A,u]=gauss(a,n)%消去过程fork=1:n-1%选主元c=0;forq=k:nifabs(a(q,k))>cc=a(q,k);l=q;endend%如果主元为0,则矩阵A不可逆ifabs(c)=epsx0=y;y=B*x0+f;n=n+1;end练习和分析与思考:利用Jacobian迭代法求解方程组:1324658x3.高斯-塞德尔(Gauss-Seidel)迭代法公式:将Jacobi迭代公式改进为,(1)()kkDxLUxb(1)(1)()kkkDxLUxb于是得到.(1)()1kx1,()Bf用矩阵的元素表示为:A1()()1(1),2,)inkkjijjkiibaxxnGauss-Seidel迭代法的Matlab程序function[y,n]=gauseidel(A,b,x0,eps)%误差ifnargin==3eps=1.0e-6;elseifnargin=epsx0=y;y=G*x0+f;n=n+1;end4.超松弛(SuccessiveOverRelaxation)迭代法(SOR)三、求解非线性方程的方法1.根的隔离——二分法利用函数的性质确定根的大致范围取的中点若(,)ab(,)0,2abx,则即是根,否则如果令如果0()fx0 x0fx1,令则在内至少有一根,且再,b10,a1,b1(,)1(),)ab取的中点,如此进行下去,包含根的区间的1(,)a2x,2n长度每次缩小一半,足够大时即可获得满意精度。n2.切线法对于方程将在作Taylor展式保留线性项,即()0fx()fxk )(),kkffx设然后用代替右端的就得到迭代公式:,这种 ()0,kfx1kx1 ()kkfxx9方法称为牛顿(Newton)切线法。3.割线法在牛顿切线法中用差商代替,则1())kkfxf ()kfx(割线法)11())kkkfxf练习和分析与思考:求方程的一个正根。2()4fx四、求解非线性方程组的牛顿法方程组记作其中设()0,F112(,),(),(,(),TTnnxFxfxf且方程组的第步近似解,与牛顿切线法类似,在()()()1,kkkTnxx)0k作Taylor展式,线性化后用代替可得:()k(1)kx()()(1)()()()(1)()1,2)kkkkkkiiiinffxfxfxin记1122 112()nnnffxxFffxx则有,若可逆,我们得到解非线(1)() ()()()kkkkFxF ()kF性方程组的牛顿迭代公式:.(1)() ()1()[]xx注:实际上在计算过程的第步,往往先计算和,再解方程k()k ()kx组得到后,令即可.迭代过程需要 ()()()kkFxFxA()A(1)()()kxA分析其收敛性、分支与混沌.练习和分析与思考:10用牛顿迭代法解非线性方程组:22132070 xx五、Matlab求解(非)线性方程组的内置工具箱1.线性方程组求解(1)直接求解:线性方程组,解法(注意:此处\不是/符号)Axb,xAb若为方阵,,若不是方阵,A()*xinv()*.pinv练习和分析与思考:求方程组的解.12324354601xx(2)利用矩阵分解求解线性方程组矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积.常见的矩阵分解有LU分解、QR分解、Cholesky分解以及Schur分解、Hessenberg分解、奇异分解等.LU分解:矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式.只要方阵非奇异,矩阵的LU分解总是可以进行的.AMatlab提供的lu函数用于对矩阵进行LU分解,其调用格式为:[L,U]=lu(A):产生一个上三角阵U和一个变换形式的下三角矩阵L(行交换)使之满足A=LU,注意:这里的矩阵必须是方阵.[L,U,P]=lu(A):产生一个上三角阵U和一个变换形式的下三角矩阵L以及一个置换矩阵P使之满足PA=LU,注意:这里的矩阵必须是方阵.A实现LU分解后,线性方程组的解为:Axb\()\().xLbxUPb或QR分解:矩阵的QR分解就是将一
matlab求解代数方程组,matlab求解代数方程组.doc相关推荐
- 非线性常微分方程组 matlab,matlab常微分方程和常微分方程组求解.doc
常微分方程和常微分方程组的求解 ? 一.实验目的: 熟悉Matlab软件中关于求解常微分方程和常微分方程组的各种命令,掌握利用Matlab软件进行常微分方程和常微分方程组的求解. ? 二.相关知识 在 ...
- MATLAB数值分析学习笔记:线性代数方程组的求解和高斯消元法
工程和科学计算的许多基本方程都是建立在守恒定律的基础之上的,比如质量守恒等,在数学上,可以建立起形如 [A]{x}={b} 的平衡方程.其中{x}表示各个分量在平衡时的取值,它们表示系统的状态或响应: ...
- matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf
资源描述 matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x ...
- 利用MATLAB求解一阶线性常系数非齐次微分方程组
用矩阵函数求解一阶线性常系数非齐次微分方程组 主要步骤 1.问题形式 2.求矩阵函数 3.代入矩阵A的指数函数得最终解 主要步骤 本来想用在矩阵论期中开卷考试验证计算结果的,结果一个解方程组的题也没考 ...
- matlab常系数线性矩阵微分方程组,基于Matlab常系数线性微分方程组的求解
·基础数学· 基于 Matlab 常系数线性微分方程组的求解* 严水仙 (赣南师范大学 数学与计算机科学学院,江西 赣州 341000) 摘 要: 在常微分方程课程教学中,常系数线性微分方程组可以通过 ...
- MATLAB:方程组的求解
系列文章目录 综合实例应用:方程组的求解 文章目录 系列文章目录 前言 一.求解四元一次线性方程组 二.利用矩阵分解求解 1.LU分解法 2.QR分解法 总结 前言 无论工程应用问题,还是数学计算问题 ...
- matlab fsolve 解的范围,【求助】用fsolve解四元非线性方程组,求解参数的范围问题...
求助各位大神,我用fsolve求解了一个四元非线性方程组,方程比较复杂,得到了结果不符合条件. 代码 syms a b c d e g s r t e=0.2; g=0.08; s=1.5; r=0. ...
- matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
* 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...
- matlab水汽计算公式,[转载]matlab 解方程组
1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=i ...
- MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍
系列文章目录 MATLAB绘图函数的相关介绍--海底测量.二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 一.线性方程组 1.1.线性方程组简介 1.2.矩阵的初等变换 1.3.MAT ...
最新文章
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- 树莓派:django,uwsgi,nginx安装与设置
- java for循环的这种写法怎么理解:for (; ; ) {},
- Oracle 10g RAC 升级(CPU Update)之--升级CRS
- 7-177 输出全排列 (20 分)
- php如何跟踪调试,PHP使用debug_backtrace方法跟踪调试代码调用详解
- 交流:Ghost版系统安装简单分析
- linux通过iso安装php,linux系统下怎么安装iso文件?
- upc 7833 生日蛋糕
- 应用推荐:Fluent Reader
- 苏州外壳防护试验IP防尘防水测试IP65 IP66 IP69K
- win11任务栏某些情况下不能自动隐藏问题初探
- html5播放加速,Video Speed Controller Chrome(HTML5视频加速播放插件) v0.3.2 官方免费版...
- 复合辛普森公式matlab,复合梯形公式、复合辛普森公式 matlab
- 阿拉伯数字与中文大写转换excel公式
- 打包签名用 文件配置遇到的坑(Keystore was tampered with, or password was incorrect)
- 快牙网传——轻松传文件
- JavaScript : 对LHS和RHS两个名词的理解
- 01 - 嵌入式的学习路线、职业规划:嵌入式基本知识与开发流程
- CAN通信详解(全)