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

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

Для построения графиков вычислим массив поменьше:

Mr:=VECTOR((RK(u,v,v0,0.02,50)) ,i,[1,6,11,31,51])

                               i                  

    „  0     -0.06      0.664      0.252    -0.372    -1.424     -1.94   †

    ¦ 0.1   0.02980   -0.006536   -0.1812   -0.4400   -0.5917   -0.4419  ¦

Mr:=¦ 0.2  -0.05162    -0.1237    -0.2148   -0.2869   -0.2856   -0.1807  ¦

    ¦ 0.6  -0.03062   -0.05546   -0.06957  -0.06998  -0.05640  -0.03136  ¦

    …  1   -0.008523  -0.01538   -0.01919  -0.01919  -0.01538  -0.008528 ‡

Исключим первый столбец массива Mr. На его место и в конце таблицы вставим нулевые столбцы, представляющие граничные значения на концах стержня. Сделаем это следующим оператором:

M:=APPEND([ 0  0  0  0  0 ],VECTOR(Mr` ,i,2,7),[ 0  0  0  0  0 ])`

                                      i                           

И, наконец, добавим столбец номеров точек на стержне:

MM:=APPEND([ 0  1  2  3  4  5  6  7 ],M)`

    „ 0     0        0          0         0         0     †

    ¦ 1   -0.06   0.02980   -0.05162  -0.03062  -0.008523 ¦

    ¦ 2   0.664  -0.006536   -0.1237  -0.05546  -0.01538  ¦

MM:=¦ 3   0.252   -0.1812    -0.2148  -0.06957  -0.01919  ¦

    ¦ 4  -0.372   -0.4400    -0.2869  -0.06998  -0.01919  ¦

    ¦ 5  -1.424   -0.5917    -0.2856  -0.05640  -0.01538  ¦

    ¦ 6   -1.94   -0.4419    -0.1807  -0.03136  -0.008528 ¦

    … 7     0        0          0         0         0     ‡

Для построения интерполяционных многочленов применим оператор построения аппроксимирующих многочленов методом наименьших квадратов FIT(), который в предельном случае (задача 8) дает многочлен, проходящий через все точки заданной таблицы. В таблице MM таких точек 8.

Параметрами оператора FIT() служат: вектор вида многочлена

    „              2     3     4     5     6     7†

vv:=…x,a0+a1·x+a2·x +a3·x +a4·x +a5·x +a6·x +a7·x ‡

и таблица координат точек, включающая столбец аргумента и один из столбцов значений функции

APPEND(„MM` †,„MM` †)`

       …   1‡ …   j‡  

Теперь вектор интерполяционных многочленов для пяти временных сечений можно представить следующим оператором:

„VECTOR(FIT(vv,APPEND(„MM` †,„MM` †)`),j,2,6)†`

…                     …   1‡ …   j‡          ‡

Вычисления операторов в этой задаче необходимо проводить с количеством разрядов не менее 20. Вывод на экран и печать достаточно выполнять с 4 значащими цифрами.

„                               7          6         5        4        3        2                            †

¦                    -0.001755·x +0.04562·x -0.4717·x +2.485·x -7.014·x +9.811·x -4.914·x                    ¦

¦                                                                                                            ¦

¦                -5  7            6           5          4          3          2                   -51       ¦

¦        1.386·10  ·x -0.0004907·x +0.005507·x -0.02275·x +0.02679·x -0.02246·x +0.04319·x+4.212·10          ¦

¦                                                                                                            ¦

¦              -6  7            6           5           4           3           2                   -51      ¦

¦      5.905·10  ·x -0.0001545·x +0.001330·x -0.003816·x +0.002046·x -0.005220·x -0.04581·x-2.889·10         ¦

¦                                                                                                            ¦

¦           -8  7         -7  6         -6  5         -5  4           3            2                   -53   ¦

¦   3.464·10  ·x -1.882·10  ·x -7.258·10  ·x -1.084·10  ·x +0.001078·x -0.0001542·x -0.03153·x+4.665·10      ¦

¦                                                                                                            ¦