标准方差与相关系数1求标准方差在MATLAB中提供了计算

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

二次规划问题
二次规划问题(quadratic programming)的标准形式为:
min
sub.to
1 x H x f x 2
Axb
Aeq x beq
lb x u b
quadprog
其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量
求解下面二次规划问题
min
2 f (x) 1 x 1 x2 2 x1x 2 2 x1 6 x 2 2
sub.to
x1 x 2 2
x1 2x 2 2 2x1 x 2 3 0 x1, 0 x 2
解:


f (x) 1 x H x f x 2

1 1 H 1 2
线性优化
min C T x, x R n s.t. Ax b vlb x vub
x=lp(C,A,b,vlb,vub)
[例] 最小值线性优化 f(x)=-5x1-4x2-6x3 x1-x2+x3≦20 3x1+2x2+4x3≦42 3x1+2x2≦30 (0≦x1, 0≦x2,0≦x3)
“半无限”有约束的多元函数最优解
fseminf
x、b、beq、lb、ub都是向量;A、Aeq是矩阵;C(x)、Ceq(x)、 是返回向量的函数,f(x)为目标函数;f(x)、C(x)、Ceq(x)是非 线性函数;为半无限约束,通常是长度为2的向量
先建立非线性约束和半无限约束函数文件,并保存为mycon.m: function [C,Ceq,K1,K2,S] = mycon(X,S) % 初始化样本间距: if isnan(S(1,1)), S = [0.2 0; 0.2 0]; end % 产生样本集: w1 = 1:S(1,1):100; w2 = 1:S(2,1):100; % 计算半无限约束: K1 = sin(w1*X(1)).*cos(w1*X(2)) - 1/1000*(w1-50).^2 -sin(w1*X(3))-X(3)-1; K2 = sin(w2*X(2)).*cos(w2*X(1)) - 1/1000*(w2-50).^2 -sin(w2*X(3))-X(3)-1; % 无非线性约束: C = [ ]; Ceq=[ ]; % 绘制半无限约束图形 plot(w1,K1,'-',w2,K2,':'),title('Semi-infinite constraints') 然后在MATLAB命令窗口或编辑器中建立M文件: fun = 'sum((x-0.5).^2)'; x0 = [0.5; 0.2; 0.3]; % Starting guess [x,fval] = fseminf(fun,x0,2,@mycon)
非线性优化
m in f ( x), x R n s.t.g (x) 0
x=constr('f ',x0)
fminbnd
计算下面函数在区间(0,1)内的最小值。
x cos x x log x f (x) ex
3
[x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)
利用函数fminunc求多变量无约束函数最小值 当函数的阶数大于2时,使用fminunc比fminsearch更有效, 但当所选函数高度不连续时,使用fminsearch效果较好 求
2 f (x) 3x1 2x1x2 x2 2
的最小值
fun='3*x(1)^2+2*x(1)*x(2)+x(2)^2'; x0=[1 1]; [x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0)
或用下面方法: fun=inline('3*x(1)^2+2*x(1)*x(2)+x(2)^2') x0=[1 1] x=fminunc(fun,x0)
有约束的多元函数最小值
非线性有约束的多元函数的标准形式为:
min f (x)
x
sub.to C (x) 0 Ceq (x) 0
Axb
fmincon
[例] 线性优化 Min -400x1-1000x2-300x3+200x4 -2x2 + x3 + x4=0 2x1 +3x2 <=16 3x1 +4x2 <=24 x1, x2, x3, x4>=0; x3<=5
c=[-400,-1000,-300,200]; %目标函数系数 A=[0 -2 1 1; 2 3 0 0; 3 4 0 0]; %约束条件系数 b=[0; 16; 24]; xLB=[0,0,0,0]; % x取值范围的最小值 xUB=[inf,inf,5,inf]; % x取值范围的最大值 x0=[0,0,0,0]; % x取迭代初始值 nEq=1; % 约束条件中只有一个 = 号,其余为<= x=lp(c,A,b,xLB,xUB,x0,nEq) disp(['最优值为: ',num2str(c*x)])
无约束多元函数最小值
多元函数最小值的标准形式为
min f (x)
x
其中:x为向量,如
x [x1, x 2, , x n ]
wk.baidu.com
使用fmins求其最小值

