0

私はこれをグラフィック化する必要がある問題を解決していました:

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)) (Fo 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

問題は、各曲線を最大化する必要があり、グラフィックのデータが見つからないため方法がわからないため、フィッティングなどを行うことができません。

それを最大化する別の方法を知っていますか?

4

0 に答える 0