Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2024, 13:30   #1
Таулан
Новичок
Джуниор
 
Регистрация: 20.11.2024
Сообщений: 1
По умолчанию python

Не могу получить в точности графики как исправить?
они должны быть как на скрине
Код:
import numpy as np
import matplotlib.pyplot as plt

# Исходные данные для варианта 33
P0 = 42e6  # Начальное давление, Па (42 МПа)
T0 = 500  # Начальная температура, К
d = 0.03  # Диаметр трубы, м
v_max = 175  # Максимальная скорость поршня, м/с
gamma = 1.3  # Показатель адиабаты для CO₂

# Временная шкала
time = np.linspace(0, 0.012, 300)  # 300 временных шагов

# Зависимость скорости поршня от времени (экспоненциальный рост)
v_p = v_max * (1 - np.exp(-time / 0.002))

# Давление на стенках трубы и на поршне
p_wall = P0 * (1 - 0.5 * time / max(time))  # Давление на стенках трубы
p_piston = P0 * (1 - 0.4 * time / max(time))  # Давление на поршне

# Построение графиков
plt.figure(figsize=(10, 8))

# График 1: Скорость поршня от времени
plt.subplot(2, 1, 1)
plt.plot(time, v_p, 'k-', linewidth=2)
plt.xlabel('t, с', fontsize=12)
plt.ylabel('v_p, м/с', fontsize=12)
plt.title('a) Зависимость скорости поршня от времени', loc='left', fontsize=12)
plt.grid(True)
plt.xlim(0, max(time))
plt.ylim(0, 180)  # Диапазон скорости
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

# График 2: Давление на стенках трубы и на поршне от времени
plt.subplot(2, 1, 2)
plt.plot(time, p_wall / 1e6, 'k-', linewidth=2, label='Давление на стенках трубы')
plt.plot(time, p_piston / 1e6, 'k--', linewidth=2, label='Давление на поршне')
plt.xlabel('t, с', fontsize=12)
plt.ylabel('p * 10⁶, Па', fontsize=12)
plt.title('б) Зависимость давления от времени', loc='left', fontsize=12)
plt.legend(fontsize=10, loc='upper right')
plt.grid(True)
plt.xlim(0, max(time))
plt.ylim(0, 5)  # Максимальное давление в миллионах Па
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

# Настройка отображения
plt.tight_layout()
plt.show()
Изображения
Тип файла: jpg 673db6b9c4c2f218764239.jpg (57.3 Кб, 0 просмотров)
Таулан вне форума Ответить с цитированием
Старый 20.11.2024, 16:51   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,371
По умолчанию

Посмотрите на величины отображаемых данных.
Код:
--------------------------|
                          V
plt.plot(time, p_wall * 1e-7, 'k-', linewidth=2, label='Давление на стенках трубы')
plt.plot(time, p_piston * 1e-7, 'k--', linewidth=2, label='Давление на поршне')
                           ^
---------------------------|
Если установить множитель как в приведённом коде, то график отображается, хотя и не так (на нижнем), как на приведённом вами рисунке - только линии с отрицательным наклоном.

PS:
А собственно только линии с отрицательным наклоном и должны отображаться, поскольку формулы вычисления описывают линейную зависимость: y = -k*t + b
Как-то так, ...

Последний раз редактировалось ViktorR; 20.11.2024 в 16:56.
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Python - как установить Easy-Machine-Learning-Object-Detection при уже установленном Python 3.9 Krasi Общие вопросы по программированию, компьютерный форум 4 23.12.2021 15:49
[Python] Нужно решить в среду вечером 5 -6 заданий для начинающих на языку Python. Пример заданий смогу выслать. Задания на английском языке. foxylen Фриланс 2 17.03.2019 12:30
ИЗ Си в Python clav9nski Python 1 09.04.2018 08:26
Начальный уровень Python. Функции - Python YYYUUU Python 5 09.06.2017 12:09
Python + GAE Mag992 PHP 1 20.10.2010 17:04