Ваша функция
у = а(0,01 - b*n-cx)
находится в довольно специфической форме с 4 неизвестными. Чтобы оценить ваши параметры из вашего списка наблюдений, я бы рекомендовал вам упростить его
у = β1 + β2β3x
Это становится нашей целевой функцией, и мы можем использовать обычный метод наименьших квадратов, чтобы найти хороший набор бета-коэффициентов.
В Matlab по умолчанию вы можете использовать fminsearch
, чтобы найти эти параметры β (давайте вызовем это наш вектор параметров, β), а затем вы можете использовать простую алгебру, чтобы вернуться к своим a
, b
, c
и n
(при условии, что вы знаете b
или n
заранее ). Я уверен, что в Octave вы можете найти эквивалентную функцию, я бы начал с поиска здесь: http://octave.sourceforge.net/optim/index.html.
Мы собираемся вызвать fminsearch
, но нам нужно каким-то образом передать ваши наблюдения (т.е. x
и y
), и мы сделаем это с помощью анонимных функций, как в примере 2 из документации:
beta = fminsearch(@(x,y) objfun(x,y,beta), beta0) %// beta0 are your initial guesses for beta, e.g. [0,0,0] or [1,1,1]. You need to pick these to be somewhat close to the correct values.
И мы определяем нашу целевую функцию следующим образом:
function sse = objfun(x, y, beta)
f = beta(1) + beta(2).^(beta(3).*x);
err = sum((y-f).^2); %// this is the sum of square errors, often called SSE and it is what we are trying to minimise!
end
Итак, собираем все вместе:
y= [0.001; 0.0042222222; 0.0074444444; 0.0106666667; 0.0138888889; 0.0171111111; 0.0203333333; 0.0235555556; 0.0267777778; 0.03];
x= [3.52E-06; 9.72E-05; 0.0002822918; 0.0004929136; 0.0006759156; 0.0008199029; 0.0009092797; 0.0009458332; 0.0009749509; 0.0009892005];
beta0 = [0,0,0];
beta = fminsearch(@(x,y) objfun(x,y,beta), beta0)
Теперь вам нужно решить a
, b
и c
через beta(1)
, beta(2)
и beta(3)
, что вы можете сделать на бумаге.
person
Dan
schedule
14.05.2015
n
константой? Вы можете подобрать кривую OLS. - person Dan   schedule 14.05.20150.01
термин будет надоедливым... может быть, вам просто придется не брать журналы - person Dan   schedule 14.05.2015