Exponenttifunktion Taylorin polynomeja (mlGr10D.m)

mlGr10D.m

https://math.aalto.fi/opetus/Mattie/Blogi/Matlab/html/ExpTaylor.html

Contents

close all                         % Suljetaan mahd. avoinna olevat
                                  % grafiikkaikkunat
x = [-2:.01:2];                   % Diskreetti x-akselin väli
y = exp(x);                       % exp-funktion arvot x-pisteissä

Lasketaan Taylorin polynomien arvoja x-pisteissä

p0 = ones(size(x));               % Ykkösistä koostuva vektori
p1 = p0 + x;                      % Lisätään x-vektori
p2 = p1 + (x.^2)/2;               % Seuraava termi, huomaa .^
p3 = p2 + (x.^3)/6;               %  Ja vielä yksi.

Piirretään kaikki samaan kuvaan

plot(x,y)
hold on
plot(x,p0)
plot(x,p1)
plot(x,p2)
plot(x,p3)
grid on
legend('e^x','p0','p1','p2','p3','Location','NW')  % NW=North West
shg  % "Show Graphics" Ei välttämätön, mutta hyvä.

Entä, jos halutaan laskea ja piirtää korkeamman asteisia?

Otetaan käyttöön for-silmukka, tehdään alusta saakka:
p{1}=ones(size(x)); % Matlab ei salli 0-indeksiä. Huomaa aaltosulut {}.
                    % p{k} voidaan ajatella indeksoituna (vektori)muuttujana.
N=10;               % Muuttele tarpeen mukaan
for k=1:N
    p{k+1}=p{k}+(x.^(k))/factorial(k);
end
% plot(x,y,x,p{4},x,p{6},x,p{8},x,p{10})  % Nyt plot:n muoto, jossa monta
                                        % kuvaajaa samalla komennolla.
% grid on
% shg
% Jätettiin kommenttien taakse, selvennetään laittamalla värimääreitä:
%  'r' = red, 'g'=green, 'k'=black
hold off   % Seuraavat piirtokomennot pyyhkivät edelliset piirroket
plot(x,y,'r--',x,p{3},'g',x,p{5},'b',x,p{9},'k') % Parilliset polynomit
hold on    % Pidetään edelliset
plot(x,y,'r--','LineWidth',2)  % Punainen, paksumpi katkoviiva, jotta
                               % erottuisi seuraavassa p{9}:n kuvaajasta.
grid on
title('e^x ja parillisia Taylorin polynomeja')
legend('e^x','T_2','T_4','T_8','Location','NW')
shg
%
% Zoomaamalla gragfiikkaikkunaa suurennuslasilla nähdään, missä vaiheessa
% T_8 :n (eli p{9}:n) ja exp(x).n kuvaajat erkanevat.
%

Approksimointivirhe

figure            % Avataan uusi grafiikkaikkuna.
plot(x,y-p{9})    % Piirretään erotus exp(x)-T8(x)
title('Virhe: e^x - T_8(x)')
grid on
shg

Ja lasketaan maksimivirhe:

maksvirhe=max(abs(y-p{9}))
%
maksvirhe =

    0.0018