Построение функции с двумя переменными, которая не может передавать массивы NumPy 2dPython

Программы на Python
Ответить
Anonymous
 Построение функции с двумя переменными, которая не может передавать массивы NumPy 2d

Сообщение Anonymous »

У меня есть функция z=f(x,y), которую я хочу построить на цветовом графике. Но эту конкретную функцию можно вводить только с числами с плавающей запятой или массивами NumPy 0d или 1d. Итак, у меня возникли проблемы при попытке создать цветовую диаграмму, потому что сетка находится в двух измерениях. Может ли кто-нибудь написать мне код, использующий циклы for в качестве альтернативного способа создания цветового графика вместо подключения двухмерного массива к функции?
Это моя попытка:
import numpy as np
import CoolProp.CoolProp as cp
import matplotlib.pyplot as plt

# all units in SI

mdot=10000/7936.64 #mass flow of steam
P_atm=101000 #atmospheric pressure

def area_req(P1, P2):
P_before_trap=P_atm+(P1)*6894.76 #pressure before steam trap
P_after_trap=P_atm+(P2)*6894.76 #pressure after trap

enthalpy_1=cp.PropsSI('H','P',P_before_trap,'Q',0,'water') #enthalpy of condensate before trap
enthalpy_2=enthalpy_1 #steam trap is an isenthalpic device

x_after_trap=cp.PropsSI('Q','P',P_after_trap,'H',enthalpy_2,'water') #vapor fraction after trap

mdot_flash=x_after_trap*mdot #mass flow rate of flash steam after trap
mdot_cond=(1-x_after_trap)*mdot

rho_steam=cp.PropsSI('D','P',P_after_trap,'Q',1,'water') #density of steam component of mixture
rho_water=cp.PropsSI('D','P',P_after_trap,'Q',0,'water') #density of water component of mixture

area_steam=mdot_flash/rho_steam/20.32 #area of steam cross section required to obtain velocity of 4000 ft/min
area_cond=mdot_cond/rho_water/1.524 #area of condensate cross section required to obtain velocity of 5 ft/sec
area_req=area_cond+area_steam
return area_req

# Create a grid of x and y values
x = np.linspace(0, 100, 100)
y = np.linspace(0, 100, 100)
X, Y = np.meshgrid(x, y)

# Evaluate the function on the grid

Z = area_req(X,Y)

# Plot the function using a colormap
plt.imshow(Z, cmap='viridis')
plt.colorbar()
plt.title('Plot of area required')
plt.show()


Подробнее здесь: https://stackoverflow.com/questions/793 ... -2d-arrays
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»