⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example4_7.m

📁 This complete matlab for neural network
💻 M
字号:
%第一步:写一个m文件 brownfgh.m 计算目标函数和目标函数的梯度以及稀疏海色矩阵。
function [f,g,H] = brownfgH(x)
%计算目标函数
  n=length(x); y=zeros(n,1);
  i=1:(n-1);
  y(i)=(x(i).^2).^(x(i+1).^2+1)+(x(i+1).^2).^(x(i).^2+1);
  f=sum(y);
%计算函数梯度矩阵。
  if nargout > 1
     i=1:(n-1); g = zeros(n,1);
     g(i)= 2*(x(i+1).^2+1).*x(i).*((x(i).^2).^(x(i+1).^2))+...
            2*x(i).*((x(i+1).^2).^(x(i).^2+1)).*log(x(i+1).^2);
     g(i+1)=g(i+1)+2*x(i+1).*((x(i).^2).^(x(i+1).^2+1)).* ... 
log(x(i).^2)+2*(x(i).^2+1).*x(i+1).*((x(i+1).^2).^(x(i).^2));
  end
%
% 计算稀疏对称海色矩阵
if nargout > 2
v=zeros(n,1);
for i=1:(n-1);
v(i)=2*(x(i+1).^2+1).*((x(i).^2).^(x(i+1).^2))+4*(x(i+1).^2+1).*(x(i+1).^2).*(x(i).^2).*((x(i).^2).^ ... 
((x(i+1).^2)-1))+ 2*((x(i+1).^2).^(x(i).^2+1)).*(log(x(i+1).^2));
v(i)=v(i)+4*(x(i).^2).*((x(i+1).^2).^(x(i).^2+1)).*((log(x(i+1).^2)).^2);
v(i+1)=v(i+1)+2*(x(i).^2).^(x(i+1).^2+1).*(log(x(i).^2))+.4*(x(i+1).^2).*((x(i).^2).^(x(i+1).^2+1)).* ..
. ((log(x(i).^2)) .^2)+2*(x(i).^2+1).*((x(i+1).^2).^(x(i).^2));  
v(i+1)=v(i+1)+4*(x(i).^2+1).*(x(i+1).^2).*(x(i).^2).* ((x(i+1).^2).^(x(i).^2-1));
v0=v;
v=zeros(n-1,1);
v(i)=4*x(i+1).*x(i).*((x(i).^2).^(x(i+1).^2))+4*x(i+1).*(x(i+1).^2+1).*x(i).*((x(i).^2).^ ... 
(x(i+1).^2)).*log(x(i).^2);
 v(i)=v(i)+4*x(i+1).*x(i).*((x(i+1).^2).^(x(i).^2)).*log(x(i+1).^2);
v(i)=v(i)+4*x(i).*((x(i+1).^2).^(x(i).^2)).*x(i+1);
v1=v;
i=[(1:n)';(1:(n-1))'];
    j=[(1:n)';(2:n)'];
s=[v0;2*v1];
H=sparse(i,j,s,n,n);
H=(H+H')/2;
end
end
%第二步:使用命令fmincon 解决此问题。
fun = @brownfgh;
load browneq % 得到A和B的等式
n = 1000;
xstart = -ones(n,1); xstart(2:2:n) = 1;
options = optimset('GradObj','on','Hessian','on', ... 
'PrecondBandWidth', inf);
[x,fval,exitflag,output] = ...
fmincon(fun,xstart,[],[],Aeq,beq,[],[],[],options);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -