Polinomialnewton
clear
clc
n=input('derajat interpolasi:')
k=input('nilai yang dicari:')
f=xlsread('interpolasi.xlsx','sheet1')
u=input('start data ke:')
h=f(2,2)-f(1,2);
j=size(f);
m=j(1,1);
y=(k-f(u,2))/h;
for i=1:m
fdd(i,1)=f(i);
end
for j=2:m
for i=1:m-j+1 ;
fdd(i,j)=(fdd(i+1,j-1)-fdd(i,j-1))/(f(i+j-1,2)-f(i,2));
end
end
fdd
xterm=1;
fa(1)=fdd(u,1);
for order=1:n
xterm=xterm*(k-f(order+u-1,2));
fa2=fa(order)+fdd(u,order+1)*xterm;
fa(order+1)=fa2;
end
fa2
newton gregory foward
clear
clc
n=input('derajat interpolasi:')
k=input('nilai yang dicari:')
f=xlsread('interpolasi.xlsx','sheet1')
u=input('start data ke:')
h=f(2,2)-f(1,2)
j=size(f);
m=j(1,1)
y=(k-f(u,2))/h
for i=1:m
fd(i,1)=f(i);
end
for j=2:m
for i=1:m-j+1 ;
fd(i,j)=(fd(i+1,j-1)-fd(i,j-1));
end
end
fd
fa=fd(u,1)+fd(u,2)*y;
xterm=1;
for order=2:n
xterm=xterm*(y-(order-1));
fa2=fa(order-1)+fd(u,order+1)*y*xterm/factorial(order);
fa(order)=fa2;
end
fa2
newton gregory backward
clear
clc
n=input('derajat interpolasi:')
k=input('nilai yang dicari:')
f=xlsread('interpolasi.xlsx','sheet1')
u=input('start data ke:')
h=f(2,2)-f(1,2);
j=size(f);
m=j(1,1);
y=(k-f(u,2))/h;
for i=1:m
fd(i,1)=f(i);
end
for j=2:m
for i=1:m-j+1 ;
fd(i,j)=(fd(i+1,j-1)-fd(i,j-1));
end
end
fd
fa=fd(u,1)+fd(u-1,2)*y;
xterm=1;
for order=2:n
xterm=xterm*(y+(order-1));
fa2=fa(order-1)+fd(u-order,order+1)*y*xterm/factorial(order);
fa(order)=fa2;
end
fa2
polinomial lagrange
clear
clc
n=input('derajat interpolasi:')
k=input('nilai yang dicari:')
f=xlsread('interpolasi.xlsx','sheet1')
u=input('start data ke:')
n=n+1;
if u==1
m=u-1;
else
m=u;
end
y=0;
for i=u:m+n
product=f(i);
for j=u:m+n
if i~=j
product=product*(k-f(j,2))/(f(i,2)-f(j,2));
else
end
end
y=y+product;
end
y
trapezoidal
clear
clc
syms x
f=input('fungsi:')
a=input('batas bawah intergrasi:')
b=input('batas atas intergrasi:');
k=input('yang mana ditentukan terlebih dahulu:')
if k=='n'
n=input('jumlah pias:')
h=(b-a)/n;
else
h=input('range:')
n=(b-a)/h
end
x=a;
I=subs(f,a)+subs(f,b);
sigma=0;
for n=1:n-1
x=x+h;
sigma=sigma+2*subs(f,x);
end
i=(I+sigma)*h/2
etot_min=-1/12*h^3*subs(diff(f,3),a);
etot_max=-1/12*h^3*subs(diff(f,3),b);
taksiran_nilai_sejati_min=i+etot_min;
taksiran_nilai_sejati_min=i+etot_min;
g=int(f,a,b);
error_kasar=abs((g-i)/g)*100
trapezoidal soal diskrit
clear
clc
f=xlsread('dataintegral.xlsx','sheet1')
j=size(f)
a=f(1,2)
b=f(j(1),2)
segmen=(b-a)/(f(2,2)-f(1,2))
I=f(1,1)+f(j(1),1)
x=a
sigma=0;
for n=2:segmen
sigma=sigma+2*f(n);
end
i=(I+sigma)*(f(2,2)-f(1,2))/2
simpson 1/3 rule
clear
clc
syms x
f=input('fungsi:')
a=input('batas bawah intergrasi:')
b=input('batas atas intergrasi:');
k=input('yang mana ditentukan terlebih dahulu:')
if k=='n'
n=input('jumlah pias:')
h=(b-a)/n;
else
h=input('range:')
n=(b-a)/h
end
x=a;
I=subs(f,a)+subs(f,b);
sigma=0;
for n=1:n-1
x=x+h;
if mod(n,2)== 0
sigma=sigma+2*subs(f,x);
else
sigma=sigma+4*subs(f,x);
end
end
i=(I+sigma)*h/3
etot_min=-h^4/180*(b-a)*subs(diff(f,4),a);
etot_max=-h^4/180*(b-a)*subs(diff(f,4),b);
taksiran_nilai_sejati_min=i+etot_min;
taksiran_nilai_sejati_min=i+etot_min;
g=int(f,a,b);
error_kasar=abs((g-i)/g)*100;
simpson 1/3 rule data diskrit
clear
clc
f=xlsread('dataintegral.xlsx','sheet1')
j=size(f)
a=f(1,2)
b=f(j(1),2)
segmen=(b-a)/(f(2,2)-f(1,2))
h=f(2,2)-f(1,2)
I=f(1,1)+f(j(1),1)
x=a
sigma=0;
for n=2:segmen
if mod(n,2)== 0
sigma=sigma+4*f(n);
else
sigma=sigma+2*f(n);
end
end
i=(I+sigma)*h/3
simpson 3/8 rule
clear
clc
syms x
f=input('fungsi:')
a=input('batas bawah intergrasi:')
b=input('batas atas intergrasi:');
k=input('yang mana ditentukan terlebih dahulu:')
if k=='n'
n=input('jumlah pias:')
h=(b-a)/n;
else
h=input('range:')
n=(b-a)/h
end
x=a;
I=subs(f,a)+subs(f,b);
sigma=0;
for n=1:n-1
x=x+h;
if mod(n,3)== 0
sigma=sigma+2*subs(f,x);
else
sigma=sigma+3*subs(f,x);
end
end
i=(I+sigma)*3/8*h
etot_min=-h^4/80*(b-a)*subs(diff(f,4),1);
etot_max=-h^4/80*(b-a)*subs(diff(f,4),0);
taksiran_nilai_sejati_min=i+etot_min;
taksiran_nilai_sejati_min=i+etot_min;
g=int(f,a,b);
error_kasar=abs((g-i)/g)*100
simpson 3/8 rule data diskrit
clear
clc
f=xlsread('dataintegral.xlsx','sheet1')
j=size(f);
a=f(1,2);
b=f(j(1),2);
segmen=(b-a)/(f(2,2)-f(1,2));
h=f(2,2)-f(1,2);
I=f(1,1)+f(j(1),1);
sigma=0;
for n=1:segmen-1
if mod(n,3)== 0
sigma=sigma+2*f(n+1);
else
sigma=sigma+3*f(n+1);
end
end
i=(I+sigma)*3/8*h
turunan gregory foward
clear
clc
n=input('derajat interpolasi:')
f=xlsread('turunan.xlsx','sheet1')
u=input('start data ke:')
b=input('turunan ke:')
h=f(2,2)-f(1,2)
j=size(f);
m=j(1,1)
y=(f(u,2)-f(u,2))/h
for i=1:m
fd(i,1)=f(i);
end
for j=2:m
for i=1:m-j+1 ;
fd(i,j)=(fd(i+1,j-1)-fd(i,j-1));
end
end
fd
syms s
xterm=s;
k=diff(xterm,b);
fa=fd(1,2)*k;
for order=2:n
xterm=xterm*(s-(order-1));
a=diff(xterm,b);
k=subs(a,y);
fa2=fa+k*fd(u,order+1)/factorial(order);
fa=fa2;
end
hasil_turunan=fa/h
turunan gregory backward
clear
clc
n=input('derajat interpolasi:')
k=input('nilai yang dicari:')
f=xlsread('turunan.xlsx','sheet1')
u=input('start data ke:')
b=input('turunan ke:')
h=f(2,2)-f(1,2)
j=size(f);
m=j(1,1);
y=(k-f(u,2))/h
for i=1:m
fd(i,1)=f(i);
end
for j=2:m
for i=1:m-j+1 ;
fd(i,j)=(fd(i+1,j-1)-fd(i,j-1));
end
end
fd
syms s
xterm=s;
k=diff(xterm,b);
fa=fd(u-1,2)*k;
for order=2:n
xterm=xterm*(s+(order-1));
a=diff(xterm,b);
k=subs(a,y);
fa2=fa+k*fd(u-order,order+1)/factorial(order);
fa=fa2;
end
hasil_turunan=fa/h
euler
clear
clc
syms x1 y1
f=input('fungsi:')
x1=input('input awal x:')
b=input('nilai akhir x:')
y1=input('nilai awal y:')
h=input('selang jarak:')
n1=(b-x1)/h;
for n=1:n1
y1=y1+ h*subs(f);
x1=x1+h
end
y_euler=y1
x_akhir=x1
heun
clear
clc
syms x y
f=input('fungsi:')
x=input('harga x awal:')
b=input('harga x akhir:')
y=input('harga y awal:')
h=input('jarak langkah:')
n=(b-x)/h;
for n=1:n
y_r=y;
a=subs(f);
y=y+ h*subs(f);
x=x+h
d=subs(f);
y=y_r+ h/2*(a+d);
end
y_heun=y
x_akhir=x
deret taylor
clear
clc
syms x y
f=input('fungsi:')
ba=input('nilai x awal:')
at=input('nilai x akhir:')
h=input('step size:')
ya=input('nilai y awal:')
n1=(at-ba)/h;
nd=input('derajat intepolasi:')
tp(1)=f;
for n=1:nd-1
tp(n+1)=diff(tp(n))+diff(tp(n),y)*f;
end
tp
x=ba;
y=ya;
for np=1:n1
b=subs(tp(1));
c=y+b*h;
for n=2:nd
b=subs(tp(n));
c=c+b*h^(n)/factorial(n);
end
y=c;
x=x+h
end
y_taylor=y
x_akhir=x
Runge Kutta orde 1
clear
clc
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
a1=input('nilai a:')
n1=(b-x)/h;
for n=1:n1
k1=h*subs(f);
y=y+a1*k1;
x=x+h
end
y_rk1=y
x_akhir=x
Runge Kutta orde 2
clear
clc
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
disp('2 untuk heun,3 untuk raltson,7 untuk metode lainnya')
pe=input('metode yang mana mau dipilih?:')
n1=(b-x)/h;
if 0==mod(pe,2)
a1=1/2;
a2=1/2;
p1=1;
q11=1;
elseif 0==mod(pe,3)
a1=1/3;
a2=2/3;
p1=3/4;
q11=3/4;
else 0==mod(pe,7)
a1=input('nilai a1:')
a2=input('nilai a2:')
p1=input('nilai p1:')
q11=input('nilai q11:')
end
for n=1:n1
y_r=y;
k1=h*subs(f);
y=y_r+q11*k1;
x=x+p1*h;
k2=h*subs(f);
y=y_r+(a1*k1+a2*k2);
x=x-p1*h+h
end
y_rk2=y
x_akhir=x
Runge Kutta orde 3
clear
clc
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
n1=(b-x)/h;
for n=1:n1
y_r=y;
k1=h*subs(f);
x2=x+1/2*h;
x=x2;
y2=y+1/2*k1;
y=y2;
k2=h*subs(f);
x3=x-1/2*h+h;
x=x3
y3=y-1/2*k1-k1+2*k2;
y=y3;
k3=h*subs(f);
y=y_r+1/6*(k1+4*k2+k3);
end
y_rk3=y
x_akhir=x
Runge Kutta orde 4
clear
clc
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
n1=(b-x)/h;
for n=1:n1
y_r=y;
k1=h*subs(f);
x2=x+1/2*h;
x=x2;
y2=y+1/2*k1;
y=y2;
k2=h*subs(f);
x3=x-1/2*h+1/2*h;
x=x3;
y3=y-1/2*k1+1/2*k2;
y=y3;
k3=h*subs(f);
x4=x-1/2*h+h;
x=x4
y4=y-1/2*k2+k3;
y=y4;
k4=h*subs(f);
y=y_r+(k1+2*k2+2*k3+k4)/6;
end
y_rk4=y
x_akhir=x
ini yang pendek ya bill.,yang atas yang panjang
deret taylor modif
clear
clc
disp('deret taylor')
syms x y
f=input('fungsi:')
ba=input('nilai x awal:')
at=input('nilai x akhir:')
h=input('step size:')
ya=input('nilai y awal:')
n1=(at-ba)/h;
nd=input('derajat intepolasi:')
tp(1)=f;
for n=1:nd-1
tp(n+1)=diff(tp(n))+diff(tp(n),y)*f;
end
tp
x=ba;
y=ya;
no=0;
for np=1:n1
no=no+1;
no_t(np)=no;
b=subs(tp(1));
c=y+b*h;
for n=2:nd
b=subs(tp(n));
c=c+b*h^(n)/factorial(n);
end
y=c;
y_t(np)=y;
x=x+h;
x_t(np)=x;
end
disp(' no x y')
disp([no_t' x_t' y_t'])
clear
clc
disp('metode euler')
syms x y
f=input('fungsi:')
x=input('nilai awal x:')
b=input('nilai akhir x:')
y=input('nilai awal y:')
h=input('step size:')
n1=(b-x)/h;
no=0;
for n=1:n1
no=no+1;
no_t(n)=no;
y=y+h*subs(f);
y_t(n)=y;
x=x+h;
x_t(n)=x;
end
disp(' no x y')
disp([no_t' x_t' y_t'])
clear
clc
disp('metode heun')
syms x y
f=input('fungsi:')
x=input('harga x awal:')
b=input('harga x akhir:')
y=input('harga y awal:')
h=input('step size:')
nl=(b-x)/h;
no=0;
for n=1:nl
no=no+1;
no_t(n)=no;
y_r=y;
a=subs(f);
y_p=y_r+ h*subs(f);
y_p_t(n)=y_p;
y=y_p;
x=x+h;
x_t(n)=x;
d=subs(f);
y=y_r+ h/2*(a+d);
y_c_t(n)=y;
end
disp(' no yp x yc')
disp([no_t' y_p_t' x_t' y_c_t'])
clear
clc
disp('runge kutta orde 1')
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
a1=input('nilai a:')
n1=(b-x)/h;
no=0;
for n=1:n1
no=no+1;
no_t(n)=no;
k1=h*subs(f);
k1_t(n)=k1;
y=y+a1*k1;
y_t(n)=y;
x=x+h;
x_t(n)=x;
end
disp(' no k1 x y')
disp([no_t' k1_t' x_t' y_t'])
clear
clc
disp('runge kutta orde 2')
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
disp('t E R,contoh 1/2 untuk heun,2/3 untuk raltson')
t=input('nilai t:')
n1=(b-x)/h;
a1=1-t;
a2=t;
p1=1/(2*t);
q11=p1;
no=0;
for n=1:n1
no=no+1;
no_t(n)=no;
y_r=y;
k1=h*subs(f);
k1_t(n)=k1;
y=y_r+q11*k1;
x=x+p1*h;
k2=h*subs(f);
k2_t(n)=k2;
y=y_r+(a1*k1+a2*k2);
x=x-p1*h+h;
y_t(n)=y;
x_t(n)=x;
end
disp(' no k1 k2 x y')
disp([no_t' k1_t' k2_t' x_t' y_t'])
clear
clc
disp('runge kutta orde 3')
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
n1=(b-x)/h;
no=0;
for n=1:n1
no=no+1;
no_t(n)=no;
y_r=y;
x_r=x;
k1=h*subs(f);
k1_t(n)=k1;
x2=x_r+1/2*h;
x=x2;
y2=y_r+1/2*k1;
y=y2;
k2=h*subs(f);
k2_t(n)=k2;
x3=x_r+h;
x=x3;
x_t(n)=x;
y3=y_r-k1+2*k2;
y=y3;
k3=h*subs(f);
k3_t(n)=k3;
y=y_r+1/6*(k1+4*k2+k3);
y_t(n)=y;
end
disp(' no k1 k2 k3 x y')
disp([no_t' k1_t' k2_t' k3_t' x_t' y_t'])
clear
clc
disp('runge kutta orde 4')
syms x y
f=input('fungsi:')
x=input('nilai x awal:')
b=input('nilai x akhir:')
y=input('nilai y awal:')
h=input('step size:')
n1=(b-x)/h;
no=0;
for n=1:n1
no=no+1;
no_t(n)=no;
y_r=y;
x_r=x;
k1=h*subs(f);
k1_t(n)=k1;
x2=x_r+1/2*h;
x=x2;
y2=y_r+1/2*k1;
y=y2;
k2=h*subs(f);
k2_t(n)=k2;
x3=x_r+1/2*h;
x=x3;
y3=y_r+1/2*k2;
y=y3;
k3=h*subs(f);
k3_t(n)=k3;
x4=x_r+h;
x=x4;
x_t(n)=x4;
y4=y_r+k3;
y=y4;
k4=h*subs(f);
k4_t(n)=k4;
y=y_r+(k1+2*k2+2*k3+k4)/6;
y_t(n)=y;
end
disp(' no k1 k2 k3 k4 x y')
disp([ no_t' k1_t' k2_t' k3_t' k4_t' x_t' y_t'])