Matrisin Tersini Bulma

28 Mart 2011 by B.Selçuk ÖKSÜZ
Leave a reply »
WP Greet Box icon
Merhaba! Selcukoksuz.com adresine hoş geldiniz. Eğer yeni iseniz ve içeriğimizi takip etmek isterseniz RSS Abonesi Olabilirsiniz.
Mailinize onay mesajı gönderilecektir. Cevaplamayı unutmayınız.

Matrisin tersini bulmak iki boyutlu matrisler için kolay olabilir ama iş üç ve üzeri boyutlara çıkınca algoritma biraz daha kompleks bir hal alır. Bu uygulamamız da bir matrisin tersinin nasıl alındığı konusun üzerine bir uygulama yapacağız. Bu algoritma ile istediğiniz her algoritmada invers işlemini yapabilirsiniz. Ben burada biraz maliyetli bir uygulama yaptım. Tek tek her elemanı matematiksel işleme sokarak değerini hesapladım ve yerine yazdırdım.

Uygulamadan önce biraz konuyu açıklayalım isterseniz;

3’e 3 lük bir matrisin tersini hesaplarken yukarıda ki matematiksel işlemler yapılır. Aşağıda ki programımız da bu mantık ile çalışmaktadır.

Uygulama: 3’e 3 lük hesaplama

Amaç: Scanner ile klavyeden değer alma, tek boyutlu diziler

Dil:

Program: NetBeans

Kodlar:

import java.util.Scanner;//Klavyeden Değer alabilmek için
public class MatrixInvers {
    public static void main(String[] args)
    {
        int[][] matrix = new int[3][3];
        Scanner inputUser = new Scanner(System.in);
        System.out.println("3e 3lük matrix için değerleri igiriniz.");
        for(int row=0; row<3; row++)
        {
            for(int column=0; column<3; column++)
            {
                System.out.print("A"+(row+1)+(column+1)+" = ");
                matrix[row][column] = inputUser.nextInt();
            }
        }

        System.out.println("3e 3lük matrix imiz.");
        for(int row=0; row<3; row++)
        {
            for(int column=0; column<3; column++)
            {
                System.out.printf("%3d",matrix[row][column]);
            }
            System.out.print("\n");
        }

        System.out.println("Matrix in tersi hesaplanıyor.");
        int matrixInvers[][] = {{matrix[1][1]*matrix[2][2]-matrix[1][2]*matrix[2][1],matrix[0][2]*matrix[2][1]-matrix[0][1]*matrix[2][2],matrix[0][1]*matrix[1][2]-matrix[0][2]*matrix[1][1]},
                                {matrix[1][2]*matrix[2][0]-matrix[1][0]*matrix[2][2],matrix[0][0]*matrix[2][2]-matrix[0][2]*matrix[2][0],matrix[0][2]*matrix[1][0]-matrix[0][0]*matrix[1][2]},
                                {matrix[1][0]*matrix[2][1]-matrix[1][1]*matrix[2][0],matrix[0][2]*matrix[2][0]-matrix[0][0]*matrix[2][1],matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0]}};

        System.out.println("3e 3lük matrix in inversi.");
        for(int row=0; row<3; row++)
        {
            for(int column=0; column<3; column++)
            {
                System.out.printf("%3d",matrixInvers[row][column]);
            }
            System.out.print("\n");
        }
    }
}

Yukarıda ki programın ekran çıktısı aşağıda ki gibidir;

3e 3lük matrix için değerleri igiriniz.
A11 = 1
A12 = 2
A13 = 3
A21 = 4
A22 = 5
A23 = 6
A31 = 7
A32 = 8
A33 = 9
3e 3lük matrix imiz.
  1  2  3
  4  5  6
  7  8  9
Matrix in tersi hesaplanıyor.
3e 3lük matrix in inversi.
 -3  6 -3
  6-12  6
 -3 13 -3

Yukarıda ki mantıktan daha zekice ve kullanışlı bir algoritmanız yada öneriniz varsa merakla beklemekteyiz. İyi çalışmalar dilerim.

Yazar Hakkında

Bilgisayarla yaşamayı bir tarz olarak benimsemiş, teknoloji ile tamamen içli dışlı bir; web tasarımcı, yazılımcı, donanımcı, blog yazarı ve bilgisayar mühendisidir.
B.Selçuk ÖKSÜZ
B.Selçuk ÖKSÜZ kullanıcısının tüm yazıları.

Arama Sorguları

  • matrisin tersini bulma (58)
  • matrisin tersini alma (49)
  • matrisin tersi (18)
  • bir matrisin tersi (17)
  • matris tersi alma (13)
  • matrisin tersi nasıl alınır (13)
  • bir matrisin tersini bulma (12)
  • java matris (12)
  • matris tersi bulma (11)
  • 3 3 matrisin tersi (11)
Advertisement

Bu Yazıyı Beğendiniz Mi?

5

5 comments

  1. fulden dedi ki:

    arkadaşlar biri bana bu konuda yardımcı olabilir mi ?
    3 boyutlu yapmam gerekiyor.

  2. mertcan dedi ki:

    http://math.uww.edu/~mcfarlat/inverse.htm
    bu linkteki gibi bir matris tersi alma programini denediniz mi hic?

  3. kemal dedi ki:

    selamlar
    bende bir odevim icin matrisin tersini alan bir kod ariyordum ve kodunuzu gordum ama sanirim matrisin tersini hesaplayan ve en ustte verdiğiniz fonksiyonda bir yanlislik var! Matrisin determinantını aldiktan sonra o cıkarma islemlerini yapip, yaptiginiz her cikarma isleminin sonucunu matrisin determinantina bolmeniz gerekiyor. Çünkü daha onceden tersi alinmis 3×3 bir matrisi kodunuzda denedim ve cok farkli sonuclar cikti.

  4. coliqjojuq dedi ki:

    TES. kurler duzelttım cok ısıme yaradı 🙂

  5. coliqjojuq dedi ki:

    Lütfen yardımcı olumusunuz 3 e3 luk matrısın tersını alan proğram yazmam lazım ama hıc anlamıyorum verdıgını9z kodu denedım ama calstıramadım bı yardımcı olursanız sevınırım

Bir Cevap Yazın

Sizin Yorumunuz Nedir?

%d blogcu bunu beğendi:
Gizlilik Hakları