3 2 y 2x1 4x1x3 2 10x1x 2 x 2
的最小值点
X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2', [0,0])
2 f 6
x1 x x 2
在MATLAB中实现如下: H = [1 -1;-1 2] ; f = [-2; -6] ; A = [1 1;-1 2; 2 1] ; b = [2; 2;3] ; lb = zeros(2,1) ; [x,fval,exitflag,output,lambda] = quadprog(H,f,A,b, [ ] ,[ ] ,lb)
标准方差与相关系数 1.求标准方差 在MATLAB中,提供了计算数据序列的标准方差的函数std。 对于向量X,std(X)返回一个标准方差。对于矩阵A, std(A)返回一个行向量,它的各个元素便是矩阵A各列或 各行的标准方差。std函数的一般调用格式为: Y=std(A,flag,dim) 其中dim取1或2。当dim=1时,求各列元素的标准方差;当 dim=2时,则求各行元素的标准方差。flag取0或1,当 flag=0时,按σ1所列公式计算标准方差,当flag=1时,按 σ2所列公式计算标准方差。缺省flag=0,dim=1。 例6-7 对二维矩阵x,从不同维方向求出其标准方差。
例 生成满足正态分布的10000×5随机矩阵, 然后求各列元素的均值和标准方差,再求 这5列随机数据的相关系数矩阵。 命令如下: X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)
排序 MATLAB中对向量X是排序函数是sort(X),函数返 回一个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列或各行重新排序,其 调用格式为: [Y,I]=sort(A,dim) 其中dim指明对A的列还是行进行排序。若dim=1, 则按列排;若dim=2,则按行排。Y是排序后的矩 阵,而I记录Y中的元素在A中位置。
在[0,5]上求下函数的最小值
f (x) (x 3) 1
3
解:先自定义函数:在MATLAB编辑器中建立M文件为: function f = myfun(x) f = (x-3).^2 - 1; 保存为myfun.m,然后在命令窗口键入命令: x=fminbnd(@myfun,0,5)
[例] 最小值非线性优化 Min f(x)=-x1x2x3, -x1-2x2-2x3≤0, x1+2x2+2x3≤72, 初值: x = [10; 10; 10]
Aeq x beq
lb x ub
其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵, C(x)、Ceq(x)是返回向量的函数, f(x)为目标函数, f(x)、C(x)、Ceq(x)可以是非线性函数
求下面问题在初始点(0,1)处的最优解
min s.t
2 x1 x2 2 x1x 2 2x1 5x 2
%First, enter the coefficients: f = [-5; -4; -6] ; A = [1 -1 1 3 2 4 3 2 0]; b = [20; 42; 30]; lb = [0,0,0]; % x的最小值 [0,0,0] ub = [inf,inf,inf]; %Next, call a linear programming routine: x= lp(f,A,b,lb,ub) %Entering x x= 0.0000 15.0000 3.0000
(x1 1)2 x 2 0
2x1 3x 2 6 0
解:约束条件的标准形式为
min s.t
2 x1 x2 2 x1x 2 2x1 5x 2
2 x1 3 x 2 6
(x1 1) x 2 0
2
先在MATLAB编辑器中建立非线性约束函数文件: function [c, ceq]=mycon (x) c=(x(1)-1)^2-x(2); ceq=[ ]; %无等式约束 然后,在命令窗口键入如下命令或建立M文件: fun='x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2)'; %目标函数 x0=[0 1]; A=[-2 3]; %线性不等式约束 b=6; Aeq=[ ]; %无线性等式约束 beq=[ ]; lb=[ ]; %x没有下、上界 ub=[ ]; [x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)
2.相关系数 MATLAB提供了corrcoef函数,可以求出数 据的相关系数矩阵。corrcoef函数的调用格 式为: corrcoef(X):返回从矩阵X形成的一个相关系 数矩阵。此相关系数矩阵的大小与矩阵X一 样。它把矩阵X的每列作为一个变量,然后 求它们的相关系数。 corrcoef(X,Y):在这里,X,Y是向量,它们与 corrcoef([X,Y])的作用一样。
x = [10; 10; 10] %第一步:编写M文件 myfun.m function [f,g]=myfun(x) f=-x(1)*x(2)*x(3); g(1)=-x(1)-2*x(2)-2*x(3); g(2)=x(1)+2*x(2)+2*x(3)-72; %第二步:求解 %在MATLAB工作窗中键入 x0=[10,10,10]; x=constr('myfun',x0) %即可
或在MATLAB编辑器中建立函数文件 function f=myfun(x) f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2; 保存为myfun.m,在命令窗口键入 X=fminsearch ('myfun', [0,0]) 或 >> X=fminsearch(@myfun, [0,0])
例] 非线性优化 Min f(x)=-x1x2 (x1+ x2)x3<=0; x1, x2>=0; x3>=2;
[第一步:编写M文件 fxxgh.m function [F,G]=fxxgh(x) F=-x(1)*x(2); G(1)=(x(1)+x(2))*x(3)-120;
第二步:求解 在MATLAB工作窗中键入 x=[1,1,1]; % x取迭代初始值 options(13)=0; % 约束条件中有0个 = 号,其余为<= XL=[0,0,2]; % x取值范围的最小值 XU=[inf;inf;inf]; % x取值范围的最大值 [x,options]=constr('fxxgh',x,options,XL,XU); options(8) %输出最小值 x
相关文档
最新文档