pwl1991317 发表于 2010-3-20 01:06

疯了,求助啊~急

要进行一个参数拟合
等式为  w=k*c.^2*l

在matlab中输入如下程序:

function w=myfun(k,c,l);
w=k*c.^2*l


(k 是要拟合的参数)

c=;
l=;
w=;
k=0;
k=lsqcurvefit(@myfun,k,c,l)

回车后出现:
>> k=lsqcurvefit(@myfun,k,c,l)
??? Error using ==> optim\private\lsqncommon
User supplied function failed with the following error:
Input argument "l" is undefined.
Error in ==> lsqcurvefit at 149
= ...


有两个问题,
1.我的k的初值可以这样赋吗?
2.这个程序最后是除什么问题了??

原谅  
我是一只小菜鸟~


请你指出我的错误 顺便给我个正确的程序
先谢谢了~~~

pwl1991317 发表于 2010-3-20 08:21

{:3_58:}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

madio 发表于 2010-3-20 10:37

我给你改了一下,不知道是不是符合你的要求!
function w=myfun(k,c);
l=;
  w=k*c.^2.*l
>>c=;
>> w=;
>> k=0;
>> k=lsqcurvefit(@myfun,k,c,w)
运行结果:
Optimization terminated: norm of the current step is less
than OPTIONS.TolX.

k =

    0.0322

建议你好好读一读lsqcurvefit的帮助,里面有例子!

pwl1991317 发表于 2010-3-20 19:46

回复 3# madio

sfunction w=myfun(k,c);
  
请问下,为什么这一步括号里面只有k 和 c??

madio 发表于 2010-3-20 23:09

我把l放在函数里面了,因为lsqcurvefit函数的参数只让输入两个,所以我就放了两个!

pwl1991317 发表于 2010-3-21 11:41

:handshake

谢谢~。。。。。。。。。。。。。。
页: [1]
查看完整版本: 疯了,求助啊~急