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??

답변 (1개)

John D'Errico
John D'Errico 2023년 1월 10일

0 개 추천

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.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

태그

질문:

2011년 4월 4일

답변:

2023년 1월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by