Penghampiran Turunan Metode Numerik

PENGHAMPIRAN  TURUNAN
Nama   : Maria Ulfa Cahyani
NIM    : 110210102054

1.      y = 3x3+2x2+4
M-File:
function f = Lat05(x)
     x = x(:);
     f = 3*(x.^3)+2*(x.^2)+4;
Command Window:
>> y=Lat05(1)
     y =
                 9

2.  Buatlah function untuk menyelesaikan pendekatan turunan pertama dari f(x) dengan metode beda pusat dengan error berorde O(h2) (Persamaan 3-1):
Bandingkan hasilnya dengan jika dihitung langsung? Coba pula anda bandingkan jika h diberi harga 0.1, 0.001, 0.00001, dan 0.000000001?
M-File:
function dfx = dBP06(f,x,h)
       if isstr(f)~=1; error('nama harus sebuah strings');end
       if min(size(x))>1; error('x harus vector atau scalar'); end
if length(h)==1;h=h*ones(length(x),1);end
x = x(:); h=h(:);
xp = x + h; xm = x – h;
Xp = feval(f,xp); Xm=feval(f,xm);
dxp=Xp-Xm;
dfx=dxp. / (2*h);
Command Window:
>> format long
>> dx = dBP06 ('Lat05',1,0.01)
dx =
  13.00030000000003
>> dx = dBP06 ('Lat05',1,0.1)
dx =
  13.03000000000001
>> dx = dBP06 ('Lat05',1,0.001)
dx =
  13.00000299999926
>> dx = dBP06 ('Lat05',1,0.00001)
dx =
  13.00000000030721
>> dx = dBP06 ('Lat05',1,0.000000001)
dx =
  13.00000018744640
  
3. lakukan seperti latihan no 2, untuk kedua function dari persamaan (3-2 dan 3-3) berikut ini:
a.       function untuk persamaan (3-2)
M-File:
function dfx2 = dBP07(f,x,h)
        if isstr(f)~=1;error('nama harus sebuah strings');end
        if min(size(x))>1;error('x harus vector atau scalar');end
if length(h)==1; h=h*ones(length(x),1);end
x = x(:); h = h(:);
xp = x + h; xm = x - h;
Xp = feval(f,xp); Xt = feval(f,x); Xm = feval (f,xm);
dxp = Xp-(2*Xt)+Xm;
dfx2=dxp./(h.*h);function untuk persamaan (3-3)
Command Window:
>> format long
>> dfx2 = dBP07('Lat05',1,0.1)

dfx2 =

  22.00000000000024

>> dfx2 = dBP07('Lat05',1,0.01)

dfx2 =

  21.99999999998425

>> dfx2 = dBP07('Lat05',1,0.001)

dfx2 =

  21.99999999596969

>> dfx2 = dBP07('Lat05',1,0.00001)

dfx2 =

  22.00001958385655

>> dfx2 = dBP07('Lat05',1,0.000000001)

dfx2 =

    1.776356839400250e+003

  

b.  M-File:
function dfx3 = dBP08(f,x,h)
             if isstr(f)~=1;error('nama harus sebuah strings');end
             if min(size(x))>1;error('x harus vector atau scalar');end
    if length(h)==1; h=h*ones(length(x),1); end
             x = x(:);    h = h (:);
xp = x + h;    xm = x - h;
xp2=x+2*h; xm2=x-2*h;
Xp = feval(f,xp);    Xm = feval(f,xm);
Xp2 = feval(f,xp2);    Xm2 = feval(f,xm2);
dxp = Xp2-(2*Xp)+(2*Xm)-Xm2;
dfx3 = dxp./(2*(h.^3));
Command Window:
>> format long
>> dfx3 = dBP08('Lat05',1,0.1)
dfx3 =
  17.99999999999801
>> dfx3 = dBP08('Lat05',1,0.01)
dfx3 =
  17.99999999985147
>> dfx3 = dBP08('Lat05',1,0.001)
dfx3 =
  18.00000060114826
>> dfx3 = dBP08('Lat05',1,0.00001)
dfx3 =
  16.87538997430238
>> dfx3 = dBP08('Lat05',1,0.000000001)
dfx3 =
   -8.881784197001250e+011
  

4. buatlah function yang bisa mengeksekusi input scalar maupun vector dari fungsi y = 4e-2x *sin(5x). simpanlah function anda dengan nama “Lat09”. Ujilah function anda dengan memaksukkan nilai x = 0 dan x = 1, bandingkan dengan jika dihitung langsung. Jika sudah benar, lakukan perintah berikut ini.
>> x = 0:0.1:25;
>> y = Lat09(x);
>> dx = dBP06('Lat09',x,0.001)
>>dx2 = dBP07('Lat09',x,0.001)
>>dx3 = dBP08('Lat09',x,0.001)
>>plot(x,y,x,dx,x,dx2,x,dx3)


Comments

Popular Posts