Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- /**
- * Zgjedh determinanta te rendit n me ane te minoreve
- *
- * @author Kushtrim
- * @version 1.01
- */
- public class Determinanta
- // d.length -rreshtat
- // d[0].length - kolonat
- {
- public static void main(String args[])
- {
- Determinanta llogarit = new Determinanta();
- // e marrim determinanten nga perdoruesi, e jo hard-code
- double[][] det = llogarit.merrDeterminanten();
- /* double[][] det = { {25,24,03,70, 5},
- { 4, 6, 8, 6, 8},
- { 7, 4, 6, 4, 8},
- { 6, 8, 4, 2, 3},
- { 1, 5, 9, 5, 6}}; */
- // double[][] det2 = { {84,88,07},
- // {03,48,06 } ,
- // {05,02,08}};
- System.out.println( llogarit.llogaritDeterminanten(det));
- }
- public double llogaritDeterminanten( double[][] d )
- {
- double answer=0;
- // nese eshte e shkalles 2, e llogaritim lehte
- if( d.length == 2 )
- {
- answer = d[0][0] * d[1][1] - d[1][0] * d[0][1];
- }
- else
- { //perndryshe vazhdo me ndarjen e matrice me minore
- for ( int i = 0 ; i < d.length;i++)
- {
- // e krijojme nje matrice te re katrore, per 1 me te vogel
- double[][] w = new double[d.length-1][d.length-1];
- // llogaritjen po e bejme sipas kolones 1
- int kalo=0;
- for ( int j=0; j< d.length -1 ; j++)
- {
- if ( j == i )
- { // nese jemi te rreshti qe duhet kaluar, kalo =1
- kalo=1;
- }
- for ( int k = 0 ; k< d.length -1; k++)
- {
- // pasi jemi te rreshti qe duhet kaluar, k eshte nje, pra fillojme te kopjojme nga
- // rreshti i ardhshem , j+kalo
- // kopjojme nga shtylla k+1, pasi kolonen 1 gjithmone e kalojme, se po bejme llogaritjen me
- // minore sipas asaj kolone
- w[j][k] = d[j+kalo][k+1];
- }
- }
- // Math.pow e perdorim per ta llogaritur shenjen
- // pergjigjes ia shtojme elementin d[i][0], here rezulatati i determinantes perkatese te shkalles per nje me te vogel
- answer += Math.pow( -1 , i+2 ) * d[i][0] * llogaritDeterminanten(w);
- }
- }
- return answer;
- }
- private double[][] merrDeterminanten()
- {
- int shkalla = Integer.parseInt(JOptionPane.showInputDialog("Çfarë shkalle ka determinanta"));
- double[][] det = new double[shkalla][shkalla];
- for (int i = 0 ; i<shkalla;i++ )
- {
- for (int j = 0; j< shkalla; j++)
- {
- det[i][j]= Integer.parseInt(JOptionPane.showInputDialog("Shkruani elementin e rreshtit " + (i+1) + " dhe shtylles " + (j+1)));
- }
- }
- return det;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement