微积分问题的MATLAB求解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模型
Min F ( x) s.t. x1 x x 2
Min F ( x)
Байду номын сангаас
基本函数 x=fminbnd(‘F’,x1,x2) x=fminunc(‘F’,x0) x=fminsearch(‘F’,x0) x=linprog(c,A,b) x=bintprog(F)
二次规划 约束极小值 非线性最小二乘 目标达到问题 极小极大问题
fun
H
A,b
Aeq,beq vlb,vub X0 x1,x2 options
A矩阵和b向量分别为线性不等式约束: linprog,quadprog,fgoalattain, fmincon,fminimax AX≤b中的系数矩阵和右端向量 Aeq矩阵和beq向量分别为线性等式约 束Aeq*X=beq中的系数矩阵和右端向量 X的下限和上限向量 迭代初始点坐标 函数最小化的区间 优化选项参数结构 linprog,quadprog,fgoalattain, fmincon,fminimax linprog,quadprog,fgoalattain, fmincon,fminimax,lsqcurvefit, lsqnonlin 除fminbnd外所有函数 fminbnd 所有优化函数
5、函数输出参数
变量 描述 描述退出条件: exitflag>0表示目标函数收敛于x exitflag=0表示已达到函数评价或迭代的最大次数 exitflag<0表示目标函数不收敛 由优化函数求的x值 解x处的目标函数值 包含优化结果信息的输出结构 iterations,Algorithm,FuncCount(函数评价次数) 所有优化函数 linprog,quadprog,fgoalattain fmincon,fminimax,lsqcurvefit lsqnonlin,fminbnd 所有优化函数 调用函数
(2)使用fminunc函数: x=fminunc(fun,x0,options) x=fminunc(problem),所需求解的问题和选项由problem结构指定,包含
objective(目标函数),x0(初始点),solver(求解方法),options
[x,fval]=fminunc(...) [x,fval,exitflag]=fminunc (...) [x,fval,exitflag,output]=fminunc(...) [x,fval,exitflag,output,grad]=fminunc(...),grad返回函数fun在极小点处的梯度; [x,fval,exitflag,output,grad,hessian],hessian是函数fun在极小点x处的海森矩阵。
例如:
3.2 偏导数
diff函数同样可以用于求偏导数,调用格式同一元函数相同,二阶偏导数的调用格 式为: diff(diff(z,x),y)表示z先对x求偏导,在对y求偏导。
四. 极值的计算之 MATLAB的优化工具箱
1、优化工具箱可以解决的问题
(1)求解无约束条件非线性极小值; (2)求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问 题以及半无限极小值问题; (3)求解二次规划和线性规划问题;
2优化工具箱的结构优化工具箱40连续优化离散优化01规划bintprog无约束优化约束优化非线性极小fminunc非光滑优化fminsearch线性规划linprog二次规划quadprog其他规划gagamultiobjsimulannealbndpatternsearchthreshacceptbnd非线性方程fzerofsolve非线性最小二乘lsqnonlinlsqcurvefit非线性规划fminconfminimaxfgoalattainfseminf约束线性最小二乘lsqnonneglsqlin上下界约束fminbndfminconlsqnonlinlsqcurvefit3优化工具箱中常用的函数及其功能类型模型基本函数一元函数极小值xfminbndfx1x2无约束极小值xfminuncfx0xfminsearchfx0线性规划xlinprogcab01整数规划xbintprogf二次规划约束极小值xfminconfgx0非线性最小二乘xlsqnonlinfx0目标达到问题xfgoalattainfxgoalw极小极大问题xfminimaxfgx0变量描述调用函数线性规划目标函数fx或二次规划的目标函数xhxfx中线性项的系数向量linprogquadprogfun非线性优化的目标函数
exitflag
x feval
output
注意:多数优化函数要求目标函数最小化,如果要求最大化,可以通过使该目标函数
的负值最小化实现;约束非负时,通过对不等式取负可以使大于零的约束变为小于零 的不等式约束;避免使用全局变量。
6、GUI优化工具及使用步骤
通过在命令行输入optimtool或者打开start/Toolboxes/Optimization/Optimization tool。
四. 极值的计算 五. 积分的计算 六. 曲线积分和曲面积分
七. 函数作图 八. 微分方程(组)的求解
九. 无穷级数
一. 函数与极限计算
1.1函数计算
如同使用高级计算器一样,给定自变量的数据即可获得对应的函数值,如 y=sin(x),并且可以同时计算任意多点的函数值。
1.2一元函数极限问题的解析解
约束优化 线性规划 linprog 非线性规划 fmincon fminimax fgoalattain fseminf 二次规划 quadprog
0-1规划(bintprog)
非线性最小二乘 lsqnonlin lsqcurvefit
其他规划ga gamultiobj simulannealbnd patternsearch threshacceptbnd 上下界 约束 fminbnd fmincon lsqnonlin lsqcurvefit
例如:
1.3 多元函数的极限
多元极限问题的一般描述为:
A lim f ( x)
x x0 y y0
可以嵌套使用limit函数,调用形式如下:
limit(limit(f,x,x0),y,y0),如果x0,y0不是确定的值,则极限求取顺序不能交换。 limit(limit(f,y,y0),x,x0)
约束线性 最小二乘 lsqnonneg lsqlin
3、优化工具箱中常用的函数及其功能
类型 一元函数极小值 无约束极小值 线性规划 0-1整数规划
Min cT x s.t. AX b
min F ( x ) AX b s.t. Aeq X beq X 0或1 i
min F 2 ( X ) Fi 2 ( X )
i 1
n
Min r s.t. F ( x) wr goal
Min max{Fi ( x)}
x { Fi ( x )}
s.t. G ( x) 0
4、函数输入参数
变量 f 描述 线性规划目标函数f*X或二次规划的目 标函数X’*H*X+F*X中线性项的系数向量 非线性优化的目标函数. fun必须为行命 令对象或M文件、嵌入函数、或MEX文 件的名称 二次规划目标函数X’*H*X+f*X中的二次 项的系数矩阵 调用函数 linprog,quadprog fminbnd,fminsearch,fminunc, fmincon,lsqcurvefit,lsqnonlin, fgoalattain,fminimax quadprog
(4)非线性最小二乘逼近和曲线拟合;
(5)非线性系统的方程求解; (6)约束条件下的线性最小二乘优化;
(7)求解复杂结构的大规模优化问题。
2、优化工具箱的结构
优化工具箱4.0
连续优化
无约束优化 非线性极小 fminunc 非线性方程 fzero fsolve 非光滑优化 fminsearch
离散优化
例如:
二. 代数方程的计算
MATLAB提供了求代数方程及方程组的命令函数,调用格式如下: roots(p) p是代表多项式的系数,按照降幂方式形成的行向量,适用于次数不
超过20的多项式。
fzero(f,x0) 在x0附近寻找函数f的零点,如果x0是一个区间[a,b]时,则在[a,b]
[x,fval,exitflag,output]=fminbnd(...)output返回函数fminbnd的求解信息(迭代 次数,所用算法等) 例题:求f(x)=x^4-x^2+x-1在区间[-2,1]上的极小值。
(1)使用fminsearch函数: x=fminsearch(fun,x0) x=fminsearch(fun,x0,options) [x,fval]=fminsearch(...) [x,fval,exitflag]=fminsearch(...) [x,fval,exitflag,output]=fminsearch(...) 例题:fminsearch函数求f(x)=1/((x1-2)^2+3)-1/(2(x2+1)^2-5),初始点[0,0], 运算结果如下:
极限问题的一般描述为:
A lim f ( x)
x x0
A lim f ( x)
x x0
A lim f ( x)
x x0
MATLAB符号运算工具箱中可以使用limit()函数进行计算,调用格式有: limit(f,x,a) limit(f,a) 符号函数f的变量为函数findsym(f)确定的默认自变量。 limit(f)符号函数f的变量为函数findsym(f)确定的默认自变量,系统默认变量趋于0 limit(f,x,a,’right’) limit(f,x,a,’left’)
第七步
第一步
第二步
第三步
第四步
第五步
第六步
例一:用单纯形法求解下面的线性规划
min f 4 x1 x2 x1 2 x2 4 2 x 3 x 12 1 2 s.t. x1 x2 3 x1 , x2 0
例二:非线性优化
f ( x ) x1 x2 x3 x1 2 x2 2 x3 0 s.t. x1 2 x2 2 x3 72
例题:fminunc函数求f(x)=1/((x1-2)^2+3)-1/(2(x2+1)^2-5),初始点[0,0],运算结 果如下:
注:当用户没有提供梯度矩阵的时候,fminunc采用线性搜索算法(本题使用了拟牛 顿法),当用户提供梯度矩阵的时候,fminunc采用信赖域算法。
(3)使用fminimax函数:
该函数解决如下一类优化问题:
c ( x ) 0 ceq( x) 0 min max Fi ( x), s.t. Ax b x i Aeqx beq lb x ub
x=fminimax(fun,x0) x=fminimax(fun,x0,A,b),从起始点x0出发,求出fun满足约束条件 Ax b 的一个最 小最大点; x=fminimax(fun,x0,A,b,Aeq,beq) x=fminimax(fun,x0,A,b,Aeq,beq,lb,ub) x=fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)nonlcon包括非线性约束; x=fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)options指定优化选项; x=fminimax(problem) [x,fval]=fminimax(...)
使用fminbnd函数:
x=fminbnd(fun,x1,x2),求函数在区间[x1,x2]上的极小值对应的自变量值
x=fminbnd(fun,x1,x2,options) [x,fval]=fminbnd(...),fval返回最小值
[x,fval,exitflag]=fminbnd(...)exitflag返回求解状态(成功还是失败!)
1 Min xT Hx cT x 2 s.t. Ax b
x=quadprog(H,c,A,b)
Min F ( x) s.t. G ( x) 0
x=fmincon(‘FG’,X0) x=lsqnonlin(F,X0) x=fgoalattain(‘F’,x,goal,w) x=fminimax(‘FG’,x0)
第二章 微积分问题的MATLAB求解
10
10
5
5
0
0
-5
-5
-10 30 20 10 0 5 0 15 10 25 20
-10 30 20 10 0 5 0 15 10 25 20
25
20
2
1
15
0
10
-1
5
-2 2 1 0 -1 -1 -2 -2 1 0 2
5
10
15
20
25
主要内容
一. 函数与极限计算 二. 代数方程的计算 三. 微商的计算
内寻找一个近似零点。 solve(f)求解表达式f的代数方程,求解变量为默认变量。 solve(f,x)求解变量为x sovle(f1,f2,...,fn,x1,x2,...,xn)求解f1,f2,...,fn表示的代数方程组。
例如:
三. 微商的计算
3.1符号导数
diff函数用于对符号表达式求导数,该函数的调用形式为: diff(f)没有指定变量和导数阶数,系统按照findsym函数指示的默认变量求一阶导数 diff(f,x) diff(f,n)按findsym函数指示的默认变量求n阶导数,n必须为正整数。 diff(f,x,n)
相关文档
最新文档