shuangjinlover 发表于 2009-4-28 00:30

使用lsqnonlin的困惑!请高手帮忙很急用 谢谢

k0=; N=10; V=20; Q=0.5;
kk=lsqnonlin('wm3',k0);
%输入yt值
y = ;
t = ;
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 =wm3(k)
N=10;V=20;Q=0.5;
%输入yt值
y = ;
t = ;
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
= ...

Error in ==> m2_2 at 3
kk=lsqnonlin('wm3',k0);

我是个新手 急用但又不是很懂 不知道怎么修改 希望高手指点一下 谢谢...

[ 本帖最后由 ChaChing 于 2009-4-28 13:10 编辑 ]

ChaChing 发表于 2009-4-28 11:49

回复 楼主 shuangjinlover 的帖子

Function =wm3(k) 改为function =wm3(k) 试试!
注意matlab的大小写意义不同, 保留字在编译器是会以蓝字呈现!
当然LZ的程式尚会有其他报错, 应该自己试试修改

shuangjinlover 发表于 2009-4-28 13:13

还是不行

还是不行 显示:
??? Error: File: m2_2.m Line: 24 Column: 1
Function definitions are not permitted at the prompt or in scripts.

哪位大哥能帮我调试出来么 哎 郁闷之极!实在不知道怎么改了

[ 本帖最后由 ChaChing 于 2009-4-28 15:54 编辑 ]

ChaChing 发表于 2009-4-28 15:58

回复 板凳 shuangjinlover 的帖子

function wm3是否另外保存?

shuangjinlover 发表于 2009-5-13 00:18

知道了

求出来了 呵呵 谢谢
页: [1]
查看完整版本: 使用lsqnonlin的困惑!请高手帮忙很急用 谢谢