0% menganggap dokumen ini bermanfaat (0 suara)
273 tayangan13 halaman

Metode Horner untuk Evaluasi Polinom

Dokumen tersebut membahas metode Horner untuk evaluasi nilai suku banyak polinom. Metode ini menggunakan skema pembagian berulang untuk menghitung nilai suku banyak dari suatu polinom dengan koefisien yang diketahui untuk suatu nilai x tertentu. Algoritmanya dijelaskan melalui pseudocode dan contoh soal untuk mempermudah pemahaman.

Diunggah oleh

Widya Wulandari
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
273 tayangan13 halaman

Metode Horner untuk Evaluasi Polinom

Dokumen tersebut membahas metode Horner untuk evaluasi nilai suku banyak polinom. Metode ini menggunakan skema pembagian berulang untuk menghitung nilai suku banyak dari suatu polinom dengan koefisien yang diketahui untuk suatu nilai x tertentu. Algoritmanya dijelaskan melalui pseudocode dan contoh soal untuk mempermudah pemahaman.

Diunggah oleh

Widya Wulandari
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

TUGAS METODE NUMERIK

METODE HORNER UNTUK EVALUASI POLINOM

Disusun oleh :

Akmal (08011381621064)

Widya Dwi Wulandari (08011381621068)

Dosen pengajar :

Anita Desiani, [Link]., [Link]

FAKULTAS MIPA JURUSAN MATEMATIKA


UNIVERSITAS SRIWIJAYA
2017
1. Landasan Teori
a. Pengertian Suku Banyak
Suku banyak adalah suatu bentuk yang memuat variabel berpangkat. Suku banyak dalam x
berderajat n dinyatakan dengan :

Dengan syarat: n bagian dari bilangan cacah dan an, an 1, , a0 disebut koefisien-koefisien
suku banyak, a0 disebut suku tetap dan an 0.
Contoh :
1) 6 3 + 3 2 + 4 8 adalah suku banyak berderajat 3, dengan koefisien 3 adalah
6,koefisien 2 adalah 3, koefisien x adalah 4, dan suku tetapnya 8.
7 7
2) 2 2 + 5 + 4 adalah bukan suku banyak karena memuat pangkat negatif yaitu atau

7x1 dengan pangkat 1 bukan anggota bilangan cacah.


b. Nilai Suku Banyak
Suku banyak dengan derajat n dapat dinyatakan sebagai suatu fungsi f(x) berikut ini.
f(x) = anxn + an-1xn-1 + an-2xn-2 + ...... + a1x1 + a0 , di mana n bagian dari bilangan cacah dan an
0. Nilai f(x) tersebut merupakan nilai suku banyak. Untuk menentukan nilai suku banyak
dapat dilakukan dengan dua cara berikut :
(1) Cara substitusi
Misalkan suku banyak f(x) = ax3 + bx2 + cx +d. Jika nilai x diganti k, maka nilai suku
banyak f(x) untuk x = k adalah f(k) = ak3 + bk2 + ck +d.
(2) Cara Horner/bangun/skema/sintetik
Misalkan suku banyak f(x) = ax3 + bx2 + cx +d. Jika akan ditentukan nilai suku banyak
x = k, maka:
f(x) = ax3 + bx2 + cx + d
f(x) = (ax2 + bx + c)x + d
f(x) = ((ax + b)x + c)x + d
Sehingga f(k) = ((ak + b)k + c)k + d.
Bentuk tersebut dapat disajikan dalam bentuk skema berikut ini.

Agar lebih memahami tentang cara Horner, pelajarilah contoh soal berikut.
Contoh soal
Hitunglah nilai suku banyak untuk nilai x yang diberikan berikut ini.
1. f(x) = x3 + 2x2 + 3x -4 untuk x = 5
2. f(x) = 2x3 -3x2 + 9x +12 untuk x =
Penyelesaian :

Jadi nilai suku banyak f(x) untuk x = 5 adalah 186.

Jadi, nilai suku banyak f(x) untuk x = adalah 16.


INGAT !!!
Masing-masing koefisien x disusun dari pangkat terbesar sampai terkecil
(perpangkatan x yang tidak ada, ditulis 0).
Tanda panah pada skema berarti mengalikan dengan k, kemudian dijumlahkan dengan
koefisien yang berada di atasnya.
2. Program

