Омега
offline
Опыт:
12,033Активность: |
Метод бисекции (программа)
Нужно найти серию корней методом биссекции я решил сделать прогу на pascal по статье из wiki. Но что-то здесь не то, работает не как нужно. Знающие люди поправьте.
F=x^4+x^2-10 ; Погрешность=0.1 ; Интервал [0;2] Код:
Теперь я не пойму, все нормально, или что-то лажает. Вроде ввел отображение выражения abs(xn-xk) - да, программа завершается, когда это выражение < погрешности. Теперь уже не по программе, а по применению метода вопрос: все правильно? Отредактировано Omega_Z, 26.10.2009 в 16:25. |
26.10.2009, 16:09 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Медведь
ФффыррфррфффФФфф!
offline
Опыт:
21,702Активность: |
а ты учел то, что оба корня могут оказаться в данном интервале? |
26.10.2009, 16:25 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Омега
offline
Опыт:
12,033Активность: |
Мне вроде один нужен, я так понял, что любой.
А если честно, то я из темы нихрена не понял, сейчас лабораторную сдавать, в течении недели, лучше завтра или в среду. Вот и взялся. У меня в конспекте указано то, что нужно найти просто интервал, в котором находится корень, при то, что расстояние между левым и правым меньше погрешности. Отредактировано Omega_Z, 26.10.2009 в 16:35. |
26.10.2009, 16:30 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Медведь
ФффыррфррфффФФфф!
offline
Опыт:
21,702Активность: |
Omega_Z, обрати внимание, у тя там лежит проверка на то, чтобы на разных концах интервала функция имела разные значения. А если оба корня лежат в этом интервале, то у функции буит одинаковый знак концах. Так что это витально. |
26.10.2009, 16:33 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Омега
offline
Опыт:
12,033Активность: |
Зачет или незачет?
Что исправить? |
26.10.2009, 16:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Медведь
ФффыррфррфффФФфф!
offline
Опыт:
21,702Активность: |
добавь это:
if (fxn*fxi >0) and (fxi*fxk>0) then writeln('Корней нет!')
здесь измени "<" на "<=" Хотя это тоже кривое решение. |
26.10.2009, 17:25 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Омега
offline
Опыт:
12,033Активность: |
Он же должен быть отрицательным, а 0 число не отрицательное. Нафиг <=.
Про корней нет добавил. В принципе, так и оставлю. Спасибо. |
26.10.2009, 17:54 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NCrashed
offline
Опыт:
13,553Активность: |
Убери goto, за это повесили много программистов. Делай по правилам структурного программирования. |
26.10.2009, 19:15 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Омега
offline
Опыт:
12,033Активность: |
NCrashed, да я там уже все переделал, что совпадает с верхним постом только в общих чертах.
Goto не уберу, ибо мне так удобней, а на правила пофиг абсолютно, т.к. делаю только для себя. |
26.10.2009, 22:07 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|