欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

nlinfit函数 matlab,Matlab中拟合函数nlinfit和lsqcurvefit的问题

发布时间:2023/12/10 循环神经网络 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 nlinfit函数 matlab,Matlab中拟合函数nlinfit和lsqcurvefit的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我有98个数据,存放在data1.txt中,这是纵轴值。横轴表示时间。我想用这些数据拟合出Logistic曲线并进行预测,我是这样想的,先用三点法计算出拟合参数的估值,然后把这估值作初值用nlinfit或lsqcurvefit拟合。

logistic曲线的模型:y=L/(1+a*exp(-1*b*x))

下面是我的代码,很简单:

% Logstic预测沉降模型

clear;

clc;

y0=load('data1.txt');% 载入原始数据

n=length(y0);

y1=1./y0;

m=54;

r=m/3;

S1=sum(y1(1:r));

S2=sum(y1(r+1:2*r));

S3=sum(y1(2*r+1:3*r));

b=log((S1-S2)/(S2-S3))/r;

L=r/(S1-(S1-S2)^2/(S1-2*S2+S3));

a=(S1-S2)^2*(1-exp(-1*b))*L/((S1-2*S2+S3)*exp(-1*b)*(1-exp(-1*r*b)));

for i=1:m

t(i)=i;

end

fun=inline('c(1)/(1+c(2)*exp((-1)*c(3)*x))','c','x');

c0=[L,a,b];

y2=y0(1:m)';

%[c renmon]=lsqcurvefit(fun,c0,t,y2);

[c renmon]=nlinfit(t,y2,fun,c0);

for i=1:n

y3(i)=c(1)/(1+c(2)*exp(-1*c(3)*i);

end

plot(t,y0(1:l),t,y2');

但是不对,总是报错,具体如下

1.用nlinfit错误如下:

??? Error using ==> nlinfit

The inline model function generated the following error:

Error using ==> inlineeval

Error in inline expression ==> c(1)/(1+c(2)*exp((-1)*c(3)*x))

??? Error using ==> mrdivide

Matrix dimensions must agree.

Error in ==> Logistic2 at 26

[c renmon]=nlinfit(t,y2,fun,c0);

说是矩阵维数不匹配!

2.用lsqcurvefit错误如下:

??? Error using ==> optim\private\lsqncommon

User supplied expression or inline function ==> c(1)/(1+c(2)*exp((-1)*c(3)*x))

failed with the following error:

Error using ==> inlineeval

Error in inline expression ==> c(1)/(1+c(2)*exp((-1)*c(3)*x))

??? Error using ==> mrdivide

Matrix dimensions must agree.

Error in ==> lsqcurvefit at 149

[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...

Error in ==> Logistic2 at 25

[c renmon]=lsqcurvefit(fun,c0,t,y2);

好像除了维数不对,lsqcurvefit函数输出参数数也不对,⊙﹏⊙汗。可是我是参照别人的代码写的啊。我把模型函数重新建了个m文件也不行。我是用的7.0的版本

这是什么问题?谁能帮我解决呢?不胜感激!我是新手,还没有m币,所以大家见谅啊

总结

以上是生活随笔为你收集整理的nlinfit函数 matlab,Matlab中拟合函数nlinfit和lsqcurvefit的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。