#include<iostream>
#include<windows.h>
#include<conio.h>
using namespace std;
int main()
{
int a[20]={0};//koefisien dari suku banyak
int b[20]={0}; // hasil dari pembagian horner
int d[20]={0};
int i;//perulangan
int n; //derajat polinom
int o; // nilai x yang diketahui disoal
int p; //nilai suku banyak
string lanjut; // variabel untuk memilih melanjutkan kembali program / berhenti
kembali:
system("cls");
cout<<endl<<endl<<endl<<endl;
cout<<" AKAR-AKAR POLINOM "<<endl;
cout<<METODE HORNER UNTUK EVALUASI POLINOM "<<endl<<endl<<endl;
cout<<" ======= Disusun Oleh ======= "<<endl<<endl;
cout<<" Akmal "<<endl;
cout<<" Widya Dwi Wulandari "<<endl<<endl<<endl;
cout<<" ======== Dosen Pengajar ======== "<<endl;
cout<< Anita Desiani, [Link]., [Link] "<<endl<<endl<<endl;
cout<<" JURUSAN MATEMATIKA "<<endl;
cout<<FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM"<<endl;
cout<<" UNIVERSITAS SRIWIJAYA "<<endl;
cout<<" 2017 "<<endl;
getch ();
system("cls");
aku:
cout<<" - Metode horner untuk evaluasi polinom - "<<endl<<endl;
cout<<"\n Input nilai pangkat tertinggi dari fungsi : ";cin>>n; // masukkan nilai untuk
menentukan derajatnya
if(n>20 || n<= 0)
{ system ("cls");
Beep(987,800); // untuk mengeluarkan bunyi bip yg pertama (seperti peringatan)
Beep(988,1500); // untuk mengeluarkan bunyi bip yg kedua
system ("color 47"); // untuk mengubah backgroud menjadi warna merah
cout<<"\n XXX PROGRAM ERROR XXX"<<endl<<endl;
cout<<"NOTE !! (Program hanya bisa menginputkan nilai sampai derajat ke
20)"<<endl<<endl<endl<<endl;
cout<<"Apakah anda ingin mengulang program (ketik 'ingin' jika ulang )."<<endl;
cin>>lanjut; //ketik 'ingin' jika ingin mengulang kembali program
system ("color 0F"); // untuk mengubah background menjadi warna hitam
if(lanjut=="ingin")
goto kembali;
return 0;}
cout<<"\n Input nilai koefisien !\n";for(i=n;i>=0;i--)
{cout<<" Koefisien X^"<<i<<" : ";cin>>a[i];} // masukkan masing2 koefisien
dari suku banyak sampai ke-n
cout<<"\n\nP(x) = ";
for(i=n;i>=0;i--)
{if(i==0)
{cout<<" + ("<<a[i]<<") = 0";break;} // pada perulangan i=0 maka akan kita
keluarkan nilai dari a[0] = 0
cout<<"("<<a[i]<<")X"; // keluarkan nilai a[i](koefisien) yang telah diinputkan
tadi dgn perulangan sebanyak n
if (i==1)
continue;
cout<<"^"<<i<<" + ";}
cout<<endl;
cout<<"Masukkan nilai x = ";cin>>o; // masukkan nilai x yang telah diketahui
system ("cls"); //untuk menghapus layar sebelumnya agar terlihat lebih rapi
cout<<"Tentukan nilai suku banyak dari P(x) = ";
for(i=n;i>=0;i--)
{if(i==0)
{cout<<" + ("<<a[i]<<") = 0";break;}
cout<<"("<<a[i]<<")x";
if (i==1)
continue;
cout<<"^"<<i<<" + ";}
cout<<" untuk x = "<<o<<" beserta polinom sisanya."<<endl<<endl;
cout<<"Penyelesaian : ";
cout<<endl;
cout<<endl<<endl<<endl;
cout<<"x = "<<o<<" | ";
for(i=n;i>=0;i--)
cout<<a[i]<<" ";
cout<<endl;
cout<<" |\n";
cout<<" | ";
b[n]=a[n]*1;
for(i=n-1;i>=0;i--)
{
d[i]=o*b[i+1];
if(i==0)
p=a[i]+d[i];
b[i]=a[i]+d[i];
cout<<d[i]<<" ";
}
cout<<endl;
for(i=n;i>=0;i--)
{
cout<<"_________"; }
cout<<" + "; cout<<endl;
cout<<" | ";
for(i=n;i>=0;i--)
cout<<b[i]<<" ";
cout<<endl<<endl;
cout<<"Nilai dari P(x) untuk x = "<<o<<" memiliki nilai sebesar "<<p<<endl; //
cout<<"Dan menghasilkan polinom sisa ";
for(i=n;i>=0;i--)
{
if(i==1)
{cout<<" + "<<b[i];break;}
cout<<"("<<b[i]<<")X";
if (i==2)
continue;
cout<<"^"<<i-1<<" + ";
}
cout<<endl<<endl;
cout<<" Apakah anda ingin mengulanginya lagi? ketik 'ya' jika ingin. "<<endl;
cin>>lanjut;
if (lanjut=="ya")
{system ("cls");
goto aku;}
else
{ system ("cls");
cout<<"Terima kasih atas kontribusi anda ^_^ sampai berjumpa lagi"<<endl;}
}
3. Pseudo Code

