You are on page 1of 5

Listing Progam Deferensiasi Tingkat Tinggi

1. Dengan Metode Selisih Maju


#include <stdio.h>
#include <math.h>
float F (float x)
{
return exp(-x)*sin(2*x)+1;
}
float FT (float x, float h)
{
return (F(x+2*h)-2*F(x+h)+F(x))/(h*h);
}
float FEksak (float x)
{
return exp(-x)*(-3*sin(2*x)-4*cos(2*x));
}
main()
{
float a, b, h, x, error, jml_error=0, t_error, fe, ft;
int i=0;
printf("Masukkan batas bawah (a) : ");
scanf("%f",&a);
printf("Masukkan batas atas (b) : ");
scanf("%f",&b);
printf("Masukkan nilai step (h) : ");
scanf("%f",&h);
printf("\nx
F(x)
for(x=a;x<=b;x=x+h)
{
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
jml_error=jml_error+error;
i++;
}
x=b;
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
%f
jml_error=jml_error+error;
i++;

FT

%f

%f

%f

\n",x,F(x),ft,fe,error);

t_error=jml_error/i;
printf("Toleransi error = %f\n",t_error);
}

FT Eksak

Error\n");

",x,F(x),ft,fe,error);

2. Dengan Metode Selisih Tengahan


#include <stdio.h>
#include <math.h>
float F (float x)
{
return exp(-x)*sin(2*x)+1;
}
float FT (float x, float h)
{
return (F(x-2*h)-2*F(x)+F(x+2*h))/(4*(h*h));
}
float FEksak (float x)
{
return exp(-x)*(-3*sin(2*x)-4*cos(2*x));
}
main()
{
float a, b, h, x, error, jml_error=0, t_error, fe, ft;
int i=0;
printf("Masukkan batas bawah (a) : ");
scanf("%f",&a);
printf("Masukkan batas atas (b) : ");
scanf("%f",&b);
printf("Masukkan nilai step (h) : ");
scanf("%f",&h);
printf("\nx
F(x)
for(x=a;x<=b;x=x+h)
{
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
jml_error=jml_error+error;
i++;
}
x=b;
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
%f
jml_error=jml_error+error;
i++;

FT

%f

%f

%f

\n",x,F(x),ft,fe,error);

t_error=jml_error/i;
printf("Toleransi error = %f\n",t_error);
}

FT Eksak

Error\n");

",x,F(x),ft,fe,error);

3. Dengan Metode Selisih Mundur


#include <stdio.h>
#include <math.h>
float F (float x)
{
return exp(-x)*sin(2*x)+1;
}
float FT (float x, float h)
{
return (F(x)-2*F(x-h)+F(x-2*h))/(h*h);
}
float FEksak (float x)
{
return exp(-x)*(-3*sin(2*x)-4*cos(2*x));
}
main()
{
float a, b, h, x, error, jml_error=0, t_error, fe, ft;
int i=0;
printf("Masukkan batas bawah (a) : ");
scanf("%f",&a);
printf("Masukkan batas atas (a) : ");
scanf("%f",&b);
printf("Masukkan nilai step (h) : ");
scanf("%f",&h);
printf("\nx
F(x)
for(x=a;x<=b;x=x+h)
{
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
jml_error=jml_error+error;
i++;
}
x=b;
fe=FEksak(x);
ft=FT(x,h);
error=fabs(fe-ft);
printf("%f
%f
%f
%f
jml_error=jml_error+error;
i++;

FT

%f

%f

%f

\n",x,F(x),ft,fe,error);

t_error=jml_error/i;
printf("Toleransi error = %f\n",t_error);
}

FT Eksak

Error\n");

",x,F(x),ft,fe,error);

Contoh Output
1. Metode Selisih Maju
Masukkan batas bawah (a) : 0
Masukkan batas atas (b) : 1
Masukkan nilai step (h) : 0.1
x
F(x)
FT
0.000000
1.000000
0.100000
1.179763
0.200000
1.318829
0.300000
1.418297
0.400000
1.480858
0.500000
1.510378
0.600000
1.511514
0.700000
1.489360
0.800000
1.449137
0.900000
1.395937
1.000000
1.334512

FT Eksak
Error
-4.069805
-4.000000
-3.959666
-4.086494
-3.690795
-3.972890
-3.304085
-3.700587
-2.838377
-3.310640
-2.328997
-2.841974
-1.806849
-2.330006
-1.297797
-1.805692
-0.822460
-1.294931
-0.396168
-0.818316
-0.029271
-0.391168

0.069805
0.126827
0.282095
0.396502
0.472264
0.512977
0.523157
0.507895
0.472471
0.422148
0.361897

Toleransi error = 0.377094


Press any key to continue
2. Metode Selisih Tengahan
Masukkan batas bawah (a) : 0
Masukkan batas atas (b) : 1
Masukkan nilai step (h) : 0.1
x
F(x)
FT
0.000000
1.000000
0.100000
1.179763
0.200000
1.318829
0.300000
1.418297
0.400000
1.480858
0.500000
1.510378
0.600000
1.511514
0.700000
1.489360
0.800000
1.449137
0.900000
1.395937
1.000000
1.334512
Toleransi error = 0.030510
Press any key to continue

FT Eksak
Error
-3.920198
-4.000000
-4.019826
-4.086494
-3.919984
-3.972890
-3.661339
-3.700587
-3.284339
-3.310640
-2.827465
-2.841974
-2.325805
-2.330006
-1.810121
-1.805692
-1.306227
-1.294931
-0.834721
-0.818316
-0.411018
-0.391168

0.079802
0.066668
0.052907
0.039248
0.026301
0.014508
0.004201
0.004429
0.011296
0.016405
0.019850

3. Dengan Metode Selisih Mundur


Masukkan batas bawah : 0
Masukkan batas atas : 1
Masukkan nilai step (h) : 0.1
x
F(x)
FT
0.000000
1.000000
0.100000
1.179763
0.200000
1.318829
0.300000
1.418297
0.400000
1.480858
0.500000
1.510378
0.600000
1.511514
0.700000
1.489360
0.800000
1.449137
0.900000
1.395937
1.000000
1.334512
Toleransi error = 0.373470
Press any key to continue

FT Eksak
Error
-3.650950
-4.000000
-3.980013
-4.086494
-4.069805
-3.972890
-3.959677
-3.700587
-3.690795
-3.310640
-3.304085
-2.841974
-2.838375
-2.330006
-2.328996
-1.805692
-1.806849
-1.294931
-1.297799
-0.818316
-0.822457
-0.391168

0.349050
0.106481
0.096915
0.259090
0.380155
0.462111
0.508369
0.523304
0.511918
0.479483
0.431289

You might also like