| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 на С++ т.к непонятен алгоритм,непонятно какое х выводить. Если кто может напишите пожалуйста или помогите понять суть метода....лучше конечно первое Добавлено @ 18:53 P.S Это был метод решения нелинейного уравнения методом итераций Добавлено @ 18:58 |
| Автор: Artemon 24.12.2005, 09:10 |
| Используй метод деления пополам. С помощью него решается уравнение любого вида. Алгоритм или реализацию ищи в поисковиках. |