Добавил:
свои люди в ТПУ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛБ10

.docx
Скачиваний:
0
Добавлен:
14.01.2026
Размер:
139.19 Кб
Скачать

Инженерная школа природных ресурсов

Направление подготовки Химическая технология

Отделение химической инженерии

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА PYTHON

Отчет по лабораторной работе № 10

Введение в библиотеку NumPy

Выполнил студент гр. ХИМ54 А.В. Чижова

(Подпись)

01.01.2026 г.

Отчет принят:

Преподаватель

доцент ОХИ ИШПР, к.т.н. В.А. Чузлов

(Подпись)

_____ _____________ 2026 г.

Томск 2026 г.

Задание 1

Библиотека NumPy содержит инструменты для нахождения решения систем линейных уравнений. Функция np.linalg.solve() принимает две матрицы: матрицу коэффициентов и вектор свободных членов.

Допустим, у нас есть система линейных уравнений:

где А – матрица коэффициентов, а b – вектор свободных членов.

Используя функцию np.linalg.solve() найдите решение для следующих систем линейных уравнений:

Программная реализация:

import numpy as np

A1 = np.array(

[

[2, 3, -1],

[1, -1, 1],

[1, 0, 2]

]

)

b1 = np.array([9, 3, 2])

x1 = np.linalg.solve(A1, b1)

print("Решение системы 1:", x1)

A2 = np.array(

[

[10, -1, 2, 0],

[-1, 11, -1, 3],

[2, -1, 10, -1],

[0, 3, -1, 8]

]

)

b2 = np.array([6, 25, -11, 15])

x2 = np.linalg.solve(A2, b2)

print("Решение системы 2:", x2)

A3 = np.array(

[

[2, 1, 1],

[1, -1, 0],

[3, -1, 2]

]

)

b3 = np.array([2, -2, 2])

x3 = np.linalg.solve(A3, b3)

print("Решение системы 3:", x3)

A4 = np.array(

[

[1, 2, 1],

[3, 2, 1],

[4, 3, -2]

]

)

b4 = np.array([8, 10, 4])

x4 = np.linalg.solve(A4, b4)

print("Решение системы 4:", x4)

Ответ:

Решение системы 1: [ 4. -0. -1.]

Решение системы 2: [ 1. 2. -1. 1.]

Решение системы 3: [-1. 1. 3.]

Решение системы 4: [1. 2. 3.]

Задание 2

Двухпараметрическое уравнение состояния Редлиха-Квонга имеет следующий вид:

где P – давление, Па; Т – абсолютная температура, К; V – мольный объем, м3/моль; R = 8.314 – универсальная газовая постоянная, Дж / (моль*К)

Константы a и b зависят от конкретного вещества и вычисляются по следующим формулам:

где – критическая температура, К; – критическое давление, Па.

Уравнение состояния Редлиха-Квонга можно записать относительно коэффициента сжимаемости Z:

где ;

С учетом того, что коэффициент сжимаемости Z=PV RT плотность газа может быть выражена следующим образом:

где – плотность газа, кг/м3; М – молярная масса газа, кг/моль.

  1. Необходимо реализовать функции для вычисления коэффициента сжимаемости и плотности реального газа с использованием библиотеки NumPy.

  2. Рассчитать плотность пропана при атмосферном давлении, значения T принять принадлежащими интервалу [273.15, 298.15] K, 10 элементов.

Свойство пропана:

Свойство

Значение

Единицы измерения

Молярная масса

0.0441

Кг/моль

Критическая температура, Тс

370

К

Критическое давление, Рс

4.27

МПа

Программная реализация:

import numpy as np

R = 8.314

M = 0.0441

Tc = 370

Pc = 4.27 * 10**6

P = 101325

T = np.linspace(273.15, 298.15, 10)

a = (1/(9*(2**(1/3)-1)))*((R*R*Tc**2.5)/(Pc))

b = ((2**(1/3)-1)/3)*((R*Tc)/(Pc))

def A(T: float):

return (a*P)/(R*R*T**2.5)

def B(T: float):

return (b*P)/(R*T)

def Z(T:float):

At = A(T)

Bt = B(T)

coef = [-At*Bt, (At - Bt*Bt - Bt), -1, 1]

poly = np.polynomial.Polynomial(coef)

roots = poly.roots()

return roots.real.max()

def rho(T:float):

return (M * P)/(R * T * Z(T))

for t in T:

print(rho(t))

Ответ:

2.0061013104794108

1.9848316633242313

1.9640258206972683

1.943668160309764

1.9237437807964357

1.904238459179813

1.8851386113978048

1.8664312556341331

1.8481039782167759

1.8301449018721756

Соседние файлы в предмете Программирование на Python