| 查看: 2681 | 回复: 5 | ||
[求助]
如何用matlab对四维数据进行非线性拟合?
|
» 本主题相关价值贴推荐,对您同样有帮助:
关于matlab微分、及非线性拟合问题
已经有5人回复
原创:用MATLAB做的GUI做数据拟合,通过全局优化算法 (含原文件,code,教程)
已经有55人回复
用MATLAB怎么打开点云并把它拟合到一个平面上?
已经有8人回复
matlab数据拟合问题求助
已经有7人回复
用MATLAB或者ORIGIN怎么拟合复数数据
已经有10人回复
求助 用matlab拟合三元线性回归方程及分析
已经有9人回复
请问matlab拟合二元方程的问题
已经有3人回复
1stopt或matlab如何求解以下的非线性方程并拟合出相应曲线?
已经有13人回复
matlab微分方程组参数拟合,以周为单位求解,汇总后以年为单位进行数值比较
已经有4人回复
在matlab中拟合曲面的表达式
已经有29人回复
matlab 求指点 动力学方程拟合过程中导数的获取
已经有10人回复
需要用matlab拟合数据的外行人急需帮助
已经有10人回复
matlab非线性参数拟合问题
已经有7人回复
【求助】用matlab最优化方法进行参数拟合
已经有17人回复
【求助】matlab曲面拟合表达式
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
【求助】使用MATLAB怎么实现拟合力场参数的程序?【已解决】
已经有15人回复
【求助】Matlab 四维图形的绘制。
已经有12人回复
【求助】使用Matlab拟合反应动力学方程问题
已经有7人回复
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
yangtree: 金币+60, ★★★很有帮助, 您好,谢谢您的帮助,麻烦您告知参数的范围如何限制,见3楼,然后我将会把所有的悬赏金币给您! 2013-04-28 10:21:44
感谢参与,应助指数 +1
yangtree: 金币+60, ★★★很有帮助, 您好,谢谢您的帮助,麻烦您告知参数的范围如何限制,见3楼,然后我将会把所有的悬赏金币给您! 2013-04-28 10:21:44
|
这个很简单啊,用lsqcurvefit或者lsqnonlin都可以。比如: function ydata = myfun(a,xdata) ydata=xdata(:,1).*xdata(:,2).*xdata(:,3)./(a(1)*ones(size(xdata(:,1)))... +xdata(:,1))./(a(2)*ones(size(xdata(:,2)))+... xdata(:,2))./(a(3)*ones(size(xdata(:,3)))+xdata(:,3)); x=10*rand(10,3) y=10*rand(10,1) a=[1,1,1] a_final=lsqcurvefit(@myfun,a,x,y) a_final就是结果啦。 x = 3.5166 0.7585 1.6218 8.3083 0.5395 7.9428 5.8526 5.3080 3.1122 5.4972 7.7917 5.2853 9.1719 9.3401 1.6565 2.8584 1.2991 6.0198 7.5720 5.6882 2.6297 7.5373 4.6939 6.5408 3.8045 0.1190 6.8921 5.6782 3.3712 7.4815 y = 4.5054 0.8382 2.2898 9.1334 1.5238 8.2582 5.3834 9.9613 0.7818 4.4268 a = 1 1 1 Local minimum possible. lsqcurvefit stopped because the final change in the sum of squares relative to its initial value is less than the default value of the function tolerance. b = -2.3826 -0.2813 -0.2945 |
2楼2013-04-26 09:03:18
3楼2013-04-26 09:37:36
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
4楼2013-04-28 16:27:54
5楼2013-04-30 22:39:27
chunbendan
铜虫 (初入文坛)
- 应助: 2 (幼儿园)
- 金币: 237.9
- 红花: 1
- 帖子: 18
- 在线: 5.5小时
- 虫号: 2251057
- 注册: 2013-01-20
- 性别: GG
- 专业: 计算数学与科学工程计算
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
yangtree: 金币+40, ★★★★★最佳答案, 谢谢您的帮助,前一段时间忙些事情,没上小木虫,金币给晚了,对不起! 2013-05-31 22:20:04
yangtree: 金币+40, ★★★★★最佳答案, 谢谢您的帮助,前一段时间忙些事情,没上小木虫,金币给晚了,对不起! 2013-05-31 22:20:04
|
亲,前两天出去了。记得不会就去查帮助哦,帮助上写的很清楚 x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) 其中lb是下限,ub是上限,默认不写是无上限下限的,你输入时设置好lb和ub就可以了 function ydata = myfun(a,xdata) ydata=xdata(:,1).*xdata(:,2).*xdata(:,3)./(a(1)*ones(size(xdata(:,1)))... +xdata(:,1))./(a(2)*ones(size(xdata(:,2)))+... xdata(:,2))./(a(3)*ones(size(xdata(:,3)))+xdata(:,3)); x=10*rand(10,3) y=10*rand(10,1) a=[1,1,1] lb=[1 0.3 10]; ub=[5 0.8 15]; a_final=lsqcurvefit(@myfun,a,x,y,lb,ub) 这样就能算出来啦 |
6楼2013-05-01 15:38:42













回复此楼