Algoritma_mencari_nilai_suku_banyak
Deklarasi
a[20]={0} : integer;//koefisien dari suku banyak
b[20]={0} : integer; // hasil dari pembagian horner
d[20]={0} : integer;
i : integer;//perulangan
n : integer; //derajat polinom
o : integer; // nilai x yang diketahui disoal
p : integer; //nilai suku banyak
lanjut : string; // variabel untuk memilih melanjutkan kembali program / berhenti
Deskripsi
begin
aku:
write( - Metode horner untuk evaluasi polinom - )
write(Input nilai pangkat tertinggi dari fungsi : )
read(n); // masukkan nilai untuk menentukan derajatnya
if (n>20 || n<= 0) then
system ("cls");
Beep(987,800); // untuk mengeluarkan bunyi bip yg pertama (seperti peringatan)
Beep(988,1500); // untuk mengeluarkan bunyi bip yg kedua
system ("color 47"); // untuk mengubah backgroud menjadi warna merah
write( XXX PROGRAM ERROR XXX )
write( NOTE !! (Program hanya bisa menginputkan nilai sampai derajat ke 20) )
write( Apakah anda ingin mengulang program (ketik 'ingin' jika ulang ))
read(lanjut) //ketik 'ingin' jika ingin mengulang kembali program
system ("color 0F"); // untuk mengubah background menjadi warna hitam
if (lanjut=="ingin") then
goto kembali;
return 0;
end if
write(Input nilai koefisien !)
for(i=n to >= 0)
write(Koefisien X^ , i)
read(a[i])// masukkan masing2 koefisien dari suku banyak sampai ke-n
end for
write (P(x) = )
for(i=n to >= 0)
if(i==0) then
write(+ (, a[i] ,) = 0)// pada perulangan i=0 maka akan kita keluarkan nilai
dari a[0] = 0
break;
end if
write((, a[i], )x) // keluarkan nilai a[i](koefisien) yang telah diinputkan tadi dgn
perulangan sebanyak n
if (i==1) then
continue;
write (^ , i ,+ )
end for write (Masukkan nilai x =)
read(o) // masukkan nilai x yang telah diketahui
system ("cls"); //untuk menghapus layar sebelumnya agar terlihat lebih rapi
write (Tentukan nilai suku banyak dari P(x) =)
for(i=n to >= 0)
if(i==0) then
write(+ (, a[i] ,) = 0)// pada perulangan i=0 maka akan kita keluarkan nilai
dari a[0] = 0
break;
end if
write((, a[i], )x)// keluarkan nilai a[i](koefisien) yang telah diinputkan tadi dgn
perulangan sebanyak n
if (i==1) then
continue;
write (^ , i ,+ )
end for
write( untuk x =, o ,beserta polinom sisanya.)
write(Penyelesaian :)
write(x =, o, |)
for(i=n to >= 0)
write(a[i], " ")
write(| )
write(| )
b[n] a[n]*1;
for(i=n to >= 0)
d[i] o*b[i+1];
if(i==0) then
p a[i]+d[i];
b[i] a[i]+d[i];
write (d[i]," ")
end for
for(i=n to >= 0)
write(_________)
end for
write(+)
write (| )
for(i=n to >= 0)
write(b[i], " ")
write(Nilai dari P(x) untuk x =, o, memiliki nilai sebesar, p) //
write(Dan menghasilkan polinom sisa )
for(i=n to >= 0)
if(i==1) then
write(+,b[i])
break;
end if
write((, b[i],)x)
if (i==2) then
continue;
write(^, i-1, + )
end for
write ( Apakah anda ingin mengulanginya lagi? ketik 'ya' jika ingin.)
read(lanjut) if (lanjut=="ya") then
system ("cls");
goto aku;
end if
else
system ("cls");
write(Terima kasih atas kontribusi anda ^_^ sampai berjumpa lagi)
end if
end
4. Hasil Program

Anda mungkin juga menyukai