![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 14.01.2011
Сообщений: 1
|
![]()
Здравствуйте!
У меня возникла трабла с написание алгоритма, точнее сомневаюсь в нем, решил выложить проверить можно ли так. Задача: методом дихотомии решить нелинейное уравнение f(x)=g(x). Можно было конечно решить элементарно: f(x)-g(x)=0 и решать всё относительно одной функции. Но я пошел другим путем ))) P.S. Без разницы какие функции, но в моём случае это (0,5^x)-3=(x+2)^2 Вот мой алгоритм: Находим решение на участке [-2,-1] (это графически нашёл - облегчил "кругозор") 1. Находим с=(а+в)/2, проверяем является ли с решением. Если нет, то 2. Если [min(f(a),f(c)),max(f(a),f(c))]∩[min(g(a),g(c)),max(g(a),g(c))]=0, то а:=с иначе в:=с (нахождение участка с решением) 3. Переходим обратно к п.1 и т.д. P.S. Может я и нагородил тут, но вроде ничего сложного и ещё можно ли сделать так как в п.2. или лучше заменять индексами. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 19.03.2010
Сообщений: 409
|
![]()
метод дихотомии предназначен для решения нелинейных уравнений вида F(x)=0, следовательно ваше уравнение нужно привести к такому виду, т.е. нужно решать f(x)-g(x)=0, не надо ничего усложнять.
Да , кстати причем тут min и max во 2 условии? Нужно ведь проверять смену знака функции на 2 участках.
Есть вопросы, пишите в ЛС.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дихотомия в C++ | k4k7u3 | Помощь студентам | 0 | 19.05.2011 21:30 |