|
楼主 |
发表于 2007-5-30 08:32
|
显示全部楼层
我的计算是这样的
model.m文件
function yy=model(beta,x)
yy=(beta(1)+beta(2).*x(:,1).^beta(3)).*(1+beta(4)*log(x(:,2))) .*(1-((x(:,3)-25)/1643).^beta(5));
%第二个括号中对数运算值有小改动,数据还是那组,命令窗口如下:
x=[0.028 0.00057 293;0.037 0.00057 293;0.045 0.00057 293;0.053 0.00057 293;0.061 0.00057 293;0.072 0.00057 293;0.08 0.00057 293;0.089 0.00057 293;0.093 0.00057 293;0.106 0.00057 293;0.113 0.00057 293;0.124 0.00057 293;0.133 0.00057 293;0.028 1500 293;0.037 1500 293;0.045 1500 293;0.053 1500 293;0.061 1500 293;0.072 1500 293;0.08 1500 293;0.089 1500 293;0.093 1500 293;0.106 1500 293;0.113 1500 293;0.124 1500 293;0.133 1500 293;0.028 1500 183;0.037 1500 183;0.045 1500 183;0.053 1500 183;0.061 1500 183;0.072 1500 183;0.08 1500 183;0.089 1500 183;0.093 1500 183;0.106 1500 183;0.113 1500 183;0.124 1500 183;0.133 1500 183;0.028 1500 163;0.037 1500 163;0.045 1500 163;0.053 1500 163;0.061 1500 163;0.072 1500 163;0.08 1500 163;0.089 1500 163;0.093 1500 163;0.106 1500 163;0.113 1500 163;0.124 1500 163;0.133 1500 163]
y=[1070 1080 1090 1100 1120 1130 1150 1150 1160 1170 1180 1190 1195 1410 1420 1430 1440 1450 1460 1470 1470 1480 1470 1480 1480 1495 1530 1600 1615 1610 1605 1610 1620 1620 1620 1615 1620 1620 1625 1690 1720 1730 1740 1740 1760 1760 1760 1750 1755 1740 1725 1730]’
beta=[1000 600 0.4 0.1 0.5];
betafit=nlinfit(x,y,'model',beta)
.^与^的区别已分清,还有*与.*,但现在结果对初值敏感,换初值结果变化大,用1stopt计算,写函数时老报错,
Function y=(beta1+beta2*x1^beta3)*(1+beta4*log(x2)) *(1-((x3-25)/1643)^beta5);
请大侠们指教! |
|