Tuesday 2 October 2012

Aritmatika Polinom (Representasi dengan array dan fungsi tambahan)


Masalah aritmatika polinom adalah membuat sekumpulan subrutin manipulasi terhadap polinom simbolis
(symbolic Polynomial).  Misalnya:

P1 = 6x8 + 8x7 + 5x5 + x3 + 15
P2 = 3x9 + 4x7 + 3x4 + 2x3 + 2x2 + 10
P3 = x2 + 5

Terdapat empat operasi aritmatika polinom dasar antara lain:

- Penambahan (P1 + P2 = 3x9 + 6x8 +  12x7 + 5x5 + 3x4 + 3x3 + 2x2 + 25)
 Pengurangan (P1 - P2 = - 3x9 + 6x8 +  4x7 + 5x- 3x4 - x3 - 2x2 + 5)
- Perkalian (P1 * P3 = 6x10 + 8x9 + 5x7 + x5 + 15x2 + 30x8 + 40x7 + 25x5 + 5x3 + 75 = 6x10 + 8x9 + 30x8+45x7 + 26x5 +  5x3 + 15x2 + 75)
- Turunan (P2' = 27x8 + 28x6 + 12x3 + 6x2 + 4x)

Representasi bilangan polinom dengan array :
int P1[10] = {0,6,8,0,5,0,1,0,0,15}; 
à index menunjukkan jumlah pangkat dan nilai array menunjukkan konstanta pada setiap pangkat polinom. Hal ini berlaku sama untuk P2 dan P3.
int P2[10] = {10,0,2,2,3,0,0,4,0,3};
à index menunjukkan jumlah pangkat dan nilai array menunjukkan konstanta pada setiap pangkat polinom. Hal ini berlaku sama untuk P2 dan P3.
int P3[10] = {5,0,1,0,0,0,0,0,0,0};
à index menunjukkan jumlah pangkat dan nilai array menunjukkan konstanta pada setiap pangkat polinom. Hal ini berlaku sama untuk P2 dan P3.

fungsi-fungsi  yang melakukan kelima operasi aritmatika di atas dengan parameter berupa persamaan :
1.       float kurang(int A[], int B[], int x)
{
         float hasil=0;
  for(int i=0; i<10; i++) 
        hasil+=(A[i]-B[i])*(float)pow(x,i);
        return hasil;
}
 --------------------------------------------------------------
2.       float kali(int A[], int B[], int x)
{
  float hasil=0;
         for(int i=0; i<10; i++) 
          for(int j=0; j<10; j++)
           hasil+=(A[i]*B[j])*(float)pow(x,(i+j));
         return hasil;
}
 --------------------------------------------------------------
3.       float turun(int A[], int x)
{
  float hasil=0; 
                 for(int i=1; i<10; i++) 
        hasil+=(A[i]*i)*(float)pow(x,i-1);
        return hasil;
}
------------------------------------------------------------
4. float tambah (int P1[], int P[2], int x)
{
   float hasil=1.0;
   for(int i=0; i<10; i++)
         hasil+=(P[i]+P2[i])*pow(x,i);
   return hasil;
}












6 comments:

Related Posts

Related Posts Plugin for WordPress, Blogger...