Я написал код, и мне нужна помощь в реализации метода optmization, возможно, с scipy. Если вы можете отметить ниже, у меня есть переменная «pD», которую мне нужно изменить, чтобы найти результат для «abs (mFmin [i] [j] - mReg [i] [j])> 1". mFmin, mReg и все другие вычисления внутри этого времени, в то время как зависит от «pD»Реализация оптимизации Python и Scipy
Я написал плохой код, просто для тестирования, чтобы изменить «pD», сравнивая mFmin и mReg, но он слишком медленный и не работает вопрос, если я подниму ошибку или нет, этот маленький код сосет.
Я ищу некоторый код optmization в scipy-библиотеке, но я не вижу, где я могу реализовать это с помощью моего кода. Я думаю, что это Simples решение, но у меня нет никого, чтобы обменяться идеями ...
Примечание: ФД матрица
Ниже я прикрепил основную часть кода:
for i in range(0,int(x)):
for j in range(0,n):
curso[i] = i*passo
curso[0] = 0
pD[i][j] = pZref
mFmin[i][j] = 0
mReg[i][j] = gref
# my doubt starts here
while abs(mFmin[i][j] - mReg[i][j]) > 1:
if mFmin[i][j] < mReg[i][j]:
pD[i][j] = pD[i][j] + 0.0001
else:
pD[i][j] = pD[i][j] - 0.0001
pZaux[i][j] = pE_*sqrt((pow(pZref/pE_,2)-pow(pA/pE_,2))*pow(mFmin[i][j]/gref,2)+pow(pA/pE_,2))
vD[i][j] = pE_*vE_/pD[i][j]
if pD[i][j]/pE_ > RPcr:
psiR[i][j] = sqrt(pow(pD[i][j]/pE_,2/kappa)-pow(pD[i][j]/pE_,(kappa+1)/kappa))
else:
psiR[i][j] = psicrR
if pZaux[i][j]/pD[i][j] > RPcr:
psiF[i][j] = sqrt((2*kappa/(kappa-1))*(pow(pZaux[i][j]/pD[i][j],2/kappa)-pow(pZaux[i][j]/pD[i][j],(kappa+1)/kappa)))
else:
psiF[i][j] = psicrF
mFmin[i][j] = 3600*psiF[i][j]*kmin*(fmin[j]/1000000)*sqrt(pD[i][j]*100000/vD[i][j])
mReg[i][j] = 3600*psiR[i][j]*alpha*(fV[i][j]/1000000)*sqrt(2*kappa/(kappa-1)*(pE_*100000/vE_))
Спасибо за чтение!
MRM
Прежде всего, используйте 'numpy' и избавьтесь от этих чистых петель python. –
Любой отзыв? На самом деле, я использую numpy, чтобы я мог делать все и всю математику. Я не программист, я просто знаю основные понятия ... извините ... –