Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.09.2019
Сообщений: 33

Исправить программу решения системы уравнений на Python

26.01.2023, 15:41. Показов 751. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем добрый вечер, столкнулся с такой проблемой
Есть программа, которая решает системы диф уравнений Рёсслера и выводит графики с аттракторами.
Там есть связь, выглядит она вот так (eps*(x1-x2)), где eps = 0.3(это значение надо менять), x1-значение икса первой системы, x2 - второй.
Проблема в том, что если я меняю значение eps например на 10, то у меня сразу выдает ошибку "RuntimeWarning: invalid value encountered in divide" и вместо аттрактора я получаю прямую полосу. В чём может быть проблема?
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import math
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
 
def dx_dt(x1,y,z, t, x2):
    return -y-z + (Eps*(x1-x2))
def dy_dt(x,y,z, t):
    return x+0.2*y
def dz_dt(x,y,z, t):
    return 0.2+z*(x-5.7)
Eps = 10
def Resslers(n = 200, h = 0.05):
    fig = plt.figure()
    ax = plt.axes(projection='3d')
    ax.set_title('Система Рёсслера 3D')
    def Ressler1(x1 = 0, y1 = 0.8, z1 = 0):
        out = open("out_1.txt", "w")
        a = 0.2
        b = 0.2
        c = 5.7
        g = 0
        o = 0
        t = 0
        x1_list = []
        y1_list = []
        z1_list = []
        x2 = 0
        while t <= n:
            x1 = x1 + dx_dt(x1, y1, z1, t, x2) * h
            y1 = y1 + dy_dt(x1, y1, z1, t) * h
            z1 = z1 + dz_dt(x1, y1, z1, t) * h
            t += h
            x1_list.append(x1)
            y1_list.append(y1)
            z1_list.append(z1)
            out.write("t = %.2f, x = %.19f, y = %.19f,z = %.19f\n" % (t, x1, y1, z1))
        ax.plot3D(x1_list, y1_list, z1_list, 'red')
    Ressler1()
 
 
    #x1_list, y1_list, z1_list = Ressler1()
    def Ressler2(x2 = 0, y2 = 1, z2 = 0):
        out = open("out_2.txt", "w")
        a = 0.2
        b = 0.2
        c = 5.7
        g = 0
        o = 0
        t = 0
        x2_list = []
        y2_list = []
        z2_list = []
        x1 = 0
        while t <= n:
            x2 = x2 + dx_dt(x2, y2, z2, t, x1) * h
            y2 = y2 + dy_dt(x2, y2, z2, t) * h
            z2 = z2 + dz_dt(x2, y2, z2, t) * h
            t += h
            x2_list.append(x2)
            y2_list.append(y2)
            z2_list.append(z2)
            out.write("t = %.2f, x = %.19f, y = %.19f,z = %.19f\n" % (t, x2, y2, z2))
        ax.plot3D(x2_list, y2_list, z2_list)
        plt.xlabel("Ось Х")
        plt.ylabel("Ось Y")
        plt.show()
    Ressler2()
 
Resslers()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2023, 15:41
Ответы с готовыми решениями:

Помогите исправить программу решения системы уравнений
Выводит неопределенность # include &lt;stdio.h&gt; #include &lt;iostream&gt; # include &lt;math.h&gt; #include &lt;conio.h&gt; #include...

Составить программу решения системы уравнений
составить программу решения системы уравнений ax+by+c=0 a1x+b1y+d=0

Написать программу решения системы уравнений
Написать программу решения системы уравнений: ax+by=c nx+my=q 

3
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
26.01.2023, 18:36
roise511, eps у вас что-то типа шага интегрирования (не совсем так, но как аналогия это годится). Если его сделать слишком большим, то система получается неустойчивой и идет в разнос. Это приводит к близким к бесконечности величинам (с машинной точки зрения, inf и nan).
0
0 / 0 / 0
Регистрация: 05.09.2019
Сообщений: 33
26.01.2023, 22:51  [ТС]
u235, Да, всё верно, мне нужно посмотреть, что будет происходить с аттракторами при большем значении Eps, чтобы было наглядно видно, а не сразу прямая линия
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
26.01.2023, 23:00
roise511, посмотрите. Возьмите eps=0.3, увеличте eps на 10%, затем еще на 10 и т.д., а сразу же на полтора порядка...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2023, 23:00
Помогаю со студенческими работами здесь

Создать программу решения системы уравнений
Доброго времени суток :) Ребята, врать не буду, да и особо не умею... нужно написать программу которая бы... впрочем, вот описание: ...

Исправить программу для решения дифференциальных уравнений
Здравствуйте уважаемые! Никогда не писал на питоне, но данную задачу нам сказали решать на нем. Нашел красивый код в инете, но не...

Исправить программу(численные методы решения уравнений)
Народ, составил программу для решения уравнения методом половинного деления, методом хорд и методом касательных. Видимо сделал не совсем...

Написать программу для решения системы уравнений.
F(x)= {x^3 - 7x + 8 {sin(x^2 + 6x) x&lt;= -2,5 x&gt; 2,5 Сдать надо уже завтра, помогите пожалуйста. Заранее спс.

Написать программу решения системы алгебраических уравнений
Написать программу решения системы алгебраических уравнений. Коэффициенты уравнений вводятся пользователем. a1*x + b1*y = c1 a2*x +...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru