You are on page 1of 17

NAMA : ZAHIDI PRATAMA

NIM : 200170263

MATA KULIAH : METODE NUMERIK

UNIT : A2

 SOAL NEWTON
 SCREENSHOOT CODING PROGRAM BERJALAN
 HASIL
 PROGRAM

#include <stdio.h>

#include <math.h>

#include <conio.h>

float Fungsi(float x);

float FungsiTurunan(float x);

main()

int n=0;

float x[100];

float e = 0.0005;

printf(" Program Newton Rapshon \n");

printf(" ====================== \n\n");

printf("Persamaan Fungsi f(x) : x*x + 3x - 10 = 0\n");

printf("\n");

printf("x(n+1) : x(n)-(f(xn)/f'(xn)) \n\n");

printf("Nilai e = 0.0005\n\n");

printf("Masukkan nilai x Awal : "); scanf("%f",&x[0]);

printf("=============================================================
=====\n");

printf("! n ! xn ! f(xn) ! f’(xn) ! f(xn)/f’(xn) ! x(n+) !\n");


printf("=============================================================
=====\n");

do

x[n+1] = x[n] - (Fungsi(x[n])/FungsiTurunan(x[n]));

printf("! %d ! %2.4f ! %2.4f ! %2.4f ! %2.4f ! %2.4f !\n", n, x[n],Fungsi(x[n]),


FungsiTurunan(x[n]),Fungsi(x[n])/FungsiTurunan(x[n]),x[n+1]);

n++;

}while(abs(x[n-1]-x[n-2])>e);

printf("! %d ! %2.4f ! %2.4f ! %2.4f ! %2.4f ! %2.4f !\n", n, x[n],Fungsi(x[n]),


FungsiTurunan(x[n]),Fungsi(x[n])/FungsiTurunan(x[n]),x[n+1]);

printf("=============================================================
=====\n\n");

printf("Jadi, Hasil yang memenuhi dari persamaan tersebut x = %2.4f", x[n]);

getch();

float Fungsi(float x)

return pow(x,2)+(3*x)-10;

float FungsiTurunan(float x)

return 2*x+3;

}
 SOAL SECANT
 SCREENSHOOT CODING PROGRAM BERJALAN
 HASIL
 PROGRAM

#include<stdio.h>;

#include<conio.h>;

#include<math.h>;

/*x0 = harga awal

x1 = harga kedua

tol = toleransi

max_iter = jumlah iterasi maksimum */

float x0, x1, tol;

int max_iter;

float f(float x)

return 4*x*x - x - 5;

int main ()

int it;

float epsilon, xb;

printf("METODE SECANT");

printf("\n\n\n");

printf("Soal\n");

printf("Akar Persamaan y=3*x*x - 2*x - 5 \n\n\n");


printf("Masukan Nilai a : "); scanf("%f",&x0);

printf("Masukan Nilai b : ");scanf("%f",&x1);

printf("Masukan Nilai Toleransi : ");scanf("%f",&tol);

printf("Jumlah Iterasi Maksimum : ");scanf("%d",&max_iter);

it = 0;

printf("\n");

printf(" I x f(x) epsilon\n");

printf("\n");

do

it = it +1;

xb = x1 - f(x1)*(x1 - x0) / (f(x1) - f(x0));

epsilon = fabs(xb-x0);

printf("%3d %8.5f %8.5f %8.2e\n",it, xb, f(xb), epsilon);

printf("\n");

x0 = x1;

x1 = xb;

while(it <= max_iter && epsilon > tol);

if(it <= max_iter)

printf("\n");

printf("Toleransi terpenuhi\n\n");

printf("Hasil akhir=%g\n",xb);
printf("\n");

else

printf("Toleransi tidak terpenuhi\n");

getch();

 SOAL DIRECT
 SCREENSHOOT CODING PROGRAM BERJALAN
 HASIL
 PROGRAM

#include <iostream>

#include <stdio.h>

#include <math.h>

double fungsi (double x){

double y;

y=pow(x,2)-exp(x)+8;

return y;

int main(){

double a,b,c,fa,fb,fc,t,e, atas,bawah;

int i=0,n;

puts("\t\t\t=====================");

puts("\t\t\tMETODE DIRECT");

puts("\t\t\t=====================\n");

printf("\t\t F(X) = x^2 - e^x + 8\n\n");

printf("Input batas bawah : "); fflush(stdin);

scanf("%lf",&b);

printf("Input batas atas : "); fflush(stdin);

scanf("%lf",&a);

printf("Input batas toleransi : "); fflush(stdin);

scanf("%lf",&t);

printf("Input maksimal iterasi : "); fflush(stdin);

scanf("%d",&n);
printf("\n\n");

fa = fungsi(a);

fb = fungsi(b);

if(fa*fb < 0)

printf("_____________________________________________________________________
______________________\n");

printf("i\t b\t\t a\t\t x\t\t f(a)\t\t f(b)\t\t f(x)\n");

printf("_____________________________________________________________________
______________________\n");

do

i++;

atas = (fa*b)-(fb*a);

bawah = fa-fb;

c = atas/bawah;

fc = fungsi (c);

e = fabs(fc);

printf("\n%d\t",i);

printf("%.10lf\t",b);

printf("%.10lf\t",a);
printf("%.10lf\t",c);

printf("%.10lf\t",fa);

printf("%.10lf\t",fb);

printf("%.10lf\t",fc);

if((fc*fb)<0)

a = c;

fa = fc;

else

b = c;

fb = fc;

}while (e>t&&i<=n);

printf("_____________________________________________________________________
______________________\n");

printf("\n\tSetelah iterasi sebanyak %d kali, ditemukan akar = %.10lf dengan errorsebesar


%E\n", i,c,e);

else
{

printf("Tidak ada akar pada rentang %lf - %lf", b,a);

return 0;

You might also like