Sekarang ane pgen posting program java regresi kurva terkecil baik
yang linier maupun non linier. Langsung aje ye yang linier ni
programnya.
import java.io.*;
import java.text.*;
class coba
{
public static void main(String[] args) throws Exception
{
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
DataInputStream dis = new DataInputStream(System.in);
double x[] = new double [50];
double y[] = new double [50];
double x_y[] = new double [50];
double x_x[] = new double [50];
double x_total=0;
double y_total=0;
double xy_total=0;
double xx_total=0;
double x_rata;
double y_rata;
double g;
double h;
double a;
double b;
int xy;
System.out.println("====================================================================");
System.out.println("=======Regresi Kurva Terkecil Linier================================");
System.out.println("====================================================================");
System.out.print("Masukkan Jumlah x dan y = ");
xy=Integer.parseInt(dis.readLine());
for(int i=1;i<=xy;i++)
{
System.out.print("x-"+i+" = ");
x[i]=Double.parseDouble(dis.readLine());
x_total=x_total+x[i];
}
for(int j=1;j<=xy;j++)
{
System.out.print("y-"+j+" = ");
y[j]=Double.parseDouble(dis.readLine());
y_total=y_total+y[j];
}
System.out.println("=========================================================================");
System.out.println("|\tx \t|\ty \t|\tx*y \t|\tx*x \t\t|");
System.out.println("=========================================================================");
for(int k=1;k<=xy;k++)
{
x_y[k]=x[k]*y[k];
x_x[k]=x[k]*x[k];
System.out.print("|\t"+x[k]+" \t|\t"+y[k]+" \t|\t"+x_y[k]+" \t|\t"+x_x[k]+" \t\t|");
System.out.println();
xy_total=xy_total+x_y[k];
xx_total=xx_total+x_x[k];
}
System.out.println("=========================================================================");
System.out.println("|\t"+x_total+" \t|\t"+y_total+" \t|\t"+xy_total+" \t|\t"+xx_total+" \t\t|");
System.out.println("=========================================================================");
System.out.println();
System.out.println("====================================================================");
System.out.println("Nilai Rerata Untuk x dan y");
x_rata=x_total/xy;
y_rata=y_total/xy;
System.out.println("x_rata = "+nf.format(x_rata));
System.out.println("y_rata = "+nf.format(y_rata));
System.out.println();
System.out.println("====================================================================");
System.out.println("Jika persamaan umum garis dinyatakan sebagai : y = a + bx");
g=((xy*xy_total)-(x_total*y_total));
h=((xy*xx_total)-(x_total*x_total));
b=g/h;
a=(y_rata-(b*x_rata));
System.out.println("Jadi b = "+nf.format(b));
System.out.println("Jadi a = "+nf.format(a));
System.out.println();
System.out.println("====================================================================");
System.out.println("Jadi persamaan garis yang mendekati rangkaian data tersebut adalah :");
System.out.println("y = "+nf.format(a)+" + "+nf.format(b)+"x");
System.out.println("====================================================================");
}
}
Dan Voila...Inilah Hasilnya!!!
Buat yang regresi kurva terkecil non linier, cekidot....
import java.io.*;
import java.text.*;
import java.math.*;
class coba
{
public static void main(String[] args) throws Exception
{
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
DataInputStream dis = new DataInputStream(System.in);
double x[] = new double [50];
double y[] = new double [50];
double q_log[] = new double [50];
double p_log[] = new double [50];
double q_p[] = new double [50];
double q_q[] = new double [50];
double x_total=0;
double y_total=0;
double q_log_total=0;
double p_log_total=0;
double qp_total=0;
double qq_total=0;
double y_rata;
double q_rata;
double p_rata;
double g;
double h;
double a;
double b;
double A;
double B;
int xy;
System.out.println("=========================================================================");
System.out.println("==============Regresi Kurva Terkecil Non Linier==========================");
System.out.println("=========================================================================");
System.out.print("Masukkan Jumlah x dan y = ");
xy=Integer.parseInt(dis.readLine());
for(int i=1;i<=xy;i++)
{
System.out.print("x-"+i+" = ");
x[i]=Double.parseDouble(dis.readLine());
x_total=x_total+x[i];
}
for(int j=1;j<=xy;j++)
{
System.out.print("y-"+j+" = ");
y[j]=Double.parseDouble(dis.readLine());
y_total=y_total+y[j];
}
System.out.println("=========================================================================");
System.out.println("| x \t| y \t| q(=log x) \t| p(=log y) \t| q*p \t | q*q \t\t|");
System.out.println("=========================================================================");
for(int k=1;k<=xy;k++)
{
q_log[k]=Math.log10(x[k]);
p_log[k]=Math.log10(y[k]);
q_p[k]=q_log[k]*p_log[k];
q_q[k]=q_log[k]*q_log[k];
System.out.print("| "+x[k]+" \t| "+y[k]+ "\t|
"+nf.format(q_log[k])+" \t| "+nf.format(p_log[k])+" \t|
"+nf.format(q_p[k])+" | "+nf.format(q_q[k])+" \t|");
System.out.println();
q_log_total=q_log_total+q_log[k];
p_log_total=p_log_total+p_log[k];
qp_total=qp_total+q_p[k];
qq_total=qq_total+q_q[k];
}
System.out.println("=========================================================================");
System.out.println("| "+nf.format(x_total)+" |
"+nf.format(y_total)+" | "+nf.format(q_log_total)+" \t|
"+nf.format(p_log_total)+" \t| "+nf.format(qp_total)+" |
"+nf.format(qq_total)+" \t|");
System.out.println("=========================================================================");
System.out.println();
System.out.println("=========================================================================");
System.out.println("Dari tabel tersebut dapat diperoleh beberapa parameter penting, seperti : ");
y_rata=y_total/xy;
q_rata=q_log_total/xy;
p_rata=p_log_total/xy;
System.out.println("y_rata = "+nf.format(y_rata));
System.out.println("q_rata = "+nf.format(q_rata));
System.out.println("p_rata = "+nf.format(p_rata));
System.out.println();
System.out.println("=========================================================================");
System.out.println("Sedangkan koefisien A dan B dihitung melalui persamaan (4) dan (6):");
g=((xy*qp_total)-(q_log_total*p_log_total));
h=((xy*qq_total)-(q_log_total*q_log_total));
b=g/h;
a=(p_rata-(b*q_rata));
A=Math.pow(10,a);
System.out.println("b = "+nf.format(b));
System.out.println("a = "+nf.format(a));
System.out.println("Karena A = Log a, Maka a = "+nf.format(A));
System.out.println("Karena B = b, Maka b = "+nf.format(b));
System.out.println();
System.out.println("=========================================================================");
}
}
Dan Voila...Inilah hasilnhya...!!!
Demikian Sekian dan trimakasih...Bila ada pertanyaan Monggo sedoyo
comment...Tapi ingat...blajar memahami lebih baik daripada hanya
mengcopy-paste saja...So...Pahamilah......
Tidak ada komentar:
Posting Komentar