Ok gan, masih tentang program penyelasaian Sistem Persamaan Non Linier (SPNL), kali ini saya akan memberikan metode terakhir yang saya buat untuk penyelesaian SPNL ini. Setelah pada postingan kemarin dengan metode Newton Raphson, pada postingan ini saya memberikan metode terbuka yang kedua yaitu metode Secant. Programnya bisa agan langsung download di sini, dan untuk codingnya langsung aja ni di bawah :
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
#include <stdlib.h>
main()
{
int n, k, p, a, b, z;
float koefisien[15];
int pangkat[15];
float x0, x1, x2, fx0, fx1, fx2;
char lagi;
atas:
clrscr();
cout<<" ===Sistem Persamaan Non Linier===\n";
cout<<" ==========Metode Secant==========\n\n";
cout<<"\n Input nilai pangkat tertinggi dari fungsi : ";
cin>>n;
cout<<"\n Input nilai koefisien !\n";
for (k=0; k<=n; k++)
{
cout<<" Koefisien X^"<<n-k<<" : ";
cin>>koefisien[k];
}
for (p=0; p<=n; p++)
{
pangkat[p]=n-p;
}
cout<<"\n\n F(X) = ";
for (a=0; a<=n; a++)
{
if (pangkat[a]==n && n!=1 && koefisien[a]>1)
{cout<<koefisien[a]<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]==1)
{cout<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]==-1)
{cout<<"-X^"<<pangkat[a];}
else if (pangkat[a]==n && n!=1 && koefisien[a]<-1)
{cout<<"-"<<-1*koefisien[a]<<"X^"<<pangkat[a];}
else if (pangkat[a]==n && n==1 && koefisien[a]>1)
{cout<<koefisien[a]<<"X";}
else if (pangkat[a]==n && n==1 && koefisien[a]==1)
{cout<<"X";}
else if (pangkat[a]==n && n==1 && koefisien[a]==-1)
{cout<<"-X";}
else if (pangkat[a]==n && n==1 && koefisien[a]<-1)
{cout<<"-"<<-1*koefisien[a]<<"X";}
else if (pangkat[a]==1 && koefisien[a]>1)
{cout<<" + "<<koefisien[a]<<"X";}
else if (pangkat[a]==1 && koefisien[a]==1)
{cout<<" + "<<"X";}
else if (pangkat[a]==1 && koefisien[a]==-1)
{cout<<" - X";}
else if (pangkat[a]==1 && koefisien[a]<-1)
{cout<<" - "<<-1*koefisien[a]<<"X";}
else if (pangkat[a]==0 && koefisien[a]>0)
{cout<<" + "<<koefisien[a]<<" = 0";}
else if (pangkat[a]==0 && koefisien[a]<0)
{cout<<" - "<<-1*koefisien[a]<<" = 0";}
else if (pangkat[a]==0 && koefisien[a]==0)
{cout<<" = 0";}
else if (pangkat[a]!=0 && koefisien[a]==0)
{cout<<"";}
else if (pangkat[a]>1 && pangkat[a]!=n && koefisien[a]==1)
{cout<<" + "<<"X^"<<pangkat[a];}
else if (pangkat[a]>1 && pangkat[a]!=n && koefisien[a]==-1)
{cout<<" - "<<"X^"<<pangkat[a];}
else if (pangkat[a]<n && koefisien[a]<0)
{cout<<" - "<<-1*koefisien[a]<<"X^"<<pangkat[a];}
else
{cout<<" + "<<koefisien[a]<<"X^"<<pangkat[a];}
}
cout<<"\n\n Input 2 nilai tebakan awal (X0 dan X1): \n";
cout<<" X0 : ";
cin>>x0;
cout<<" X1 : ";
cin>>x1;