|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2013, 21:03 | #1 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 4
|
ОДУ методом Эйлера (проверить алгоритм Делфи)
Что не так в данном алгоритме? Почему при данном условии решение выводит все 0, и почему решений 11 всесто 10?
Условие задачи: Используя метод Эйлера, составить таблицу приближенных значений интеграла дифференциального уравнения y’=3*y^(2/3) на отрезке [0;1] с шагом интегрирования h=0,1 и начальным условием y(0)=0. Алгоритм в ДЕлфи: Код:
Последний раз редактировалось Stilet; 13.02.2013 в 22:08. |
14.02.2013, 10:52 | #2 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
А как Вы сами думаете, что там может быть кроме нуля с таким y(0)?
При цикле с таким постусловием он и должен выводить 11 строк, посчитайте сами. Да, сам алгоритм правильный. Upd. Я имею ввиду, сам метод Эйлера реализован правильно. А вот этот порядок операции неверный. Угадайте, почему. Код:
Μολὼν λαβέ
Последний раз редактировалось alexander13; 14.02.2013 в 11:14. |
14.02.2013, 19:10 | #3 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 4
|
Просто я не превык решая 1 задачу получать нулевой ответ) при этом этот ответ надо скриншотить.
to Upd. Как не переставлял местами все равно 11 ответов, если поставить вывод в листбокс перед Х то значения у(0) выдает вместо у(1,1). В чем косяк? to Upd2. f:=3*Power(y,2/3); так да? Иначе 3 тоже возводит в степень. И последний вопрос. Я скачал готовую прогу написано решает методом эйлера тоже, но там еще навороты - график, оформлено и т.д. Вставляю свою формулу - результат отличается от моего, при у(0)=1 как такое возможно? Последний раз редактировалось xenon1000; 14.02.2013 в 19:24. |
14.02.2013, 19:32 | #4 | |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
Вы подумайте.. и увидите, что там никакого другого ответа и не могло быть при таких начальных данных.
Цитата:
y(1,1) = ... При том, что у Вас функция вычисляется на отрезке [0,1] - как такое может быть? Да. Я не телепат, не знаю, что Вы там скачали. Ради проверки я тоже нашел исходники другой проги, она мне выдала те же самые результаты. Может, в той, что Вы скачали, ошибка. Может еще что-то, не знаю.
Μολὼν λαβέ
Последний раз редактировалось alexander13; 14.02.2013 в 19:36. |
|
14.02.2013, 20:24 | #5 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 4
|
Спасибо!
|
14.02.2013, 21:04 | #6 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,318
|
Обратите внимание на порядок вывода сообщения и увеличения x:
У Вас: Код:
Код:
Как-то так ...
Как-то так, ...
|
14.02.2013, 21:52 | #7 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 4
|
Возник вопрос. Я хочу вывести ответ не в листбоксе перечнем, как выше написано в алгоритме, а раскидать значения в таблицу, используя объект StringGrid. Я прочитал кучу всего, но не нашел как циклом заполнить таблицу значениями.
Код:
Вкратце как правильно составить цикл вывода значений по ячейкам? Или придется переписывать полностью цикл repeat? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решение ОДУ методом Рунге-Кутты | Демик | Помощь студентам | 7 | 03.12.2011 14:24 |
Написать программу на C++ для решения ОДУ разностным методом | Macuka | Фриланс | 0 | 13.12.2010 21:29 |
численное решение дифуров методом Эйлера | xbymzymx | Помощь студентам | 1 | 06.11.2010 18:14 |
ДУ методом Эйлера, Рунге-Кутта (Паскаль) | Gebbellz | Помощь студентам | 6 | 13.06.2010 17:53 |
Задача Методом Эйлера и методом Рунге-Кутта. Прошу помочь. Очень срочно. | BeNeDiKT | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 12.05.2009 13:14 |