Quasi newton method for optimization

55 visualizaciones (últimos 30 días)
christina
christina el 22 de Jun. de 2018
Comentada: HN el 15 de Oct. de 2020
I am trying to solve the above objective function for theta using quasi newton method. But I am getting the following error. Can somebody please help me fix this error?
Following is my matlab code:
Code for defining objective function:
function f = objfun(x_t,c_n,theta)
t=0:length(x_t)-1;
L=length(t);
n=0:length(c_n)-1;
N=length(n);
for i=1:L
for j=1:N
f=@(theta) sum((x_t(i)-sum(c_n(j).*exp(-((t(i)-n(j)*a)^2/theta^2))))^2)
end
end
end
Code for calling objective function:
a = 1;
x_t=rand(32,1);
c_n=rand(32,1);
f = @(theta) objfun(x_t,c_n,theta)
theta0 = 20;
options = optimoptions('fminunc','Algorithm','quasi-newton');
[theta, thetaval] = fminunc(f,theta0,options)
%

Respuesta aceptada

Alan Weiss
Alan Weiss el 22 de Jun. de 2018
Try this for your function:
function f = objfuntc(x_t,c_n,theta)
L = length(x_t);
N = length(c_n);
f = 0;
for t = 1:L
xs = 0;
for n = 1:N
xs = xs + c_n(n)*exp(-(((t-n)/theta)^2));
end
f = f + (x_t(t) - xs)^2;
end
Call it like this:
a = 1;
x_t = rand(32,1);
c_n = rand(32,1);
f = @(theta) objfuntc(x_t,c_n,theta)
theta0 = 20;
options = optimoptions('fminunc','Algorithm','quasi-newton');
[theta, thetaval] = fminunc(f,theta0,options)
Alan Weiss
MATLAB mathematical toolbox documentation
  5 comentarios
Alan Weiss
Alan Weiss el 14 de Oct. de 2020
Sorry, I don't know what you are asking. Please start a new question with a clear problem statement.
Alan Weiss
MATLAB mathematical toolbox documentation
HN
HN el 15 de Oct. de 2020
Ok, thank you.

Iniciar sesión para comentar.

Más respuestas (1)

victor d
victor d el 12 de Feb. de 2019
In my Research (data in Excel format )
5 independent variables
1 dependent variables.
So i need to do the following neural Network algorithms.
1.Backpropagation algorithms
2.conjugate gradient method
3.Quasi-Newton method

Categorías

Más información sobre Surrogate Optimization en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by