用matlab求解非线性方程组的几种方法之程序

用matlab求解非线性方程组的几种方法之程序

ID:5314701

大小:567.77 KB

页数:23页

时间:2017-12-08

用matlab求解非线性方程组的几种方法之程序_第1页
用matlab求解非线性方程组的几种方法之程序_第2页
用matlab求解非线性方程组的几种方法之程序_第3页
用matlab求解非线性方程组的几种方法之程序_第4页
用matlab求解非线性方程组的几种方法之程序_第5页
资源描述:

《用matlab求解非线性方程组的几种方法之程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、高等教育出版社教育电子音像出版社作者:任玉杰第二章非线性方程(组)的数值解法的MATLAB程序第二章第二章第二章非线性方程非线性方程非线性方程(非线性方程(((组组组组))))的数值解法的数值解法本章主要介绍方程根的有关概念,求方程根的步骤,确定根的初始近似值的方法(作图法,逐步搜索法等),求根的方法(二分法,迭代法,牛顿法,割线法,米勒(Müller)法和迭代法的加速等)及其MATLAB程序,求解非线性方程组的方法及其MATLAB程序.2.12.1方程2.1方程方程(方程(((组组组组))))的根及其的根及其的根及其MATLAB的根及其MATLABMATLAB

2、命令MATLAB命令命令命令2.1.22.1.2求解方程2.1.2求解方程求解方程(求解方程(((组组组组))))的的的的solve命令求方程f(x)=q(x)的根可以用MATLAB命令:>>x=solve('方程f(x)=q(x)',’待求符号变量x’)求方程组fi(x1,…,xn)=qi(x1,…,xn)(i=1,2,…,n)的根可以用MATLAB命令:>>E1=sym('方程f1(x1,…,xn)=q1(x1,…,xn)');…………………………………………………….En=sym('方程fn(x1,…,xn)=qn(x1,…,xn)');[x1,x2,…,

3、xn]=solve(E1,E2,…,En,x1,…,xn)2.1.32.1.3求解2.1.3求解求解多项式求解多项式多项式方程多项式方程方程(方程(((组组组组))))的的的的roots命令'如果f(x)为多项式,则可分别用如下命令求方程f(x)=0的根,或求导数f(x)(见表2-1).表2-1求解多项式方程(组)的roots命令命令功能输入多项式f(x)的系数fa(按降幂排列),运行后输xk=roots(fa)出xk为f(x)=0的全部根.输入多项式f(x)的系数fa(按降幂排列),运行后输dfa=polyder(fa)'出dfa为多项式f(x)的导数f(x)

4、的系数.'输入多项式f(x)的导数f(x)的系数dfa(按降幂排dfx=poly2sym(dfa)f'x列),运行后输出dfx为多项式f(x)的导数().2.1.42.1.42.1.4求解方程求解方程求解方程(求解方程(((组组组组))))的的的的fsolve命令如果非线性方程(组)是多项式形式,求这样方程(组)的数值解可以直接调用上面已经介绍过的roots命令.如果非线性方程(组)是含有超越函数,则无法使用roots命令,需要调用MATLAB系统中提供的另一个程序fsolve来求解.当然,程序fsolve也可以用于多项式方程(组),但是它的计算量明显比root

5、s命令的大.fsolve命令使用最小二乘法(leastsquaresmethod)解非线性方程(组)F(X)=0的数值解,其中X和F(X)可以是向量或矩阵.此种方法需要尝试着输入解X的初始值(向量或矩阵)X0,即使程序中的迭代序列收敛,也不一定收敛到F(X)=0的根(见例2.1.8).fsolve的调用格式:X=fsolve(F,X0)9.高等教育出版社教育电子音像出版社作者:任玉杰第二章非线性方程(组)的数值解法的MATLAB程序输入函数F(x)的M文件名和解X的初始值(向量或矩阵)X0,尝试着解方程(组)F(X)=0,运行后输出F(X)=0解的估计值(向量或

6、矩阵)X.要了解更多的调用格式和功能请输入:helpfsolve,查看说明.2.22.22.2搜索根的方法及其搜索根的方法及其搜索根的方法及其MATLAB搜索根的方法及其MATLABMATLAB程序MATLAB程序程序程序求解非线性方程根的近似值时,首先需要判断方程有没有根?如果有根,有几个根?如果有根,需要搜索根所在的区间或确定根的初始近似值(简称初始值).搜索根的近似位置的常用方法有三种:作图法、逐步搜索法和二分法等,使用这些方法的前提是高等数学中的零点定理.2.2.12.2.12.2.1作图法及其作图法及其作图法及其MATLAB作图法及其MATLABMAT

7、LAB程序MATLAB程序程序程序作函数的图形的方法很多,如用计算机软件的图形功能画图,或用高等数学中应用导数作图,或用初等数学的函数叠加法作图等.下面介绍两种作图程序.作函数y===f(x)在区间在区间在区间[[[[a,b]]]的图形的]的图形的的图形的MATLAB的图形的MATLABMATLAB程序一MATLAB程序一程序一程序一x=a:h:b;%h是步长y=f(x);plot(x,y)grid,gtext('y=f(x)')说明:⑴此程序在MATLAB的工作区输入,运行后即可出现函数y=f(x)的图形.此图形与x轴交点的横坐标即为所要求的根的近似值.⑵区间

8、[a,b]的两个端点的距

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。