请教一个数据拟合的问题!
现有一组测量数据xi、yi,要把他们拟合到直线上,拟合的要求是:
yi=k*xi+N*0.2 ,这就是说,对应于每一点,都要确定一个未知数N,才能将它们拟合到直线上。
同时,要求拟合的残差最小。
请教各位牛人,这个程序怎么编,我就是搞不定啊........:'( N相当于一个中间未知变量,这类问题已有解决的案例。把数据贴出来。
回复 #2 dingd 的帖子
请多指教。我第一次碰到这个问题,感觉不好解决,挺急的。数据如下:xi= 0.2253 0.2801 0.3840 0.8087
yi=0.0047 0.0431 -0.0700 -0.0718
这个中间未知变量的问题,有没有什么例子可以参考? 我拟合得到的系数都感觉有问题,更郁闷。
回复 #1 legendshao 的帖子
这里的N是整数,可以设定范围在 [-10,10]之间。 如果N不为整数的话,会有很多组解,如为整数,有一组解如下:n1: 1
n2: 1
n3: 2
n4: 4
k: 0.891646373890498
不知对否?自己验证一下。 对不起,符号弄错一个,结果应为:
n1: -1
n2: -1
n3: -2
n4: -4
k: 0.891646373563659
回复 #7 dingd 的帖子
谢谢!你是用搜索的方法吗?用for循环?是否可以提供代码?供我研究一下啊,我还没有很好的思路。 用循环效率低不实用.
这道题是用最新1stOpt测试版算的.对这类缺乏中间变量值的特殊拟合问题,1stOpt现可以很容易设定求解,代码如下:
Algorithm = SM3;
Parameter k;
Variable x, y;
ParVariable N[-10,10,0];
Function y=k*x+N*0.2;
Data;
0.2253 0.0047
0.2801 0.0431
0.3840 -0.0700
0.8087 -0.0718
结果:
k 0.891646373688953
n0 -1
n1 -1
n2 -2
n3 -4
回复 #9 dingd 的帖子
看来这位坛友很推崇1stopt,不知这个东东有没有好的教程。我下载了一个1.5的绿色版,不知功能是否齐全。请给于指点。
另外,我把你上面的代码直接copy进去,怎么不给出 n0 n1 n2 n3? 请指教。 1:1.5的绿色版,被破解的千疮百孔,连最重要的编程模式都无法用了,其它还不知有什么毛病。
2:新版2.0都已出来了, 1.5就...
3:缺乏中间变量特殊拟合功能,是最新测试版的,只有极少老注册用户才能得到,2.0也无该功能,1.5就更无法运行上面的代码了。
4:毕竟是不错的国产数值计算软件,有能力的话,还是支持一下好。
回复 #11 dingd 的帖子
原来是这样!看来阁下一定是老用户,或者本身就是该公司的人。
小声问一下:怎么才能得到该软件?
页:
[1]