Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 83

Как написать программу для метода Рунге-Кутты 4 порядка с автоматическим выбором шага ?

14.10.2017, 15:46. Показов 6616. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите переделать ?
C++
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
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
 
float dydx(float x, float y){
    return y*y - 2 / (x*x);
}
 
// Находит значение y для заданного x, 
//используя размер шага h и 
//начальное значение y0 при x0.
float rungeKutta(float x0, float y0, float x, float h){
    // Подсчитайте количество итераций с 
    //использованием размера шага h
    int n = (int)((x - x0) / h);
 
    float k1, k2, k3, k4, k5;
    float y = y0;
    for (int i = 1; i <= n; i++)
    {
        // формулы Рунге Кутты, для нахождения 
        //следующего значения y
        k1 = h*dydx(x0, y);
        k2 = h*dydx(x0 + 0.5*h, y + 0.5*k1);
        k3 = h*dydx(x0 + 0.5*h, y + 0.5*k2);
        k4 = h*dydx(x0 + h, y + k3);
        cout << "k1: " << k1 << endl;
        cout << "k2: " << k2 << endl;
        cout << "k3: " << k3 << endl;
        cout << "k4: " << k4 << endl;
        // следующий у
        y = y + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4);
        cout << "y(" << x0+h << ")=" << y << endl;
        // Update next value of x
        x0 = x0 + h;
    }
 
    return y;
}
 
int main(){
    float x0, y0, x, h;
    cout << "Input x0: "; cin >> x0;
    cout << "Input x: "; cin >> x;
    cout << "Input y(x0)=y0: "; cin >> y0;
    cout << "Input h: "; cin >> h;
    cout << "method Runge-Kutta: " << rungeKutta(x0, y0, x, h) << endl;
 
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2017, 15:46
Ответы с готовыми решениями:

Применение метода Рунге-Кутты 4 порядка
Имеется ОДУ 2 порядка: y′′+1/x*y′+1/x=0 с начальными условиями y(1)=1;y′(1)=0.5;h0=0.1 Итак, как я понял, для уравнения второго...

Разработать программу для решения системы дифференциальных уравнений с помощью метода рунге-кутты
Необходимо разработать программу для решения системы дифференциальных уравнений с помощью метода рунге-кутты. результат представить в...

Решение Рунге-Кутты 4-го порядка для ОДУ 2-го порядка
Добрый день. Есть ОДУ y``+9y=0 и начальные условия, я думаю они не так важны А так же метод его решения, а именно Рунге-Кутты 4-го...

2
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
14.10.2017, 16:26
Цитата Сообщение от El_i_z_a_b_e_th Посмотреть сообщение
помогите переделать ?
Что и во что переделать? Если сами делали, то пишите в чем проблема.
0
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 83
15.10.2017, 13:13  [ТС]
мановар, я написала программу для метода Рунге-Кутты 4-го порядка, но с заданным шагом, а мне нужно переделать для автоматического выбора шага

Добавлено через 2 минуты
мановар, по алгоритму нужно 2 раза вычислить значения коэффициентов с шагом h/2 и 1 раз с шагом h, но потом трудности возникают с проверкой.. когда нужно увеличить шаг, а когда наоборот уменьшить. а когда доходим до конца промежутка, то там тоже нужно как-то проверять, чтобы не выйти за его пределы

Добавлено через 1 минуту
мановар, если вы знаете как это реализовать, помогите пожалуйста?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2017, 13:13
Помогаю со студенческими работами здесь

Метод Рунге — Кутты, выбор шага
Как для этой системы выбрать шаг интегрирования ?

Метод Эйлера – Коши с автоматическим выбором шага
Взял пример из методички и он у меня в маткаде не работает, может кто поправить...

Решение задачи Коши усовершенствованным методом Эйлера с автоматическим выбором шага
Есть задача: Решить задачу Коши методом Эйлера второго порядка (усовершенствованный метод Эйлера), в программе должен быть автоматический...

Метод Рунге-Кутты для дифференциального уравнения второго порядка
Дано уравнение y''+y'-2y=cos(x)-3sin(x), решить методом Рунге-Кутты. Данные сильно отличаются от аналитического решения, начальные условия...

Реализация метода Рунге-Кутты для параллельного решения системы ОДУ
Доброго времени суток. Коллеги, не найдется ли у кого реализации метода Рунге-Кутты для решения систем ОДУ на C#, который можно было бы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru