tjt2008
求解Ax=b
A和b都是非负数矩阵,我想求出x,且不能有负数,应该怎么做呢?
最优化求解的基础知识比较差,求大侠指点一下思路或相关方法。
谢谢。
ripeconan
当前问题的描述并不是一个最优化问题的形式.
如果 Ax = b 中的 A 和 b 都给定的话, x 可以通过 solve(A,b) 求出. 但是完全无法杜绝出现负数解的情况.
如果把 x 非负作为一个约束条件的话, 那么目标函数应该是某个需要最大化或最小化的函数.
比如可以把目标函数换成 min (Ax - b)^2
这样的问题才是一个最优化问题.
tjt2008
[未知用户]
谢谢,能再指导一下吗,如何去实现一个最大或最小化的函数呢?
R里有什么包或什么函数可以干这个事?
或者python,可以用什么包或函数来实现?
ripeconan
[未知用户]
R的官方网站的任务列表里面有关于最优化的各种包的介绍, 见下面的链接:
https://cran.r-project.org/web/views/Optimization.html
例如:
optim(): BFGS 法 ,Nelder-Mead 法 ,CG 法等 . 常用于无约束最优化问题 .
constrOptim(): 带有线性不等式约束的最小化问题
optimize(): 一维最优化问题 , 在一个区间内搜索最值
nlm(): 无约束的非线性最小化问题
nlminb(): 使用 PORT 方法的有约束与无约束最优化问题
等等
tjt2008
[未知用户]
谢谢你的帮助