|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
k0=[1 1 1]; N=10; V=20; Q=0.5;
kk=lsqnonlin('wm3',k0);
%输入yt值
y = [100 200 300 400 500 400 300 200 100 50];
t = [1 10 20 30 40 50 60 70 80 90];
cm = max(y); s = find(y>=max(y));
for i=1:N
c(i)=(kk(3)-1)/(Q+kk(2)*V-kk(1)*V)*exp(-(Q/V+kk(2))*t(i))+(1/(Q+kk(2)*V-kk(1)*V)+kk(3)*kk(2)*V/((Q+kk(2)*V-kk(1)*V)*(Q-kk(01)*V)))*exp(-kk(1)*t(i))-kk(3)/(Q-kk(1)*V)*exp(-Q/V*t(i))
end
b=c(s);
for i=1:N, ccc(i)=cm/b*c(i); end
kk, ccc
M = cm/(b*kk(1));
plot(t,y,'r:',t,ccc,'g-'); xlable('T(day)'); ylable('COD(g/l)');
title('图2-1模型值与实测值比较'); legend('实测值','模型值');
后面是function函数
Function [f21]=wm3(k)
N=10;V=20;Q=0.5;
%输入yt值
y = [100 200 300 400 500 400 300 200 100 50];
t = [1 10 20 30 40 50 60 70 80 90];
cm = max(y); s = find(y>=max(y));
for i=1:N
c(i)=(kk(3)-1)/(Q+kk(2)*V-kk(1)*V)*exp(-(Q/V+kk(2))*t(i))
end
b=c(s);
for i=1:N, cc(i)=cm/b*c(i)-y(i); end
f21 = cc(1:N);
为何在运行的时候出现:
??? Error using ==> lsqncommon at 101
LSQNONLIN cannot continue because user supplied objective function failed with the following error:
Error using ==> feval
Undefined function or method 'wm3' for input arguments of type 'double'.
Error in ==> lsqnonlin at 182
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Error in ==> m2_2 at 3
kk=lsqnonlin('wm3',k0);
我是个新手 急用但又不是很懂 不知道怎么修改 希望高手指点一下 谢谢...
[ 本帖最后由 ChaChing 于 2009-4-28 13:10 编辑 ] |
|