Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SciPy'中的多个变量;s.最小化_Python_Math_Scipy - Fatal编程技术网

Python SciPy'中的多个变量;s.最小化

Python SciPy'中的多个变量;s.最小化,python,math,scipy,Python,Math,Scipy,根据该模型,可以最小化具有多个变量的函数,但它没有说明如何对这些函数进行优化 from scipy.optimize import minimize from math import * def f(c): return sqrt((sin(pi/2) + sin(0) + sin(c) - 2)**2 + (cos(pi/2) + cos(0) + cos(c) - 1)**2) print minimize(f, 3.14/2 + 3.14/7) 上面的代码确实试图最小化函数f,但

根据该模型,可以最小化具有多个变量的函数,但它没有说明如何对这些函数进行优化

from scipy.optimize import minimize
from math import *

def f(c):
  return sqrt((sin(pi/2) + sin(0) + sin(c) - 2)**2 + (cos(pi/2) + cos(0) + cos(c) - 1)**2)

print minimize(f, 3.14/2 + 3.14/7)
上面的代码确实试图最小化函数
f
,但是对于我的任务,我需要最小化三个变量

只需引入第二个参数并相应地调整minimize就会产生一个错误(
TypeError:f()正好接受2个参数(给定1个)


当使用多个变量进行最小化时,
最小化
是如何工作的。

将多个变量打包到一个数组中:

import scipy.optimize as optimize

def f(params):
    # print(params)  # <-- you'll see that params is a NumPy array
    a, b, c = params # <-- for readability you may wish to assign names to the component variables
    return a**2 + b**2 + c**2

initial_guess = [1, 1, 1]
result = optimize.minimize(f, initial_guess)
if result.success:
    fitted_params = result.x
    print(fitted_params)
else:
    raise ValueError(result.message)

print(params)
显示数组,但它们是什么?我首先在函数调用中没有看到向函数
f
发送任何输入
params
params
如何对应于正在优化的函数?为什么三个结果元素相同(
-1.66705302e-08
)。如何优化多个矢量决策变量而不是多个标量决策变量?您的代码显示一个标量决策变量
c
。没有其他两个决策变量的指示,这意味着这不是您要求解的多元函数。您希望为未显示的函数优化三个决策变量,每个变量也是标量,
a
b
c
?你有没有一个2个向量作为决策变量的例子?例如,
x
y
是两个决策向量/数组,而不是scalars@develarist我认为最好对你所问的问题单独提出一个问题。但是,如果你需要优化两个向量,我会考虑向量的每个元素是一个要优化的变量。如果你有两个三元素向量,你有6个变量需要优化。
[ -1.66705302e-08  -1.66705302e-08  -1.66705302e-08]