Artikel ini menjelaskan fungsi pemasangan kurva N-order yang diimplementasikan oleh Java. Bagikan untuk referensi Anda, sebagai berikut:
Dalam artikel sebelumnya, Java mengimplementasikan metode untuk menyelesaikan polinomial N-orde tunggal. Setelah dapat menyelesaikan polinomial, perlu menggunakan kelas mana untuk memprediksi data di masa depan berdasarkan beberapa data titik sampel. Matriks yang dipasang telah diposting di artikel sebelumnya, jadi saya tidak akan membicarakannya di sini. Artikel ini terutama berfokus pada cara menghitung matriks koefisien berdasarkan titik sampel dan menghitung nilai titik yang diprediksi.
Prinsipnya sangat sederhana, dan formulanya juga ditemukan di artikel sebelumnya. Saya akan memposting kode di sini secara langsung.
Kelas commonAlgorithm.PolynomiaSoluter yang ditulis dalam artikel sebelumnya digunakan.
Paket CommonalGorithm; Impor CommonAlgorith.Polynomialsluter; impor java.lang.math; kelas publik LecreSquare {private double [] [] matrixa; private double [] arrayB; faktor ganda pribadi; pesanan int pribadi; public leastsquare () {} / * * Setelah instantiasi, sebelum perhitungan, Anda harus terlebih dahulu memasukkan parameter dan menghasilkan rumus arrayx sebagai koordinat sumbu x dari titik pengambilan sampel, dan mengaturnya dalam urutan pengambilan sampel * dalam urutan pemasangan. Saat menyesuaikan kurva orde tinggi dengan pesanan rendah, mungkin tidak akurat, tetapi terlalu tinggi akan menyebabkan perhitungan lambat*/ boolean publik generateFormula (ganda [] arrayx, ganda [] arrayy, int order) {if (arrayx.length! = Arrayy.length) mengembalikan false; this.order = order; int len = arrayx.length; // matriks x dan matriks y dalam matriks operasi pemasangan = ganda baru [pesanan + 1] [pesanan + 1]; arrayb = double baru [pesanan + 1]; // Hasilkan matriks y dan bagian dari daya <= urutan dalam matriks x untuk (int i = 0; i <order+1; i ++) {sumx ganda = 0; untuk (int j = 0; j <len; j ++) {double tmp = math.pow (arrayx [j], i); sumx += tmp; arrayb [i] += tmp * arrayy [j]; } untuk (int j = 0; j <= i; j ++) matrixa [j] [i - j] = sumx; } // Hasilkan bagian Power> Order dalam matriks x untuk (int i = order+1; i <= order * 2; i ++) {double sumx = 0; untuk (int j = 0; j <len; j ++) sumx+= math.pow (arrayx [j], i); untuk (int j = i - order; j <order+1; j ++) {matrixa [i - j] [j] = sumx; }} // instance polynomiasuluter dan menyelesaikan sistem persamaan untuk mendapatkan sekuens koefisien dari setiap faktor urutan polinomialsuluter soluter = polinomialsuluter baru (); faktor = soluter.getResult (matriks, arrayb); if (factors == null) mengembalikan false; lain mengembalikan true; } // Hasil menghitung koordinat yang ditentukan berdasarkan koordinat input dan koefisien faktor urutan public double caxulate (ganda x) {hasil ganda = faktor [0]; untuk (int i = 1; i <= order; i ++) hasil+= faktor [i] * math.pow (x, i); hasil pengembalian; }}PS: Berikut adalah beberapa alat perhitungan untuk Anda rujuk ke:
Kurva polinomial online dan alat pemasangan fungsi kurva:
http://tools.vevb.com/jisuanqi/create_fun/
Gambar alat grafik kurva polinomial/fungsi online:
http://tools.vevb.com/jisuanqi/fun_draw
Alat Perhitungan Solusi Online Unary Function (EQ):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Kalkulator ilmiah online use_advanced kalkulator online kalkulator:
http://tools.vevb.com/jisuanqi/jsqkeexue
Kalkulator Calculator_Standard Online:
http://tools.vevb.com/jisuanqi/jsq
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.