Optimization problem using Quasi Newton method
7 views (last 30 days)
Show older comments
Given x_t and c_mn, the objective function is defined as:
I am trying to solve the above objective function for theta using quasi newton method. But there seem to be some problem with my code as it's not working. Could somebody please help me with this?
Following is my matlab code:
Code for defining objective function:
function f = objfuntc(x_t,c_mn,theta )
L = length(x_t );
[M,N] =size(c_mn);
f = 0 ;
for t = 1:L
xs = 0 ;
for n = 1:N
for m=1:M
xs = xs + c_mn(m,n)*exp(1i*2*pi*m*(t - n -2) + theta);
end
end
f = f + (x_t(t) - xs)^2 ;
end
Code for calling objective function:
x_t = rand(16,1 );
L = length(x_t);
a = 1;
M = L;
c = rand(M*L/a,1 );
c_mn=reshape(c,[M,L/a]);
J = @(theta) objfuntc(x_t,c_mn,theta )
theta0 = 10 ;
options = optimoptions('fminunc','Algorithm','quasi-newton ');
[theta, thetaval] = fminunc(J,theta0,options)
12 Comments
Answers (0)
See Also
Categories
Find more on Get Started with Optimization Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!