top of page

Ряд Тейлора

 

Как-то пришлось помогать одному первокурснику в поиске суммы, разложенной в ряд Тейлора функции sin²x. Поскольку все происходило в рамках отчета по лабораторной работе (курс  "Основы программирования"), пришлось восстанавливать навыки работы в среде Turbo Pascal 7.

 

Но не программирование оказалось самым сложным. Большую часть времени пришлось затратить на устранение завышенных результатов при больших х, даже при суммировании значительного числа членов ряда.

 

Выход был найден в виде приведения больших значений аргументов к меньшим, так как синус - функция периодическая. Но хотелось все-таки добиться наглядности. Как члены ряда, сплошь представляющие собой противоположно направленные параболы в состоянии сформировать периодическую функцию? 

 

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

 

В результате, была сооружена программа, которая перерисовывает функцию после добавления следующего слагаемого. Кроме того, в каждый момент отражается не только график функции включающей K слагаемых, но и другим цветом график функции, представляющей собой следующее К+1-е слагаемое. Добавляемая часть обозначена фиолетовым цветом не картинке и зеленым на видео. Последовательное нажатие на клавишу Enter приводит к смене одних графиков другими,  а у наблюдателя создается целостное преставление о суммировании членов ряда.

 

Получается, что параболы, за счет коэффициентов имеют сплюснутые вершины и стремительные "бока". Поэтому они эффективно работают на периферии, и почти не трогают внутреннюю часть.  Поскольку ветви направлены в разные стороны и по мере увеличения порядкового номера ветви параболы раздвигаются и становятся все более стремительными, в результате суммирования получается периодическая функция. Но лучше один раз посмотреть или в среде Turbo Pascal 7 запустить программу.. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программа попросит ввести пределы изменения аргумента X. В ответ можно ввести через пробел числа: -10 10. Enter.

Или посмотреть на https://www.youtube.com/watch?feature=player_embedded&v=WBxVou2zopw

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

program ryad1 (input,output);
uses graph;
var
X,XP,XK,DX,SX, S, S2, SI, EPS, T, Ab, V : real;
 grDriver: Integer;
 grMode: Integer;
 ErrCode: Integer;
I,k:integer;
begin
write('vvedi interval XP,XK ');
readln(XP,XK);
dx:=0.01;
grDriver := Detect;
 InitGraph(grDriver, grMode,'d:\turbo\turbo');
 ErrCode := GraphResult;
 if ErrCode = grOk then
    begin
        i:=1;
            for k:=1 to 20 do
                begin
                line(0,200,600,200);
                line(300,100,300,400);
                                line(297,120,303,120);
                                line(297,280,303,280);
                                line (300-trunc(3.14*20),197,300-trunc(3.14*20),203);
                line (300+trunc(3.14*20),197,300+trunc(3.14*20),203);
                X:=XP;
                    repeat
                        SX:=X-pi*trunc(X/pi);
                        SI:=sqr(sX);
                        S:=si;  s2:=-SI*2*sqr(sX)/12;
                                                if i>1 then
                                                        begin
                            for k:=2 to i  do
                                begin
                                SI:=-SI*2*sqr(sX)/((2*k-1)*k);
                                                                s2:=-SI*2*sqr(sX)/((2*(k+1)-1)*(k+1));
                                S:=S+SI;
                            end
                                                        end ;
                        PutPixel(trunc(x*20+300),trunc(200-s*80),20);
                                                PutPixel(trunc(x*20+300),trunc(200-s2*80),21);
                        X:=X+DX;
                    until X>XK;
                i:=i+1;
                readln;
                cleardevice;
            end;
 end
    else write('error');
end.

 

Процесс суммирования
bottom of page