聯立方程組,開始我已經解決了這個問題,所以它不是一個大問題,我只是要求,以滿足自己的好奇心。問題是如何在給定一組約束條件下求解一系列聯立方程組。該公式是:與給定的條件
tau = 62.4*d*0.0007
A = (b + 1.5*d)*d
P = b + 2*d*sqrt(1 + 1.5**2)
R = A/P
Q = (1.486/0.03)*A*(R**(2.0/3.0))*(0.0007**0.5)
和條件是:
頭< = 0.29,Q = 10000 + - 說3,並最大限度地減少b
正如我提到的我已經能夠拿出一個使用一系列嵌套循環的解決方案:
b = linspace(320, 330, 1000)
d = linspace(0.1, 6.6392, 1000)
ansQ = []
ansv = []
anstau = []
i_index = []
j_index = []
for i in range(len(b)):
for j in range(len(d)):
tau = 62.4*d[j]*0.0007
A = (b[i] + 1.5*d[j])*d[j]
P = b[i] + 2*d[j]*sqrt(1 + 1.5**2)
R = A/P
Q = (1.486/0.03)*A*(R**(2.0/3.0))*(0.0007**0.5)
if Q >= 10000 and tau <= 0.29:
ansQ.append(Q)
ansv.append(Q/A)
anstau.append(tau)
i_index.append(i)
j_index.append(j)
這需要一段時間,並有東西在我的後腦勺說,必須有一個更容易/更優雅的解決這個問題。謝謝(Linux Mint的13,巨蟒2.7.x,SciPy的0.11.0)
開始的帖子「我已經有一個答案......」通常更好的問http://codereview.stackexchange.com –
b可以是任何東西,這是問題的一部分。我可以結合所有的方程,但我仍然有2個變量與無限數量的解決方案。答案來自約束。我可以嘗試,但我不確定這會有幫助。 – user1523697
您的約束仍然給你無限的解決方案。 – BenDundee