使用lsqnonlin的困惑!怎么样赋方程中变量的值a?等待中。谢谢!
xdata=;>> ydata=;
>> a=5;
>> ff=inline('ydata-x(1)*xdata^a-x(2)','x','xdata','ydata');
>> x0=;
>> =lsqnonlin(ff,x0,[],[],[],xdata,ydata);
方程中有一变量a!为什么这样赋值不行。
??? Error using ==> C:\MATLAB6p1\toolbox\optim\private\lsqncommon
User supplied expression or inline function ==> ydata-x(1)*xdata^a-x(2)
failed with the following error:
Error using ==> inlineeval
Error in inline expression ==> ydata-x(1)*xdata^a-x(2)
??? Undefined function or variable 'a'.
Error in ==> C:\MATLAB6p1\toolbox\optim\lsqnonlin.m
On line 121==> = ... function fun=nh(x,xdata,ydata,a)
fun=ydata-x(1)*xdata.^a-x(2);
>> xdata=;
ydata=;
a=5;
>> x0=;
>>=lsqnonlin('nh',x0,[],[],[],xdata,ydata,a);
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
>> x
x =
0.0001 3.4922
[ 本帖最后由 jimin 于 2006-9-3 11:41 编辑 ] 原帖由 jimin 于 2006-9-2 16:22 发表
function fun=nh(x,xdata,ydata)
xdata=;
ydata=;
a=5;
fun=ydata-x(1)*xdata.^a-x(2);
>> x0=;
>> =lsqnonlin('nh',x0,,[],xdata,ydata);
Optimization terminated successfully:
Rel ...
怎么把
xdata=;
ydata=;
a=5;
都写到目标函数里边去了? 同问,如上所用的方式,有何依据,比如能不能推荐一本关于最优化的matlab的书;
多谢! 原帖由 nsxyhjffzq 于 2006-9-3 11:08 发表
同问,如上所用的方式,有何依据,比如能不能推荐一本关于最优化的matlab的书;
多谢!
已经改过来了,具体的你在的matlab的help里查一下这个函数的用法
对于最优化这方面我也是不大用的,不过建议你多看看matlab的help,这是最好的资料,其他的很多书只是它的翻译而已,而且翻译的未必准确
回复 板凳 AaronSpark 的帖子
不知道兄台是否是这个意思?function fun=nh(x,data)
a=5;
fun=data(2,:)-x(1)*data(1,:).^a-x(2);
脚本文件:
clear
clc
data=;
x0=;
=lsqnonlin('nh',x0,[],[],[],data);
运行结果和上面一样,
0.000113277962002 3.492234133439846
不过resnorm比较大,17.881887032319774。。。
页:
[1]