?? sqp_optimization_gini.m
字號:
% =========================================================================% Copyright (c)2006, 東南大學移動通信國家重點實驗室% All rights reserved.%% 文件名稱:SQP_Optimization_Gini.m% function描述:自編SQP的最優折中曲線搜索,Gini Index% 當前版本: 1.0% 作 者:梁浩% 完成日期: 2007年6月%==========================================================================function [op_th op_fair op_w] = SQP_Optimization_Gini(N, aimFair, mean, sigma)precision = 10.^(-6);epsilon_g = 100; % 放松對梯度的要求,因為最大值點不一定是局部的極大值點epsilon_F = 10 .^ (-4);% 步驟(i)iter_num = 0;w = 1 .* ones(1, N-1);% 步驟(ii)[T F] = T_F_w_Gini(w, N, aimFair, mean, sigma);[g A] = g_A_w_Gini(w, N, aimFair, mean, sigma, precision);lambda = A' \ g';[x,fval,exitflag,output,grad,W] = W_w_lambda_Gini(N, aimFair, mean, sigma, lambda); % 用fmincon求初始時刻的Hessian矩陣:W[T F g A S] = T_F_g_A_S_w_Gini(w, N, aimFair, mean, sigma, lambda, precision); % 求目標函數、限制函數和Lagrangian函數的梯度% % 步驟(iii)-(x)的循環while 1% % % abs(g)% % % abs(F) if (sum(abs(g))<epsilon_g) && (abs(F)<epsilon_F) break end mat_for_solving_A = W; [size_row size_col] = size(mat_for_solving_A); mat_for_solving_A(size_row+1,:) = A; mat_for_solving_A(:,size_col+1) = [A, 0]'; mat_for_solving_b = -[g+lambda.*A, F]'; solution = mat_for_solving_A \ mat_for_solving_b; delta_w = solution(1:length(solution)-1); delta_lambda = solution(length(solution)); S_old = S; % 記錄當前狀態,以便于計算delta_S w = w + delta_w'; lambda = lambda + delta_lambda'; % 更新參數 [T F g A S] = T_F_g_A_S_w_Gini(w, N, aimFair, mean, sigma, lambda, precision); g A S T F delta_S = S - S_old; % 更新Hsessian矩陣% % % W = W - W * delta_w * (W * delta_w)' ./ (delta_w' * W * delta_w) + delta_S' * delta_S ./ (delta_S * delta_w); [x,fval,exitflag,output,grad,W] = W_w_lambda_Gini(N, aimFair, mean, sigma, lambda); endop_th = -T;op_fair = F + aimFair;op_w = w;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -