С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/47: Рейтинг темы: голосов - 47, средняя оценка - 4.79
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053

График Модели Лотки-Вольтерры

20.09.2020, 22:35. Показов 10395. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!! Буквально неделю назад начал изучать питон: Написал такой код: Чтоб программа вывела график Модели Лотки-Вольтерры, но возникла ошибка: Traceback (most recent call last):
File "C:\Users\Desktop\12.py", line 1, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import matplotlib.pyplot as plt
import numpy as np
 
def rk4(r, t, h):                    #edited; no need for input f
        """ Runge-Kutta 4 method """
        k1 = h*f(r, t)
        k2 = h*f(r+0.5*k1, t+0.5*h)
        k3 = h*f(r+0.5*k2, t+0.5*h)
        k4 = h*f(r+k3, t+h)
        return (k1 + 2*k2 + 2*k3 + k4)
 
def f(r, t):
        alpha = 1.0
        beta = 0.5
        gamma = 0.5
        sigma = 2.0
        x, y = r[0], r[1]
        fxd = x*(alpha - beta*y)
        fyd = -y*(gamma - sigma*x)
        return np.array([fxd, fyd], float)
 
h=0.001                               #edited
tpoints = np.arange(0, 30, h)         #edited
xpoints, ypoints  = [], []
r = np.array([2, 2], float)
for t in tpoints:
        xpoints.append(r[0])          #edited
        ypoints.append(r[1])          #edited
        r += rk4(r, t, h)             #edited; no need for input f
plt.plot(tpoints, xpoints)
plt.plot(tpoints, ypoints)
plt.xlabel("Time")
plt.ylabel("Population")
plt.title("Lotka-Volterra Model")
plt.savefig("Lotka_Volterra.png")
plt.show()
какой то модуль просит, как исправить ошибку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2020, 22:35
Ответы с готовыми решениями:

Система Лотки-Вольтерры с задержками
Реализовал на матлабе данное задание. По сути это решение системы 2 диф. ур-й. но при этом часть переменных имеют задержку по времени. И у...

Система хищник-жертва (модель Лотки-Вольтерры)
Здравствуйте! В университете задали такую задачку. Если это не сложно, можете накидать код? Или может у кого завалялся уже готовый? ...

Как определить параметры модели Лотки-Вольтера по имеющимся стат данным?
Здравствуйте, подскажите какие есть методики Определения параметров модели Лотки-Вольтера по имеющимся стат данным?

22
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.09.2020, 22:38
pip3 install matplotlib

Добавлено через 37 секунд
FAQ: Установка библиотек для Python
1
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
20.09.2020, 23:21  [ТС]
а если такая задача стоит: график решения задачи “Хищник-Жертва” при различных начальных условиях, то как условия написать?

Добавлено через 11 минут
массивом?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.09.2020, 23:31
Каким массивом? Если по табличным значениям - то да, можно массивом, можно с файла читать.
Если вычислительно - то или вычислять в реалтайме, или сначала вычислить в массив, затем отрисовать.

Добавлено через 1 минуту
Или ты имеешь ввиду условия - численность жертв\хищников, вероятности размножения и проч?
0
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
20.09.2020, 23:36  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Или ты имеешь ввиду условия - численность жертв\хищников, вероятности размножения и проч?
__________________
да это имею ввиду
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.09.2020, 23:53
Ну как обычно тогда - в переменные, инпутом. А потом передавать в функцию...
1
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
23.09.2020, 19:55  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Ну как обычно тогда - в переменные, инпутом. А потом передавать в функцию...
правильно?
Python
1
2
3
4
alpha = input()
        beta = input()
        gamma = input()
        sigma = input()
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 20:03
Целое число
Python
1
x = int(input())
Дробное число
Python
1
x = float(input())
1
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
23.09.2020, 20:15  [ТС]
у меня ошибку выводит: Traceback (most recent call last):
File "main.py", line 29, in <module>
r += rk4(r, t, h) #edited; no need for input f
File "main.py", line 8, in rk4
k3 = h*f(r+0.5*k2, t+0.5*h)
File "main.py", line 16, in f
sigma = float(input("Введите"))
ValueError: could not convert string to float: ''
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import matplotlib.pyplot as plt
import numpy as np
 
def rk4(r, t, h):                    #edited; no need for input f
        """ Runge-Kutta 4 method """
        k1 = h*f(r, t)
        k2 = h*f(r+0.5*k1, t+0.5*h)
        k3 = h*f(r+0.5*k2, t+0.5*h)
        k4 = h*f(r+k3, t+h)
        return (k1 + 2*k2 + 2*k3 + k4)
 
def f(r, t):
        alpha = float(input("Введите alpha"))
        beta = float(input("Введите beta "))
        gamma = float(input("Введите gamma"))
        sigma = float(input("Введите sigma"))
        x, y = r[0], r[1]
        fxd = x*(alpha - beta*y)
        fyd = -y*(gamma - sigma*x)
        return np.array([fxd, fyd], float)
 
h=0.001                               #edited
tpoints = np.arange(0, 30, h)         #edited
xpoints, ypoints  = [], []
r = np.array([2, 2], float)
for t in tpoints:
        xpoints.append(r[0])          #edited
        ypoints.append(r[1])          #edited
        r += rk4(r, t, h)             #edited; no need for input f
plt.plot(tpoints, xpoints)
plt.plot(tpoints, ypoints)
plt.xlabel("Time")
plt.ylabel("Population")
plt.title("Lotka-Volterra Model")
plt.savefig("Lotka_Volterra.png")
plt.show()
можете проверить? в чем я ошибся
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 21:08
никмейн, очевидно ввел пустую строку.
У меня все работает. В смысле без ошибок
0
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
23.09.2020, 21:36  [ТС]
ммм, ну ладно

Добавлено через 19 минут
а можете скриншот показать результата?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 21:42
А результата никакого и нет. Вечный ввод альфа, бета, гамма...
У тебя есть какие-то входные значения? Если их дохренища - нет смысла вводить их по-одному вручную.
0
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
23.09.2020, 22:00  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
У тебя есть какие-то входные значения?
у меня же в первом посте введены только по одному числу, и не было вечного ввода
Цитата Сообщение от никмейн Посмотреть сообщение
alpha = 1.0
        beta = 0.5
        gamma = 0.5
        sigma = 2.0
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 22:05
Ну как же

Диапазон
Цитата Сообщение от никмейн Посмотреть сообщение
tpoints = np.arange(0, 30, h)
И цикл по нему
Цитата Сообщение от никмейн Посмотреть сообщение
for t in tpoints:
Внутри которого вызывается rk4()
Цитата Сообщение от никмейн Посмотреть сообщение
r += rk4(r, t, h)
Внутри которой 4 раза вызывается f()
Внутри которой вводятся альфы, беты и т.д.

Боюсь даже посчитать сколько раз...
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
23.09.2020, 22:05
Из первого поста
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 22:07
Да, из первого поста код работает
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
23.09.2020, 22:07
Да, вводить коэффициенты на каждом шаге расчёта - плохая идея..
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 22:10
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import matplotlib.pyplot as plt
import numpy as np
 
 
def rk4(r, t, h):  # edited; no need for input f
    """ Runge-Kutta 4 method """
    k1 = h * f(r, t)
    k2 = h * f(r + 0.5 * k1, t + 0.5 * h)
    k3 = h * f(r + 0.5 * k2, t + 0.5 * h)
    k4 = h * f(r + k3, t + h)
    return k1 + 2 * k2 + 2 * k3 + k4
 
 
def f(r, t):
    x, y = r[0], r[1]
    fxd = x * (alpha - beta * y)
    fyd = -y * (gamma - sigma * x)
    return np.array([fxd, fyd], float)
 
 
alpha = float(input('alpha: '))
beta = float(input('beata: '))
gamma = float(input('gamma: '))
sigma = float(input('sigma: '))
 
 
h = 0.001  # edited
tpoints = np.arange(0, 30, h)  # edited
xpoints, ypoints = [], []
r = np.array([2, 2], float)
for t in tpoints:
    xpoints.append(r[0])  # edited
    ypoints.append(r[1])  # edited
    r += rk4(r, t, h)  # edited; no need for input f
plt.plot(tpoints, xpoints)
plt.plot(tpoints, ypoints)
plt.xlabel("Time")
plt.ylabel("Population")
plt.title("Lotka-Volterra Model")
plt.savefig("Lotka_Volterra.png")
plt.show()
никмейн, это надо было чтоли?
0
65 / 46 / 20
Регистрация: 24.10.2016
Сообщений: 1,053
23.09.2020, 22:15  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
вводить коэффициенты на каждом шаге расчёта - плохая идея..
и как лучше? рандомно?

Добавлено через 3 минуты
это надо было чтоли? Что вы сделали?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
23.09.2020, 22:20
Что что? Ввод исходных значений с консоли...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2020, 22:20
Помогаю со студенческими работами здесь

Модель Лотки-Вольтерра и его график
Здравствуй, хочу нарисовать два графика по модели Лотки-Вольтерра, то есть фазовой портрет и колебание функций ...

График по модели Леонтьева
Здравствуйте! Появилась необходимость создать график по балансовой модели Леонтьева(На скриншоте). Может кто сталкивался, подскажите,...

Создать график в м-файле Matlab модели simulink
Помогите создать код для трёх графиков двух осциллографов. Код не работает. модель системы и пример графика представлен во вложении ...

Вывести график по модели SIR, используя библиотеку Matplotlib
Вот код. Суть программы вывести график по модели SIR, использую библиотеку Matplotlib. Только у меня возникла проблема з выводом) Помогите...

Нужно создать график SIR модели в трехмерном пространстве
Нужно реализовать модель SIR на Python в трехмерном пространстве. Не знаю с чего даже начать


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru