找回密码
 注册
Simdroid-非首页
查看: 261|回复: 9

如何进行多元拟合?

[复制链接]
发表于 2008-9-3 21:50:45 | 显示全部楼层 |阅读模式 来自 吉林长春
看maple里的帮助没有这方面的例子,只是提了一下,
请大家给个例子,谢谢,两个变量就行,用statistics包里的Fit命令
发表于 2008-9-4 15:04:06 | 显示全部楼层 来自 上海徐汇区
Simdroid开发平台
用Maple时有两招必用,一是看自带的帮助系统,还有一个比较好的资源系统:
http://www.maplesoft.com/applications/
输入fit,可以找到很多曲线拟合的例子。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-15 21:09:13 | 显示全部楼层 来自 吉林长春
谢谢楼上的回答,在帮助里没有找到多元拟合,最多只有一元的,
资源系统里面也没有的
回复 不支持

使用道具 举报

发表于 2009-7-31 23:46:01 | 显示全部楼层 来自 黑龙江哈尔滨
多元的不多见,1stopt应该可以。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-8-1 13:27:34 | 显示全部楼层 来自 吉林长春
这个已经搞定了,
多谢斑竹
回复 不支持

使用道具 举报

发表于 2009-9-3 16:33:11 | 显示全部楼层 来自 浙江杭州
请问你是如何做的啊?能详细介绍一下吗? :D
回复 不支持

使用道具 举报

 楼主| 发表于 2009-9-4 12:25:58 | 显示全部楼层 来自 吉林长春
回复 不支持

使用道具 举报

发表于 2009-9-4 14:52:25 | 显示全部楼层 来自 黑龙江哈尔滨
Note that a model function can be nonlinear in the independent variables but linear in the model parameters.
回复 不支持

使用道具 举报

发表于 2009-9-16 22:54:44 | 显示全部楼层 来自 湖北武汉
用matlab做拟合,更快一些
回复 不支持

使用道具 举报

 楼主| 发表于 2012-1-6 15:06:34 | 显示全部楼层 来自 江苏扬州

上面的帖子看不到了,代码如下

本帖最后由 feiyuzhen 于 2012-1-6 15:10 编辑
  1. restart;
  2. with(stats);
  3. with(fit);
  4. with(statplots);
  5. with(plots);
  6. datax := [seq((rand(100))(), i = 1 .. 50)];
  7. datay := map(proc (x) options operator, arrow; evalf(sin((1/100)*x/Pi)+(1/100)*(rand(30))(), 4) end proc, datax);
  8. p1 := scatterplot(datax, datay);
  9. display(p1);
  10. leastsquare[[x, y], y = a0+a1*x+a2*x^2, {a0, a1, a2}]([datax, datay]);
  11. f := rhs(%);
  12. p2 := plot(f, x = 0 .. 100);
  13. display(p1, p2);
  14. datax1 := [1, 2, 3];
  15. datax2 := [2, 3, 4];
  16. datay1 := [3, 7, 8];
  17. leastsquare[[x1, x2, y], y = a1*x1+a2*x2, {a1, a2}]([datax1, datax2, datay1]);

  18. with(Statistics);
  19. f1 := Fit(a+b*x+c*x^2, datax, datay, x);
  20. f := Fit(a0+a1*sin((1/10)*x)+a2*sin((1/20)*x)+a3*sin((1/40)*x), datax, datay, x);
  21. p3 := plot(f, x = 0 .. 100);
  22. display(p1, p3);
  23. with(linalg);
  24. datax1 := [seq((1/100)*(rand(100))(), i = 1 .. 50)];
  25. datax2 := [seq((1/100)*(rand(100))(), i = 1 .. 50)];
  26. datax12 := zip(proc (x1, x2) options operator, arrow; [x1, x2] end proc, datax1, datax2);
  27. datay := zip(proc (x1, x2) options operator, arrow; x1+2*x2+cos(x1*x2)+(1/1000)*(rand(100))() end proc, datax1, datax2);
  28. whattype(datay);
  29. nops(datay);
  30. f4 := Fit(a1*x1+a2*x2+a3*cos(x1*x2)+a4*x1*x2, Matrix(datax12), datay, [x1, x2]);
复制代码
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 13:39 , Processed in 0.045748 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表