Численные методы в среде символьной математики. Программирование и решение задач: Учебно-методическое пособие, страница 34

Итерационный векторный процесс в общем виде представляется следующим образом [  ]:

,

где         – искомый вектор решения и его начальное приближение;

– матрица, обратная матрице Якоби из частных производных:

Для программирования этого процесса в DERIVE необходимо построить операторы для вычисления укзанных объектов.

Искомый вектор V и вектор уравнений f уже определены выше. Матрицу Якоби из частных производных определим так:

         €€ d    ‚  € d    ‚  € d    ‚  € d    ‚ ‚

J:=APPEND¦¦———— f¦`,¦———— f¦`,¦———— f¦`,¦———— f¦`¦`

         d w0  ƒ  d w1  ƒ  d x1  ƒ  d x2  ƒ ƒ

   „  1    1       0         0    †

   ¦ x1   x2      w0        w1    ¦

J:=¦   2    2                     ¦

   ¦ x1   x2    2·w0·x1   2·w1·x2 ¦

   ¦   3    3         2         2 ¦

   … x1   x2   3·w0·x1   3·w1·x2  ‡

Функции для вычисления покомпонентных приращений вектора V:

           €   € d    ‚  € d    ‚  € d    ‚ ‚

Vw0:=APPEND¦f`,¦———— f¦`,¦———— f¦`,¦———— f¦`¦`

              d w1  ƒ  d x1  ƒ  d x2  ƒ ƒ

           €€ d    ‚     € d    ‚  € d    ‚ ‚

Vw1:=APPEND¦¦———— f¦`,f`,¦———— f¦`,¦———— f¦`¦`

           d w0  ƒ     d x1  ƒ  d x2  ƒ ƒ

           €€ d    ‚  € d    ‚     € d    ‚ ‚

Vx1:=APPEND¦¦———— f¦`,¦———— f¦`,f`,¦———— f¦`¦`

           d w0  ƒ  d w1  ƒ     d x2  ƒ ƒ

           €€ d    ‚  € d    ‚  € d    ‚    ‚

Vx2:=APPEND¦¦———— f¦`,¦———— f¦`,¦———— f¦`,f`¦`

           d w0  ƒ  d w1  ƒ  d x1  ƒ    ƒ

Выражение для вычисления очередного приближения к искомому вектору:

„             2          2      †

¦  2·(x1·(3·x2 +1)-x2·(x2 -1))  ¦

¦ ————————————————————————————- ¦

¦                   3           ¦

¦            (x1-x2)            ¦

¦                               ¦

¦         3     2               ¦

¦    2·(x1 -3·x1 ·x2-x1-x2)     ¦

¦   ———————————————————————-    ¦

¦                  3            ¦

¦           (x1-x2)             ¦

¦                               ¦

¦                 2             ¦

¦      2·(x1·(3·x2 +1)+2·x2)    ¦

¦  x1-——————————————————————-   ¦

¦                      2        ¦

¦          3·w0·(x1-x2)         ¦

¦                               ¦

¦              2                ¦

¦       2·(3·x1 ·x2+2·x1+x2)    ¦

¦  x2-———————————————————————-  ¦

¦              2           2    ¦

…      3·w1·(x1 -2·x1·x2+x2 )   ‡

Сформированное выше выражение для вычисления очередного приближения, как видим, возвращает матрицу с 4 строками и одним столбцом. Для использования оператора итерационных приближений итерируемое выражение должно быть представлено в форме вектора. Определим этот вектор следующим образом:

          €       -1            ‚

VV:=VECTOR¦([V]`-J  •f)   ,i,1,4¦

                      i,1      ƒ

Так как в итерационном приближении вектора вместо конкретных компонент должны присутствовать ссылки на соответствующую компоненту приближаемого вектора, то такую замену можно реализовать с помощью операторов LIM(). В результате векторная функция для списка параметров оператора ITERATES() примет такой вид:

VVI:= lim    lim    lim    lim   VV

     x2˜V™4 x1˜V™3 w1˜V™2 w0˜V™1   

Из задачи №10в аналитические значения корней известны – это w0=w1=1, x1=(-1/‹3), x2=(1/‹3). Для сходимости итерационного процесса, особенно в многомерном случае, необходимо провести предварительное исследование функции на предмет определения области нахождения корней. Начальное приближение вектора должно оказаться в достаточной близости к истинным корням. Руководствуясь этим, возьмем начальные значения, которые отличаются от точных на 10-20%:

NotationDigits:=6

ITERATES(VVI,V,[0.9,1.2,-0.5,0.6],5)

„    0.9       1.2      -0.5        0.6   †

¦ 0.985725   1.01427  -0.597949  0.577043 ¦

¦ 0.999088   1.00091  -0.577778  0.576996 ¦

¦ 0.999999   1.00000  -0.577350  0.577350 ¦

¦  1.00000  0.999999  -0.577350  0.577350 ¦

…     1         1     -0.577350  0.577350 ‡

Итак, уже на пятом шаге итераций значения корней получены с точностью в 6 десятичных знаков.

Задача № 19: Интегрирование уравнения