试验32方程组的数值解法.DOC

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
试验32方程组的数值解法

实验3.2 方程(组)的数值解法 实验目的 (1)非线性方程(组)的数值解法 (2)线性方程组的数值解法 实验内容 1、掌握非线性方程与非线性方程组数值解的Matlab命令; 2、掌握线性方程组的数值解法。 1. 多项式的一般表达及非线性方程(组)的求根 (1)多项式在MATLAB中是由行向量来表达的,向量中的元素是多项式系数的降幂排列。其中最后一个元素代表多项式中的0幂项,即常数项,千万不可省略,否则MATLAB将无法识别这一项。 【例题3.8】MATLAB中输入四次多项式,只需在命令区中输入: p=[0.6955,0.436,0.668,1.35]; 这样就建立了这个多项式。 (2)多项式的求根命令: ① roots函数 【例题3.9】求例题3.2中多项式的根 解:输入:p=[0.6955,0.436,0.668,1.35]; x=roots(p) 回车后将得到如图3.3所示的结果。因为采用矩阵算法,所以MATLAB中的多项式和它的根都是向量。多项式为行向量,根为列向量。 图3.3 ②如果不用roots命令求根,还可以利用solve函数的命令。可以得到方程根的解析解或数值解,其命令格式为: solve(‘eqn1’,’eqn2’,…,’eqnN’); solve(‘eqn1’,’eqn2’,…,’eqnN’,’var1,var2,...,varN’); 【例题3.10】求方程的根。 解:输入:x_star=solve(exp(-x)=sin(3.1416*x/2),x) % 用pi代替3.1416也可以 得到:x_star = .44357285734909213055096933568404 【例题3.11】求解非线性方程组 解:输入:[x,y]=solve(x^2+x*y+y=3,x^2-4*x+3=0) 得到:x=1, 3 y = 1, -3/2 ③有些方程无法用solvs函数求出根,这时就需要调用相应的数值解函数,如fzero。 fzero函数是找出一维变量为零的点。寻找零点时可以指定一个开始点,或者指定一个开始区间。如果指定一个开始点,此函数首先在开始点附近寻找一个使函数值变号的区间。如果我们知道函数值在某个区间上变号,则可以用一个包含两个元素的矢量指点区间作为fzero的输入参数。其计算格式为 x= fzero(fun,x0) 或x= fzero(fun,[a,b]) 其中,x为方程的零点,fun为所求方程的函数(fun既可以是x的字符串,也可以是内嵌函数的名字或m文件的名字),x0为初始点,[a,b]为使函数值变号的区间。 【例题3.12】 求方程的根,取初始点x0=1.5 解:输入:x=fzero(x^3-x-1,1.5) 结果为:x =1.3247 2. Matlab线性方程组的解 (1)齐次线性方程组AX=0的非零解 MATLAB中Z=null(A,‘r’)就是求AX=0的基础解系,其中Z的列向量即为所求基础解系。 【例题3.13】求方程组的通解 解:在MATLAB中输入: A=[1,2,2,1;2,1,-2,-2;1,-1,-4,-3]; format rat %指定有理格式输出 Z=null(A,r) 运行结果如图3.4所示 图3.4 故所求通解为: 注意:format rat是有理式格式输出,小数用最接近的分数表示;若输入format long则输出格式是长格式,显示15位数;缺省格式是format short(短格式),显示到小数点后4位;format bank是货币银行格式,显示到小数点后2位。 (2)非齐次线性方程组AX=b求解 其命令格式可以是: ①若矩阵A可逆,则X=A\b %用矩阵左除法求解 ②化成行简化阶梯型,利用rref函数 C=[A,b];%由系数矩阵A和常数列向量b构成增广矩阵C D=rref(C)%将C化成行简化阶梯型 则D的最后一列元素就是所求的解 【例题3.14】求方程组的解 解法1:在MATLAB命令窗口中输入: A=[2,3,5;3,6,8;6,5,4]; b=[12;34;43]; X=A\b 运行结果如图3.5 图3.5 注意: b是列向量,求解前应先检验A是否是满秩矩阵。(可以用R=rank(A)命令求秩) 解法2:在MATLAB命令窗口中输入: A=[2,3,5;3,6,8;6,5,4]; b=[12;34;43]; C=[A,b]; D=rref(C) 运行结果如图3.6 图3.6

您可能关注的文档

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档