Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59

Решение диф. уравнений второго порядка. Как вывести промежуточные значения?

08.08.2019, 18:06. Показов 1514. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа решает уравнение методом Эйлера и Рунге-Курта 4-го порядка и выводит сразу конечное значение.Как вывести промежуточные значения Y?Пытался по образу и подобию через i++,но ничего не выходит
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# * - coding: utf-8 - *-
# подключение библиотеки tkinter
from tkinter import *
# импорт математической библиотеки
from math import *
# описание функции
def du (x,y):
    return 1/(cos(x))-y*tan(x)
def fx (x_0,y_0,x_k,n_1):
# шаг интегрирования
    h= (x_k-x_0) /n_1
#Метод Эйлера
    for i in range (0,n_1):
        y1=y_0+h*du (x_0,y_0)
        x1=x_0+h
        x_0=x1
        y_0=y1
    return y1
def rk (x_0,y_0,x_k,n_1):
    h= (x_k-x_0) /n_1
# метод рунге-кутта
    for i in range (0,n_1):
        k1=h*du (x_0,y_0)
        k2=h*du (x_0+h/2,y_0+k1/2)
        k3=h*du (x_0+h/2,y_0+k2/2)
        k4=h*du (x_0+h,y_0+k3)
        y1=y_0+ (k1+2*k2+2*k3+k4) /6
        x_0=x_0+h
        y_0=y1
    return y1
def calc_y1 ():
# начальные условия
    x0 = float (x0_entry. get ())
    y0 = float (y0_entry. get ())
# конечная точка
    xk = float (xk_entry. get ())
# число разбиений
    n = int (n_entry. get ())
# использование обработки исключений. Сначала выполняется ветвь try
    try:
        y1 = "%.3f" % fx (x0,y0,xk,n)
        y2 = "%.3f" % rk (x0,y0,xk,n)
# если во время выполнения try возникает исключение,
# то дальнейшее выполнение try прекращается и выполняется ветвь except
    except:
        y1 = "?"
        y2 = "?"
    y1_label. configure (text=y1)
    y2_label. configure (text=y2)
# создание экземпляра класса Tk, отвечающего за создание окон
root=Tk ()
# определение заголовка окна
root. title ("Задание 1")
frame = Frame (root)
frame. pack ()
t1_label = Label (frame, bg='tan', text="Численное решение дифференциального уравнения первого порядка", font='arial 12')
t1_label. grid (row=0, column=0, columnspan=5, padx=25,pady=5)
# создание окна ввода величины начального значения числа X
x0_entry = Entry (frame, width=10)
x0_entry. grid (row=1, column=2,pady=5)
x0_lebel = Label (frame, text="Начальное значение X: ")
x0_lebel. grid (row=1, column=1,pady=5)
# создание окна ввода величины начального значения числа Y
y0_entry = Entry (frame, width=10)
y0_entry. grid (row=2, column=2,pady=5)
y0_lebel = Label (frame, text="Начальное значение Y: ")
y0_lebel. grid (row=2, column=1,pady=5)
# оздание окна ввода величины конечной точки
xk_entry = Entry (frame, width=10)
xk_entry. grid (row=1, column=4,pady=5)
xk_lebel = Label (frame, text="Конечное значение Х: ")
xk_lebel. grid (row=1, column=3,pady=5)
# создание окна ввода величины точности интегрирования)
n_entry = Entry (frame, width=10)
n_entry. grid (row=2, column=4,pady=5)
n_lebel = Label (frame, text="Число разбиений: ")
n_lebel. grid (row=2, column=3,pady=5)
# создание поля вывода ответа (метод эйлера)
y1_label = Label (frame, text="?")
y1_label. grid (row=3, column=1,padx=5,pady=5)
y1_lebel = Label (frame, text="Метод Эйлера: ")
y1_lebel. grid (row=4, column=0,padx=5,pady=5)
# создание поля вывода ответа (метод рунге-кутта)
y2_label = Label (frame, text="?")
y2_label. grid (row=4, column=1,padx=5,pady=5)
y2_lebel = Label (frame, text="Метод Рунге-Кутта 4го порядка: ")
y2_lebel. grid (row=3, column=0,padx=5,pady=5)
# создание кнопки вычисления значения интеграла
eval_button = Button (frame,bg='coral', text="Вычислить", width=10,command=calc_y1)
eval_button. grid (row=4, column=3,padx=5,pady=5)
# создание кнопки закрытия приложения
exit_button = Button (frame, bg='coral', text="Выход", width=10,command=root. destroy)
exit_button. grid (row=4, column=4,padx=5,pady=5)
# непосредственное создание окна
root. mainloop ()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.08.2019, 18:06
Ответы с готовыми решениями:

Решение системы из 4 неленейных диф. уравнений второго порядка
Добрый. Проблема заключается в том, что необходимо написать код на C++ или Фортран для решения системы из 4 неленейных диф. уравнений...

Метод Рунге-Кутта для диф. уравнений второго порядка
Всем доброго времени суток! Задача: необходимо написать программу для решения диф. уравнений второго порядка методом Рунге-Кутты 4...

Решение диф уравнений 2-ого порядка
Какие есть алгоритмы для решения диф уравнений 2-ого порядка, программно разумеется. И еще надо чтобы алгоритм поддавался распараллеливанию...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
09.08.2019, 07:01
Цитата Сообщение от hur1ey Посмотреть сообщение
Как вывести промежуточные значения Y?
- в нужном месте вставить print(Y)
Цитата Сообщение от hur1ey Посмотреть сообщение
Пытался по образу и подобию через i++,
- что значит "через i++"? Код-то сам писал?
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
09.08.2019, 13:32  [ТС]
Catstail, Ага, вчера еще разобрался с print(Y_1).Но не нашел как тему удалить
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,709
Записей в блоге: 14
09.08.2019, 20:53
Цитата Сообщение от hur1ey Посмотреть сообщение
Но не нашел как тему удалить
- а удалять тему может только модератор раздела.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2019, 20:53
Помогаю со студенческими работами здесь

Решение диф уравнений первого порядка.
нужна помощь при решение диф уравнений

Решение диф. уравнений 2-го порядка методом эйлера
помогите ввести 2 параметра: омега и гамма в алгоритме эйлера в функцию ye условие: ye:=ye+h-2*ye*гамма - (омега^2)*xe не могу...

Решение системы диф. уравнений методом Рунге-Кутты 4 порядка
Всем доброго времени суток. Есть система из 13 уравнений (3 из которых - дифференциальные) и с 13 переменными. Решать их нужно на...

Решение задачи Коши для системы 2 диф. уравнений методом Рунге-Кутты 4-го порядка
Здравствуйте, помогите написать программу, никак не могу понять как писать.

Решение задачи Коши для системы 2 диф. уравнений методом Рунге-Кутты 4 порядка
Здравствуйте, помогите с написанием это программой, вообще не знаю как писать.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru