Artikel ini menjelaskan metode implementasi Java untuk menyelesaikan polinomial N-derajat tunggal. Bagikan untuk referensi Anda, sebagai berikut:
Proyek ini perlu membuat prediksi tren, menggunakan algoritma seperti pemasangan linier, pemasangan kurva 2-orde dan pemasangan eksponensial. Berbagai algoritma pemasangan linier ditulis ke dalam matriks dalam bentuk ini:
Di mana x adalah nilai pengambilan sampel koordinat horizontal, y adalah nilai pengambilan sampel koordinat vertikal, I adalah jumlah urutan titik pengambilan sampel, a adalah koefisien, N adalah jumlah titik pengambilan sampel, dan N adalah urutan, sehingga pemasangan linier akhirnya berubah menjadi masalah pemecahan sistem persamaan urutan yang lebih tinggi.
Saya tidak tahu apakah ada paket operasi Java Matrix yang mudah digunakan. Saya tidak pandai mengumpulkan informasi semacam ini, jadi saya harus mengambil aljabar linier yang telah saya letakkan selama bertahun-tahun dan menulis program Java sendiri untuk menggunakan algoritma matriks augmented untuk menyelesaikan persamaan tingkat tinggi. Cukup tempel kode:
Paket CommonalGorithm; PolynomialSoluter kelas publik {private double [] [] matriks; hasil ganda pribadi; pesanan int pribadi; POLYNOMIALSOLUTER PUBLIK () {} // Periksa panjang input dan hasilkan matriks augmented private boolean init (ganda [] [] matriks, ganda [] arrayb) {order = arrayb.length; if (matrixa.length! = order) return false; matriks = ganda baru [pesanan] [pesanan + 1]; untuk (int i = 0; i <order; i ++) {if (matrixa [i] .length! = order) return false; untuk (int j = 0; j <order; j ++) {matrix [i] [j] = matrixa [i] [j]; } matriks [i] [pesanan] = arrayb [i]; } result = Double [pesanan] baru; Kembali Benar; } public double [] getResult (double [] [] matrixa, double [] arrayb) {if (! init (matrixa, arrayb)) return null; // eliminasi gaussian-for (int i = 0; i <order; i ++) {// Jika istilah diagonal dari baris saat ini adalah 0, itu akan ditukar dengan baris dengan kolom yang sama dari baris berikut yang bukan 0 jika (! Switifzero (i)) mengembalikan null; // eliminasi untuk (int j = i+1; j <order; j ++) {if (matriks [j] [i] == 0) lanjutkan; factor ganda = matriks [j] [i] / matriks [i] [i]; untuk (int l = i; l <order+1; l ++) matriks [j] [l] = matriks [j] [l] - matriks [i] [l] * faktor; }} // Gaussian eliminasi-reverse-remote-remote perhitungan redundan untuk (int i = order-1; i> = 0; i--) {hasil [i] = matriks [i] [pesanan] / matriks [i] [i]; untuk (int j = i -1; j> -1; j--) matriks [j] [order] = matriks [j] [order] -hasil [i] * matriks [j] [i]; } hasil pengembalian; } private boolean swethifzero (int i) {if (matrix [i] [i] == 0) {int j = i + 1; // Temukan kolom yang tidak nol pada posisi yang sesuai saat (j <order && matrix [j] [i] == 0) j ++; // Jika semua posisi yang sesuai adalah 0, tidak ada solusi jika (j == order) mengembalikan false; lain switchrows (i, j); } return true; } private void switchrows (int i, int j) {double [] tmp = matrix [i]; matriks [i] = matriks [j]; matriks [j] = tmp; }}Selamat datang untuk berkomunikasi jika ada algoritma yang lebih baik atau paket operasi matriks yang sesuai.
PS: Berikut adalah beberapa alat perhitungan untuk Anda rujuk ke:
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.