- 积分
- 3
- 注册时间
- 2008-7-25
- 仿真币
-
- 最后登录
- 1970-1-1
|
1 求一元函数fun在区间[a,b]中的无条件极小值f和极小值点x
[x,f]=fminbnd(fun,a,b)d
其中目标函数fun可以是 @m函数名, 也可以是用内联(inline)函数定义的函数,也可以是匿名函数格式是 @(x) 函数表达式
2 求多元目标函数fun在点x0(向量)附近的无条件极小值f和极小值点x(向量)
[x,f]=fminsearch(fun,x0)
例:fun=inline(‘x(1)^4+x(2)^4-4*x(1)*x(2)-5’);[x,f]=fminsearch(fun,[0,0])得到 x=[1,1], f = -7
3 求多元目标函数fun 在x0附近有条件(线性和非线性的都可以)极值
A*x<=b;Aeq*x=beq;lb<=x<=ub;及非线性条件c(x)<=0, ceq(x)=0约束下的极小值f和极小值点x
用法是 [x,f]= fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
输入的第二项以后没有的项可以不写,或写[],输出中第二项以后的项可以不写。
其中nonlcon是非线性条件函数,可以如下编写(函数名自定)
function [c,ceq] = nonlcon(x)c = ... % 条件c(x)<= 0. 中的c(x)的表达式ceq = ... %条件ceq(x)=0. 中的ceq(x)的表达式.options是改变默认的设置的选项。
4 MATLAB专用的线性规划函数:
bintprog() 0-1线性规划
Linprog() 线性规划
quadprog() 求二次规划
fminmax() 求极大中的极小,即最大最小值
fsolve() 求根函数,求给定函数的零点
有时可以通过求 导函数的根来求得极值点,这就是为什么求根函数可以用来解最优化的原因。
lsqcurvefit() 非线性最小二乘曲线拟合函数
例:假如现在有两组数据,xdata和ydata
xdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4];
ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3];
根据实际的分析可能知道他们大概有下面的关系:Ydata=a*xdata^2+b*sin(xdata)+c*xdata^3;(此处只是范例,实际上可以是任意方程)
我们可以用来sqcurvefit来就拟合的系数:
首先编写m文件来实现方程:
function F = myfun(x,xdata)F = x(1)*xdata.^2 + x(2)*sin(xdata) + x(3)*xdata.^3;
然后再进行调用求解:% Assume you determined xdata and ydata experimentallyxdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4];ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3];x0 = [10, 10, 10] % 初始值[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)返回值中x是一个向量 为拟合的系数Resnorm是拟合的误差。 |
评分
-
1
查看全部评分
-
|