diamondyang 发表于 2009-3-9 22:07

请朋友们帮我解决非线性拟合问题!非常感谢!

请朋友们帮我解决非线性拟合问题!非常感谢!这是我的数据拟合的程序,请大家帮忙解决!
建立函数如下:
functiondiff=fit-simp(x,X,Y)
% 此函数被LSQNONLIN调用
% x 是包含等式系数的向量
% X 与 Y 是作为操作数传递给lsnonlin
A = x(1);
B = x(2);
diff = A. / (1+(A-1).*exp(-B.*X))-Y;

下面是脚本:
%定义你打算拟合的数据集合;
X=[-5 -2.01818 -1.81818 -1.23636 -1.01818 -0.85455 -0.01818 0.290909 0.690909 1];
Y=;
%初始化方程系数;
X0=';
%设置用中等模式(memdium-scale)算法;
options=optimset('Largescale','off');
%通过调用LSQNONLIN重现计算新的系数;
x=lsqnonlin(@fit_simp,X0,[],[],options,X,Y);
%调用LSQNONLIN结果输出表明拟合是成功的;
Optimization terminated successfully:
Gradient in the search direction less than tolFun
Gradient less than 10*(tolFun+tolX)
%绘制原始数据与新的计算的数据;
Y_new=x(1)/(1+(x(1)-1).*exp(-x(2).*X));
plot(X,Y,'+r',X,Y_new,'b');

请大家帮忙看一下 怎么解决这个问题! 谢谢!

octopussheng 发表于 2009-3-10 08:34

遇到什么问题了呀?从里面看不出来哦!

diamondyang 发表于 2009-3-10 09:33

回复 沙发 octopussheng 的帖子

这是两个M文件。
运行第一个M文件时出现:Error: Function definitions are not permitted at the prompt or in scripts.
运行第二个M文件时出现:??? Undefined variable "Untitled2" or class "Untitled2.m".
请大家帮忙看一下,本人刚刚开始接触Matlab,还有很多要学习的,但是非线性拟合这块教程里也没有提到!谢谢了!
functiondiff=fit-simp(x,X,Y) 请问这个函数定义有问题么?
页: [1]
查看完整版本: 请朋友们帮我解决非线性拟合问题!非常感谢!