从Python中的隐式方程图中最大化

时间:2018-01-21 13:32:19

标签: python plot equation implicit maximization

我正在解决一个问题,我需要对此进行图解:

r =(16442.21 *(((np.e **( - 10468.04 / T))*(P 1.5))/((2-X)** 1.5))*(((1- X)** 2.5)/ X)) - 17374.99 *(((np.e ( - 23855.06 / T))的(F0的 0.2) ((2-X)** 0.5))/(p 0.5))*(X /((1-X)** 1.3))

我需要的图形是X(T),曲线表示参数r具有相同值的T和X的值。所以我用隐式方程式绘制了这个图,用这个代码:

#Librerías
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt

#Ingreso de datos
P=float(input("Ingrese la presión de trabajo en atmosferas: "))
Fo=float(input("Ingrese el flujo inicial de moles de nitrógeno, en kmol/d: "))

#Definición de la función de manera implícita
def f(T,X,r):
    return (16442.21*(((np.e**(-10468.04/T))*(P**1.5))/((2-X)**1.5))*(((1-X)**2.5)/X))-17374.99*(((np.e**(-23855.06/T))*(Fo**0.2)*((2-X)**0.5))/(P**0.5))*(X/((1-X)**1.3))-r

#Definición de vectores T y X    
T=np.linspace(10,2000,500)
X=np.linspace(0.0001,0.9999,500)

#Pasaje a matriz
T,X=np.meshgrid(T,X)


#Gráfico
r=0.000001
hola=plt.contour(T,X,f(T,X,r),[0],colors='g',label='r=0.000001')

r=0.001
plt.contour(T,X,f(T,X,r),[0],colors='b',label='r=0.001')

r=0.002
plt.contour(T,X,f(T,X,r),[0],colors='m',label='r=0.002')

r=0.005
plt.contour(T,X,f(T,X,r),[0],colors='y',label='r=0.005')

r=0.01
plt.contour(T,X,f(T,X,r),[0],colors='k',label='r=0.01')

r=0.02
plt.contour(T,X,f(T,X,r),[0],colors='r',label='r=0.02')

r=0.05
plt.contour(T,X,f(T,X,r),[0],colors='g',label='r=0.05')

r=0.1
plt.contour(T,X,f(T,X,r),[0],colors='c',label='r=0.1')

r=0.2
plt.contour(T,X,f(T,X,r),[0],colors='b',label='r=0.2')

r=0.5
plt.contour(T,X,f(T,X,r),[0],colors='m',label='r=0.5')

r=1
plt.contour(T,X,f(T,X,r),[0],colors='y',label='r=1')

plt.xlabel('Temperatura [K]')
plt.ylabel('Conversión')
plt.title('Curvas de isovelocidad a presión constante')

plt.show()

这是结果:

https://i.stack.imgur.com/5ugDZ.png

问题在于我需要最大化每条曲线,而我不知道该怎么做,因为我找不到图形的数据,所以我无法拟合或类似的东西。 / p>

你知道另一种最大化方法吗?

0 个答案:

没有答案