24小时热门版块排行榜    

查看: 2298  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

huangbl2014

铜虫 (著名写手)

[求助] 如何解方程数量大于未知数量的方程组,注:各个方程的形式完全不一样。 已有4人参与

如题,就是怎么得到方程数量大于未知数量的最优解?各个方程的形式不一样,所以最小二乘法是不是不能用了?用Maple,Matlab,Mathematica好像方程形式要一样的,即只能有一个经验公式。所以怎么解比如:5a+7b=10, 9/a+10b=7,e^a+b=20, 这样形式的三个方程中的a,b?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
huangbl2014: 金币+3, ★★★很有帮助 2015-05-12 11:30:17
这里的问题关键在于,这种情况下你要如何定义你的最优呢?以你给出的例子为例,三个公式可以利用分段函数统一为一个:
CODE:
FindFit[{{5, 7, 10}, {9, 10, 7}, {1, 1, 20}},
Piecewise[{{a x, 3 <= x <= 7}, {x/a, 7 < x < 11}}, E^a] + b y, {a, b}, {x, y}]

(*
{a -> 2.9123, b -> 0.058448}
*)

然后,你大概也发现了,这种“分段”是我自由选定的,我选了一种较为粗暴的分段方式,但是除此之外还有无数种统一公式的方法,关键还是那句话,你要怎么样定义“最优”?
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
9楼2015-05-12 10:11:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2015-05-12 09:43:15
huangbl2014: 金币+3, ★★★很有帮助 2015-05-12 11:29:24
方程(组)的求解问题,本质上可以看做是最优化问题。对于方程个数大于未知数个数的方程,求解方法上还是最优化方法,所以不存在什么技术上问题,只是说很可能找不到满足高容差限的解。
楼主给的例子,可解得:
a: 2.97565219910564
b: 0.397544545029516
这组解不能使得三个方程残差都很接近于0,只能使得三个方程的残差平方和最小。

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-05-11 20:39:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huangbl2014

铜虫 (著名写手)

送红花一朵
引用回帖:
2楼: Originally posted by 月只蓝 at 2015-05-11 20:39:08
方程(组)的求解问题,本质上可以看做是最优化问题。对于方程个数大于未知数个数的方程,求解方法上还是最优化方法,所以不存在什么技术上问题,只是说很可能找不到满足高容差限的解。
楼主给的例子,可解得:
a ...

你是怎么得到这个解的?用的什么程序,软件?其实这个例子我是随便写的一个,想不到你那么厉害!
3楼2015-05-11 20:44:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖


fegg7502: 金币+1, 鼓励交流 2015-05-12 09:43:25
引用回帖:
3楼: Originally posted by huangbl2014 at 2015-05-11 20:44:00
你是怎么得到这个解的?用的什么程序,软件?其实这个例子我是随便写的一个,想不到你那么厉害!...

1stOpt软件
获得链接:http://muchong.com/bbs/viewthread.php?tid=4586018
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2015-05-12 09:05:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见