parameter Heligman pollard

hi all, i have data, x1=[0;1;5;10;15;20;25;30;35;40;45;50;55;60;65;70;75]; ydata=[0.00859 0.001714 0.001466 0.001308 0.00381 0.005388 0.005978 0.00673 0.009336 0.014156 0.021598 0.034274 0.05383 0.08526 0.136546 0.21604 0.329148];
with function is y=((b1.^((x+b2).^b3))+(b4.*exp(-b5.*(log(x./b6)).^2))+(b7.*(b8.^x)))/(1+((b1.^((x+b2).^b3))+(b4.*exp(-b5.*(log(x./b6)).^2))+(b7.*(b8.^x))));
and my questions is how to find parameter b1,b2....b8??

Answers (1)

Given only 17 data points, estimation of 8 highly nonlinear parameters will be almost impossible. Sorry.
x1=[0;1;5;10;15;20;25;30;35;40;45;50;55;60;65;70;75];
ydata=[0.00859 0.001714 0.001466 0.001308 0.00381 0.005388 0.005978 0.00673 0.009336 0.014156 0.021598 0.034274 0.05383 0.08526 0.136546 0.21604 0.329148];
plot(x1,ydata,'o')
What is worse, the data varies over several orders of magnitude. And that will cause serious problems with convergence. And it looks like the first data point is in error, with a probable typo.
You will never be happy with the result. At the very least, it would be absolutely imperative to have extremely good starting values for the parameters.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Asked:

on 4 Apr 2011

Answered:

on 10 Jan 2023

Community Treasure Hunt

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

Start Hunting!