Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > HELP ME с алгоритмом!!!


Автор: Georgiii 21.12.2005, 18:51
Программа на языке С++
Дано f(x)=0 (1)
Заменим (1) x=w(x) (2)
Выберем грубое,приближенное значение х0,принадлежащее [a,b],подставим его в правую часть ур-я (2),получим:
х1=w(x0) (3)
далее подставим х1 в правую часть ур-я (3) получим:
х2=w(x1) (4)
x3=w(x2) (5)
Проделаем данный процесс n раз получим х(n)=w(x(n-1))
Если эта посл-ть является сходящейся,т.е сущ-ет предел x*=lim(x(n)), то данный алгоритм позволяет опр-ть искомый корень. Вфражение (5) запишем как x*=w(x*) (6)
Выражение (6) явл-ся решением выражения (2),теперь необходимо рассмотреть в каких случаях посл-ть х1....х(n) явл-ся сходящейся. Условием сходимости явл-ся если во всех точках х принадл.[a,b] выполняется условие: |w'(x)|<1 (производная <1)
Вопрос в том что не получается написать прогу решения sin(x)=0 на С++ т.к непонятен алгоритм,непонятно какое х выводить.
Если кто может напишите пожалуйста или помогите понять суть метода....лучше конечно первое smile
Добавлено @ 18:53
P.S Это был метод решения нелинейного уравнения методом итераций

Добавлено @ 18:58
smile smile

Автор: Artemon 24.12.2005, 09:10
Используй метод деления пополам.

С помощью него решается уравнение любого вида.

Алгоритм или реализацию ищи в поисковиках.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)