Adding weight to data points
조회 수: 6 (최근 30일)
이전 댓글 표시
Hi all,
I'm working on basic model fitting in Matlab and now I'm trying to figure out how to add weight to certain data points and take away weight from others. I have the fitting down so that two of the parameters (r and K) are estimated successfully but the fit isn't great. I tried something (in the third cell of the first script copied below) that I had seen in previous code but it didn't work (no errors but estimated parameters that were way off). Any help would be much appreciated! Thank you!
%%Data import
load 'cultures1e3.csv' %load data for culture
global dataT dataN1
dataT = cultures1e3(:,1); %x = time (days)
dataN1 = cultures1e3(:,2); %y = cell count (cells/mL)
%%Giving data weight - what I've tried so far but it doesn't work
%points to take away weight
dataN1([14 16]) = 0;
%keep weight
dataN1([1 2 3 4 5 6 7 8 9 10 11 12 13 15 17 18]) = 1;
%%Curve fitting
% Initial estimates for r and K ( p0 = [r;K])
p0 = [0.1; 3.5e6] ;
% Estimate parameters
tic
pFit = lsqcurvefit(@logistic, p0, dataT, dataN1) ;
toc
~~~~logistic script (function used in previous script)
function funcN = logistic(p0, T_range)
%logistic growth equation for data fitting
%variables
funcN_init = 1e3;
%options
options = [];
% Solver
%to estimate r
[T funcN] = ode45(@odefun, T_range, funcN_init, options, p0(1), p0(2));
function f_prime = odefun(T, funcN, r, K)
f_prime = r * funcN * (1 - funcN / K);
end
end
댓글 수: 0
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Curve Fitting Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!