用Matlab求解非线性方程组-甘才军的Matlab学习笔记_第1页
用Matlab求解非线性方程组-甘才军的Matlab学习笔记_第2页
用Matlab求解非线性方程组-甘才军的Matlab学习笔记_第3页
用Matlab求解非线性方程组-甘才军的Matlab学习笔记_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. fsolve求解非线性方程组方程:F(x)=0x是一个向量,F(x)是该向量的函数向量,返回向量值2. 语法x = fsolve(fun,x0)x = fsolve(fun,x0,options)x,fval = fsolve(fun,x0)x,fval,exitflag = fsolve(.)x,fval,exitflag,output = fsolve(.)x,fval,exitflag,output,jacobian = fsolve(.)3. 描述fsolve用于寻找非线性系统方程组的零点。x = fsolve(fun,x0)以x0为初始值,努力寻找在fun中描述的方程组。x =

2、 fsolve(fun,x0,options) 以x0为初始值,按照指定的优化设置“options”努力寻找在fun中描述的方程组。使用optimset设置这些选项。x,fval = fsolve(fun,x0)返回在解x处的目标函数fun的值x,fval,exitflag = fsolve(.)返回exitflag表示退出条件。x,fval,exitflag,output = fsolve(.)返回output结构,该结构包含了优化信息。x,fval,exitflag,output,jacobian = fsolve(.)返回在解x处的Jacobian函数。4. 输入参数4.1. fun非线

3、性系统方程。它是一个函数,以x作为输入,返回向量F。函数fun可以被指定为一个M文件函数的函数句柄。x = fsolve(myfun,x0)这里的myfun是一个matlab函数,形如:function F = myfun(x)F = . % Compute function values at xfun也可以是一个异步函数的函数句柄:x = fsolve(x)sin(x.*x),x0);若用户定义的值为矩阵,则会被自动转换为向量。若Jacobian能被计算出来且通过options = optimset('Jacobian','on')设置Jacobian选项为

4、”on”,则函数fun必须在第2个输出参数中返回x处的Jacobian值J(它是一个矩阵)。注意:通过检查nargout的值,当fun被只带一个输出参数调用的情况下,该函数可避免计算J,仅只有一个输出参数。(这种情况下,优化算法仅需要知道F而不需J)。function F,J = myfun(x)F = . % objective function values at xif nargout > 1 % two output arguments J = . % Jacobian of the function evaluated at xend4.2. options提供该函数有关的特定

5、信息。5. 输出参数5.1. exitflag一个用来表示算法终止原因的整数。1:函数收敛到x2:x的变化已经处在容许范围内3:残差变化已经处在容许范围内4:搜索方向飞幅度比指定的误差小5:迭代次数超过options.MaxIter或函数估值的次数超过options.FunEvals-1:算法被输出函数终止-2:算法似乎收敛到一个非根点。-3:可信半径变得太小-4:沿当前方向的线性搜索不能足够地减小残差5.2. output包含关于优化信息的一个结构,其具有如下字段:iterations:已经迭代的次数funcCount:函数估值的次数algorithm:所使用的算法cgiterations:

6、PCG迭代次数(仅适用于大规模算法)stepsize:最终采取的步长(仅适用于中等规模算法)firstorderopt:第1阶优化的观测值 此处可能翻译不当。5.3. options优化设置。一些选项设置用于所有算法,部分与大规模算法(large-scale algrithm)。相关,部分与中等规模算法相关。可以使用optimset改变其中的设置。LargeScale选项指定使用哪种算法。设为on使用大规模算法,设为off使用中等规模算法。5.3.1. Medium-Scale and Large-Scale Algorithms如下选项用于大规模和中等规模算法:DerivativeCheck

7、:将用户提供导数与有限差分导数相比较Diagnostics:显示被解函数的诊断信息DiffMaxChange:有限差分变量中的最大变化DiffMinChange:有限差分变量中的最小变化Display:显示的级别,off不显示输出,iter显示每一步迭代的输出,final显示最终的输出(默认)FunValCheck:检查目标函数值是否有效。设为on,当函数返回值为复数、inf或NaN将返回一个错误,设为off将不显示错误。Jacobian:设为ON,fsolve将使用用户定义的Jacobian或Jacobian信息来估值目标函数,若设为off,则使用有限差分逼近Jacobian。MaxFunE

8、vals:最大允许估值次数MaxIter:最大迭代次数OutputFcn:指定一个或多个输出函数,优化函数在每一个迭代过程中将调用这些函数。PlotFcns:算法执行时显示进度条。从预定义中选择或自定义进度条。指定optimplotx显示当前的点,optimplotfunccount打印出函数的计数,optimplotfval打印出函数值,optimplotresnorm打印出残差范数,optimplotstepsize打印出步长,optimplotfirstorderopt打印优化参数的第1阶。TolFun:函数值的终止误差。TolX:x的终止误差5.3.2. 仅适用于Large-Scale AlgorithmJacobMult:Jacobian乘法函数的函数句柄JacobPatternMaxPCGIterPrecondBandWidthTolPCG5.3.3. 仅适用于Medium-Scale AlgorithmNonlEqnAlgorithm:'dogleg' Trust-region dogleg algorithm(default)'lm' Levenberg-Marquardt'g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论