1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
||||||
1 | ||||||
Решение задачи Коши методом Рунге-Кутта29.12.2013, 23:46. Показов 4963. Ответов 16
Метки нет (Все метки)
Решение задачи Коши методом Рунге-Кутта и сравнить результат с MATLAB
не могу найти ошибку, работает практически исправно, только где то небольшая ошибка.
Кликните здесь для просмотра всего текста
0 0 0.0250 0.0000 0.0500 0.0001 0.0750 0.0003 0.1000 0.0007 0.1250 0.0011 0.1500 0.0018 0.1750 0.0027 0.2000 0.0038 0.2250 0.0052 0.2500 0.0069 0.2750 0.0090 0.3000 0.0114 0.3250 0.0143 0.3500 0.0176 0.3750 0.0213 0.4000 0.0256 0.4250 0.0304 0.4500 0.0357 0.4750 0.0417 0.5000 0.0482 0.5250 0.0555 0.5500 0.0634 0.5750 0.0720 0.6000 0.0814 0.6250 0.0915 0.6500 0.1025 0.6750 0.1143 0.7000 0.1270 0.7250 0.1406 0.7500 0.1552 0.7750 0.1707 0.8000 0.1872 0.8250 0.2047 0.8500 0.2233 0.8750 0.2430 0.9000 0.2638 0.9250 0.2858 0.9500 0.3090 0.9750 0.3333 1.0000 число результат MATLAB: Кликните здесь для просмотра всего текста
0 0
0.0250 0.0000 0.0500 0.0000 0.0750 0.0001 0.1000 0.0003 0.1250 0.0007 0.1500 0.0011 0.1750 0.0018 0.2000 0.0027 0.2250 0.0038 0.2500 0.0052 0.2750 0.0069 0.3000 0.0090 0.3250 0.0114 0.3500 0.0143 0.3750 0.0176 0.4000 0.0213 0.4250 0.0256 0.4500 0.0304 0.4750 0.0357 0.5000 0.0417 0.5250 0.0482 0.5500 0.0555 0.5750 0.0634 0.6000 0.0720 0.6250 0.0814 0.6500 0.0915 0.6750 0.1025 0.7000 0.1143 0.7250 0.1270 0.7500 0.1406 0.7750 0.1552 0.8000 0.1707 0.8250 0.1872 0.8500 0.2047 0.8750 0.2233 0.9000 0.2430 0.9250 0.2638 0.9500 0.2858 0.9750 0.3090 1.0000 0.3333 суть в том, что глупо говоря правый столбик смещён на 1ну позицию вверх, что видно из результатов. Добавлено через 13 минут наверное выбрал плохое название темы, что даже бояться открывать и думаю, что там просто просят написать программу
0
|
29.12.2013, 23:46 | |
Ответы с готовыми решениями:
16
Решение задачи Коши методом Эйлера и Рунге-Кутты Решение методом Рунге - Кутта. Переполнение переменной Решение дифференциального уравнения методом Рунге-Кутта Решение системы диффуров методом Рунге-Кутта |
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
29.12.2013, 23:47 | 2 |
Я, может быть, немного Вас удивлю, но у меня это программа выдаёт результат, который Вы назвали "результат MATLAB". Я взял h=0.025.
Кликните здесь для просмотра всего текста
h= 0.025
Kutt: 0.0000 0.0000 0.0250 0.0000 0.0500 0.0001 0.0750 0.0003 0.1000 0.0006 0.1250 0.0011 0.1500 0.0018 0.1750 0.0027 0.2000 0.0038 0.2250 0.0052 0.2500 0.0069 0.2750 0.0090 0.3000 0.0114 0.3250 0.0143 0.3500 0.0176 0.3750 0.0213 0.4000 0.0256 0.4250 0.0304 0.4500 0.0357 0.4750 0.0417 0.5000 0.0482 0.5250 0.0555 0.5500 0.0634 0.5750 0.0720 0.6000 0.0814 0.6250 0.0915 0.6500 0.1025 0.6750 0.1143 0.7000 0.1270 0.7250 0.1406 0.7500 0.1552 0.7750 0.1707 0.8000 0.1872 0.8250 0.2047 0.8500 0.2233 0.8750 0.2430 0.9000 0.2638 0.9250 0.2858 0.9500 0.3089 0.9750 0.3333 1.0000 0.3590 1.0250 0.3859 Для продолжения нажмите любую клавишу . . . При этом, значения немного другие в некоторых местах. Каюсь, не вдумывался в текст программы, то в строке, где определяется переменная n, компилятор не без основательно предупреждает, что возможна потеря значения (слева -- int, справа -- деление).
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
29.12.2013, 23:52 [ТС] | 3 |
int n = ceil((xn-x0)/h) + 2;
слева дабл, справа дабл, преборазование и +2 если таблицу вы скопировали у меня то или ошиблись таблицей и тогда у вас работает правильно а уменя нет или же все же просто не заметили что ошибка осталась.
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
29.12.2013, 23:57 | 4 |
Я скопировал текст программы и запустил её. Данные скопировал из своей консольки при h=0.025.
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
29.12.2013, 23:59 [ТС] | 5 |
интересно, сейчас проверю на другом компьютере
ps как копировать из консоли текст если не секрет?)
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
30.12.2013, 00:04 | 6 |
Тыкнуть по заголовку правой кнопкой --> Изменить -- > Выделить всё; опять правой кнопкой -- > Изменить --> Копировать
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
30.12.2013, 00:07 [ТС] | 7 |
раз это текст с консоли -> ошибка все ешё на месте
и бо он как раз совпадает с ошибочным кодом
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
30.12.2013, 00:10 | 8 |
Не понял. А как узнать, что программа выполнилась не правильно? Результат же совпадает с матлабовским. Надо, чтобы кто-то ещё его запустил у себя на компе. Какое значение h задается?
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
30.12.2013, 00:12 [ТС] | 9 |
h - интервал 0.0250
внимательней посмотрите на первые 4ре значения из таблици матлаб которые я скинул и поймёте
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
30.12.2013, 00:15 | 10 |
Едрить мадрить. Туплю жутко.
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
30.12.2013, 00:17 [ТС] | 11 |
и все же вопрос актуален
когда дебажил и смотрел на значения, то 0.0500 = x сразу выдавало 0.003 , пропуская 0,0001, а дальше последовательность соблюдаеться
0
|
73 / 73 / 1
Регистрация: 02.08.2008
Сообщений: 107
|
|
30.12.2013, 00:25 | 12 |
А если так:
Код
for (int i = 1; i < n; ++i){ y = kuttStep(x, y, h); x += h; arr[i][0] = x; arr[i][1] = y; }
1
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,237
|
||||||
30.12.2013, 00:34 | 14 | |||||
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
30.12.2013, 00:38 [ТС] | 15 |
вот тут уже я затупил, помуто не подума про последовательность вычеслней, спасибо.
Добавлено через 3 минуты хотя по логике почему так не пойму, хоть и правильно ведь в точке x0 мы уже вычислили , ибо вначале x=x0 и значит х нужно увеличть, но почему то так привильно, пускай так и будет)
0
|
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 42
|
|
30.12.2013, 01:00 [ТС] | 17 |
решаю задачу Коши в матлабе, там код строк 5.
0
|
30.12.2013, 01:00 | |
30.12.2013, 01:00 | |
Помогаю со студенческими работами здесь
17
Решение уравнений методами Рунге-Кутта и Эйлера Численно решить ОДУ методом Рунге-Кутта 4 порядка Решение обычных деференциальных уравнений методами Ейлера, Рунге-Кутта Численное интегрирование системы дифференциальных уравнений методом Рунге - Кутта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |