Форум программистов, компьютерный форум, киберфорум
Численные методы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
12 / 8 / 4
Регистрация: 14.09.2020
Сообщений: 52

Численное решение системы уравнений

13.12.2020, 03:40. Показов 1004. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть задача:
Численно решите систему дифференциальных уравнений. В самой программе записаны функции производных от x, y1, y2, ... , yn. Нужно в динамический массив записать все эти функции. А потом численно решить методами Эйлера и Рунге-Кутты. Дак вот, я даже не знаю с чего начать. Я представляю как сделать сами циклы. Это должно выглядеть как-то так:
C++
1
2
3
4
while(i<=max){
ycurrent+=dx * Y[n](y1,...,yn,x);
fout << ycurrent; //fout тк вывод в файл
}
Понимаю, что нужно сделать такой вот цикл
C++
1
2
3
4
for(int j=0; j<n; j++){
Eu(Y[j], double t);
Rk(Y[j], double t);
}
То есть я в этом цикле как раз для каждого уравнения и буду решать численно. Но я не представляю как будет выглядеть вся программа. Что из чего. Так же не знаю как сделать массив указателей на функцию, да еще и заполнить его. Форумчане, прошу вас всех очень сильно, помогите!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2020, 03:40
Ответы с готовыми решениями:

Найти численное решение задачи Коши для системы дифференциальных уравнений
Добрые день.Дана вот такая задача: Электронная схема во временном интервале описана задачей Коши. Нужно решить задачу Коши для системы...

Численное решение нелинейных уравнений
1)решить уравнение lnx-x+18=0 методом итераций на отрезке 2) решить уравнение xlgx-1/3=0 Методом Ньютона на отр. 3) решить ур-ние ...

Численное решение трансцендентных уравнений
Добрый день! Столкнулась со следующей проблемой. Есть уравнение бегущей волны, являющееся частным решением дифференциального...

2
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
13.12.2020, 10:17
Цитата Сообщение от Mistream Посмотреть сообщение
Нужно в динамический массив записать все эти функции.
Значения этих функций? Можно ведь на каждом шаге делать обращение к функциям. Все делается точно так же как при решении одного единственного уравнения, только в качестве исходных данных для решения на текущем шаге берутся все значения "y" найденные на предыдущем шаге. Для того что бы была понятна суть сделаете табличку в exel и решите простешую систему из 2-х уравнений методом Эйлера, и тогда сразу увидите что откуда берется.

Кликните здесь для просмотра всего текста

Может быть это поможет. На фортране например весь метод Рунге-Кутты 4 порядка (без обвески заголовками, процедуры с функциями производных и т.п.) для системы ОДУ выглядит так. Так же как и для решения одного единственного уравнения за исключением того, что здесь все переменные, кроме X и h, это массивы.

Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    x = x1
    yn1 = y1
    h = (x2-x1) / float (n)
    
        do i = 1, n   !Цикл
            call f(x, yn1, ytemp, m);                   k1 = h * ytemp  
            call f(x+0.5*h, yn1+0.5*k1, ytemp, m);      k2 = h * ytemp
            call f(x+0.5*h, yn1+0.5*k2, ytemp, m);      k3 = h * ytemp
            call f(x+h, yn1+k3, ytemp, m);              k4 = h * ytemp
            yn2 = yn1 + (k1 + 2.0*k2 + 2.0*k3 + k4) / 6.0   
            yn1 = yn2                                       
            x = x + h                                       
        end do  
                                            
    y2 = yn2
Здесь
x - независимая переменная
h - шаг
yn1 - значения найденные на предыдущем шаге (массив)
yn2 - значения найденные на текущем шаге (массив)
ytemp - возвращенные процедурой значения производных (массив)
k1...k4 - коэффициенты (массивы)
call - вызов процедуры f вычисления производных
0
12 / 8 / 4
Регистрация: 14.09.2020
Сообщений: 52
13.12.2020, 18:55  [ТС]
WH, не значения, а саму функцию. Чтобы можно было вызвать вот так:
C++
1
Y[0](a,b,...,n);
Я так понял, что это только руками можно сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2020, 18:55
Помогаю со студенческими работами здесь

Решение системы нелинейных уравнений 12 уравнений – 12 неизвестных переменных
мне надо решать такую задачу, помогите мне пожалуйста даны 12 уравнений 1/ A+B+C+D+E+F+G+H+I+J+K+L=24.05 2/...

Решение системы нелинейных уравнений 8 уравнений – 8 неизвестных переменных
Решаю систему нелинейных уравнений в символьном виде, решение выполняю с помощью математических программ. Возник вопрос в плане математики,...

Исследовать совместность и найти общее решение и одно частное решение системы уравнений.
Исследовать совместность и найти общее решение и одно частное решение системы уравнений. (3 системы) помогите кто чем может

Решение системы уравнений
Доброго времени суток! Решаю задачу связанную с электрическими режимами. Есть уравнение №4, в нем известны матрица Δδ и матрица ΔP ...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru