initial guess using scipy.optimize in python

2019-08-02 17:46发布

问题:

I have the following problem to code using python:

I have 7 parameters: x, y, z, t, HF, M1F, and M2F. The user should input any of these 3 and the program should calculate the rest.

The relations that I have are:

HF = -xyt
M1F = -2xzt + 4yzt - xyt + 4tz^2
M2F = 2yzt - xyt
1 = -2xt + 2yt + 4zt

Attempt to solve the problem:

I have 7 parameters and the user should input 3 => I will be left with 4 parameters. So it's all about solving a system of 4 nonlinear equations with 4 unknowns.

I read online that scipy.optimize could be used to solve a system of nonlinear equations. But I need an initial guess.

Going back to the physics of the problem I have the following initial conditions:

x > 0
y > 0
z < 0
HF > 0
M1F > 0
M2F > 0
M2F > M1F (solving this inequality from the above equations I get: -x + y + 2z < 0)
HF > M1F + d (solving this inequality from the above equations I get: -x + 2y + 2z < 0)

How can these initial conditions help me get the initial guess so that I can solve my problem using scipy.optimize?

回答1:

I'm not sure optimization is the right way to go here. I think personally I'd start with the three variables given and algebraically solve the rest. There are a lot of combinations, but all things considered the analytic solution is usually best if it's obtainable.