回 帖 发 新 帖 刷新版面

主题:非线性曲线拟和求教

现在有一个四参数回归方程 y = (a-d)/(1+(x/c)^b) + d ,已知几组测定值(x0,y0),(x1,y1),(x2,y2),...(xn,yn) (n>=4),求a,b,c,d的值.
此方程作出的曲线为S型,单调曲线.
我在网上找到了求解这四个参数的matlab函数(主要用到nlinfit函数),不过生成的dll要脱离matlab环境需要装matlab的运行库,最少需要7,8M,太大了;将M文件转移到VC++,生成dll,应该也需要运行库.所以现在想自己编一个独立的dll.
不过没有学过数值分析之类,现在没有头绪.
1.能否将该非线性函数用最小二乘法进行拟和.如果拟和成功,算出多项式系数后如何反算a,b,c,d.
2.是否有其他的拟合软件可以直接生成dll.我用1stopt可以很容易算出结果,并且算出的a,b,c,d更符合要求.只是不知道能不能生成dll(1stopt有一个dllproject,不过不知道有什么用)
欢迎指教

回复列表 (共3个回复)

沙发

你把nlinfit.m的算法从头到尾实现一遍好了

板凳

nlinfit还调用其他matlab函数,重写比较有难度,有没有其他办法

3 楼

这样都有分。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册