python - 如何最小化两个函数的总和,允许其中一个参数在两个函数上变化?
问题描述
我有两个函数f(x,y,z)和g(x,y,z)。我想最小化总和 h(x,y,z) = f(x,y,z) + g(x,y,z),允许x在函数f和g上可变。
我可以使用 单独或一起最小化这两个函数scipy.optimise.minimise
,它基本上在一堆 x、y 和 z 值处计算 f + g(或 h)的值,然后返回我的值(x、y、z) f + g 是最小值。这里发生的情况是:f 和 g 都以相同的 (x, y, z) 值进行评估,但我希望其中一个参数(比如 x)在 f 和 g 上变化。
这是我正在尝试的粗略概述:
def f(x,y,z):
return scalar
def g(x,y,z):
return another_scalar
def h(theta):
x, y, z = theta
return f(x,y,z) + g(x,y,z)
def bestfit(guess, method='Nelder-Mead'):
result = op.minimize(h,
guess,
method=method,
options={'maxfev': 5000,
'disp': False})
if not result.success:
print('Optimisation did not converge.')
return result
g = [x0, y0, z0]
bf = bestfit(g, method='Nelder-Mead')
print(bf)
我不确定我是否可以使用scipy.optimise
. 我可以吗?还是我可以使用其他一些 python 模块?
解决方案
我的第一个想法是定义新函数,比如 a 和 b,y 和 z 的值是固定的,这样你的新函数是 a(x) = f(x, y 0 , z 0 ) 和 b(x) = g(x, y 0 , z 0 ) 然后最小化这些函数。
推荐阅读
- database - Firestore:如何更新现有字段
- javascript - 创建弹出过渡 Jquery
- ember.js - 如何在 Ember JS 中获取 REST Api?
- reactjs - 使用 useState-hook 从内部更改样式组件
- postgresql - 在特定的 PostGreSQL 模式中安装 Drupal 数据库
- python - 如何修复“psycopg2.DataError:整数的无效输入语法:”
- python - 如何在 django 中使用 javascript 时发送模型 ID
- html - 创建在每次点击时附加一个 html 通知 div 的按钮
- java - Android Webview全屏视频工作不一致
- reactjs - 将来自 API 的多个数组保存为 React 状态