用Matlab求解非线性方程组-甘才军的Matlab学习笔记
更新时间:2023-10-28 04:19:01 阅读量: 综合文库 文档下载
1. fsolve
求解非线性方程组 方程: F(x)=0
x是一个向量,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 = 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
非线性系统方程。它是一个函数,以x作为输入,返回向量F。函数fun可以被指定为一个M文件函数的函数句柄。
x = fsolve(@myfun,x0)
这里的myfun是一个matlab函数,形如: function F = myfun(x)
F = ... % Compute function values at x fun也可以是一个异步函数的函数句柄: x = fsolve(@(x)sin(x.*x),x0);
若用户定义的值为矩阵,则会被自动转换为向量。
若Jacobian能被计算出来且通过options = optimset('Jacobian','on')设置Jacobian选项为”on”,则函数fun必须在第2个输出参数中返回x处的Jacobian值J(它是一个矩阵)。注意:通过检查nargout的值,当fun被只带一个输出参数调用的情况下,该函数可避免计算J,仅只有一个输出参数。(这种情况下,优化算法仅需要知道F而不需J)。
function [F,J] = myfun(x)
F = ... % objective function values at x
if nargout > 1 % two output arguments
J = ... % Jacobian of the function evaluated at x end
4.2. options
提供该函数有关的特定信息。
5. 输出参数
5.1. exitflag
一个用来表示算法终止原因的整数。 1:函数收敛到x
2:x的变化已经处在容许范围内 3:残差变化已经处在容许范围内 4:搜索方向飞幅度比指定的误差小
5:迭代次数超过options.MaxIter或函数估值的次数超过options.FunEvals -1:算法被输出函数终止
-2:算法似乎收敛到一个非根点。 -3:可信半径变得太小
-4:沿当前方向的线性搜索不能足够地减小残差
5.2. output
包含关于优化信息的一个结构,其具有如下字段: iterations:已经迭代的次数 funcCount:函数估值的次数 algorithm:所使用的算法
cgiterations:PCG迭代次数(仅适用于大规模算法) stepsize:最终采取的步长(仅适用于中等规模算法) firstorderopt:第1阶优化的观测值1。
5.3. options
优化设置。一些选项设置用于所有算法,部分与大规模算法(large-scale algrithm)。相关,部分与中等规模算法相关。可以使用optimset改变其中的设置。LargeScale选项指定使用哪种算法。
设为‘on’使用大规模算法,设为‘off’使用中等规模算法。
1
此处可能翻译不当
5.3.1. Medium-Scale and Large-Scale Algorithms
如下选项用于大规模和中等规模算法:
DerivativeCheck:将用户提供导数与有限差分导数相比较 Diagnostics:显示被解函数的诊断信息
DiffMaxChange:有限差分变量中的最大变化 DiffMinChange:有限差分变量中的最小变化 Display:显示的级别,‘off‘不显示输出,’iter‘显示每一步迭代的输出,’final‘显示最终的输出(默认)
FunValCheck:检查目标函数值是否有效。设为‘on’,当函数返回值为复数、inf或NaN将返回一个错误,设为‘off’将不显示错误。
Jacobian:设为‘ON’,fsolve将使用用户定义的Jacobian或Jacobian信息来估值目标函数,若设为‘off’,则使用有限差分逼近Jacobian。
MaxFunEvals:最大允许估值次数 MaxIter:最大迭代次数
OutputFcn:指定一个或多个输出函数,优化函数在每一个迭代过程中将调用这些函数。 PlotFcns:算法执行时显示进度条。从预定义中选择或自定义进度条。指定@optimplotx显示当前的点,@optimplotfunccount打印出函数的计数,@optimplotfval打印出函数值,@optimplotresnorm打印出残差范数,@optimplotstepsize打印出步长,@optimplotfirstorderopt打印优化参数的第1阶。
TolFun:函数值的终止误差。 TolX:x的终止误差
5.3.2. 仅适用于Large-Scale Algorithm
JacobMult:Jacobian乘法函数的函数句柄 JacobPattern MaxPCGIter
PrecondBandWidth TolPCG
5.3.3. 仅适用于Medium-Scale Algorithm
NonlEqnAlgorithm:
'dogleg' — Trust-region dogleg algorithm (default)
'lm' — Levenberg-Marquardt 'gn' — Gauss-Newton
LineSearchType:'lm' (Levenberg-Marquardt) 'gn' (Gauss-Netwton) algorithms.
6. 使用优化工具箱完成以上函数操作
命令:optimtool
正在阅读:
用Matlab求解非线性方程组-甘才军的Matlab学习笔记10-28
记叙文之写作手法分析题(一)06-28
低压开关柜的发展趋势与改进思路01-23
【澳洲留学签证申请】澳大利亚留学签证申请,一定要注意这些细节05-26
人事管理规定(草案)03-25
法定代表人变更登记提交材料规范01-05
凝血实验的标准化和质量控制问题WORD04-23
工程力学公式12-04
认知失调报告03-27
重庆市工业用地规划导则06-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 方程组
- Matlab
- 非线性
- 求解
- 笔记
- 学习
- 甘才军
- 东北师大心理学16春在线作业2
- 英语四六级写作:文章结尾的技巧及必背句型
- 清华同方组合式空调机组技术说明 - 图文
- 2018-2019年高中语文知识点《作文及写作》《小作文》精选专题试卷含答案考点及解析
- 2010土壤地理学复习题
- 人类巴氏小体的观察
- 数学教学中爱国主义教育
- 基于XKMS系统的XML密钥管理系统的研究和实现
- 陈化成之死
- 针推科 - 艾灸疗法介绍
- 最新长春版小学语文三年级上册全册 教案(2018改版新教材)
- 云南省实验教材五年级(上)信息技术教案 - 图文
- 《国务院关于修改出版管理条例的决定》中华人民共和国国务院令第594号
- 从自我走向角色 - 浅析塑造《钦差大臣》中的赫列斯达可夫
- 铜陵市旅游总体规划 - 图文
- DOS基本操作练习题
- 身势语在英语高效课堂中的运用
- 认识年月日教学设计
- 中国心理学博士招生院校一览表
- 六年级语文期末试卷5