На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> Метод итераций
    Если у кого нибудь есть исходники по методу итераций можете(если будете любезны)скинуть мне на мыло (если не затруднит), а то совсем ни чего не получается! :wall: :wall: :wall:
      Будем любезны :) , если ты скажешь нам о том, какой метод итерации (их ведь много-много) тебя интересует.
        Насколько я понял, ты имеешь ввиду метод простых итераций для нахождения приближенного значения корня уравнения. Если это действительно так, то тебе должен помочь отчёт к моей лабе по этой теме. :yes:
        Сообщение отредактировано: Sky Shade -

        Прикреплённый файлПрикреплённый файлEquaSolve.doc (59.5 Кбайт, скачиваний: 3679)
          Цитата Deacon,5.05.04, 19:52
          Если у кого нибудь есть исходники по методу итераций можете(если будете любезны)скинуть мне на мыло (если не затруднит), а то совсем ни чего не получается! :wall: :wall: :wall:

          Извиняюсь за не так выраженую мысль!!! :(
          Я хотел сказать что мне нужен метод простых итераций для решения систем линейных уравнений.Если у кто-то может что-небудь подсказать буду :D и признателен.
          А также спасибо за все подсказаное !!!
          Сообщение отредактировано: Deacon -
            А у тебя есть описание этого метода для систем линейных уравнений?
            Если да, то выложи, попробуем закодировать :)
              ExpandedWrap disabled
                {$N+}
                 
                const Eps=1e-5; {точность}
                var x,z: real;
                    itt: integer; {кол-во итераций}
                 
                function F(value: real): real; {функция}
                begin
                     F:= Sqr(exp(value))-2.0;
                end;
                 
                begin
                     write('Enter first approximation: '); readln(z); {первое приближённое значение}
                     x:=F(z);
                     itt:=0;
                     repeat
                           z:=x;
                           x:=F(z);
                           inc(itt);
                     until abs(x-z)<eps; {пока не будет достигнута нужная точность}
                 
                     writeln('Root: ',x:1:5, ' (',itt,' itterations)');
                end.


              кажись, даже не всегда работает... (NAN)
              Сообщение отредактировано: romtek -
                2 romtek: По-моему то, что ты выложил - это решение одного уравнения, а речь идёт о решении системы линейных уравнений.

                2 Deacon: Я думаю, что надо сначала привести систему к "ступенчатому виду" (проще говоря, выразить все неизвестные через одну), а потом уже вычислять значение каждой переменной тем способом, который был здесь неоднократно упомянут (см. мою лабу и код romtek'a)
                  Цитата romtek,7.05.04, 22:47
                  Ты прав, это "для старта" :D

                  2 Deacon: Ready! Steady! Go! :lol:
                    Метод простых итераций:

                    А - основная матрица СЛАУ (размерность n*n)
                    b - вектор св.членов (размерность n)
                    X(0) - произвольно заданный вектор (размерность n)

                    X(k)=A*X(k-1)+b


                    Вычисляем X(k)-катый до тех пор, пока MAX(X(k)[i]-X(k-1)[i])>eps по модулю (ессно i пробегает значения от 1 до n, т.о. мы находим максимальную разность!).


                    p.s. Могу кинуть код на Дельфи, который реализует сходный метод - метод Зейделя.
                    Сообщение отредактировано: mikv -
                      Кидай посмотрим :)
                      Я ни разу не слышал про метод Зейделя - надо повышать свой уровень знаний.
                        Sky Shade, сходи в "Алгоритмы", там недавно это обсуждалось.

                        И вообще такие вещи лучше обсуждать там.
                          M
                          Тема перенесена из Pascal
                            Вообще метод простых итераций и метод Зейделя очень похожи.
                            Если в методе простых итераций при получении xn(k+1) мы будем использовать значения xn(k), то в методе Зейделя будем использовать уже уточненные значении корня, полученные на данной итерации. Т.е. для нахождения x2(k+1) используем не x1(k), а x1(k+1), и т.д.
                            Таким образом метод Зейделя обычно сходится быстрее метода простых итераций.
                            В атачке - реализации методов решения СЛАУ на Delphi - метод Гаусса, метод Крамера, метод простых итераций, метод Зейделя, метод обратной матрицы. Кстати, для решения СЛАУ в MS Excel - наиболее легко выполнимым является метод обратной матрицы, т.к. используются только стандартные функции (см. пример на Excel.)
                            Прикреплённый файлПрикреплённый файлslau.zip (4.01 Кбайт, скачиваний: 1626)
                              mikv, что-то ты какую-то ересь написал про метод простых итераций, тебе не кажется? :)
                              по крайней мере то, что касается
                              Цитата mikv
                              X(k)=A*X(k-1)+b

                              исходя хотя бы из того, что первоначальная задача стоит так: Ax=b...

                              теперь подумай, что из чего следует ...
                                Цитата seeker @
                                что-то ты какую-то ересь написал про метод простых итераций, тебе не кажется? :)

                                :no:

                                Цитата seeker @
                                исходя хотя бы из того, что первоначальная задача стоит так: Ax=b...

                                а я исходил из того что задача поставлена как:
                                A*x+b=0
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0327 ]   [ 14 queries used ]   [ Generated: 15.05.24, 19:35 GMT ]