23
İleri Yapı Statiği – Kiriş Teorisi Matlab - Giriş (İleri Yapı Statiği – II. Kısım) Doç. Dr. Özgür Özçelik Dokuz Eylül Üniversitesi, Müh. Fak., İnşaat Müh. Böl.

Matlab -Giriş (İleri YapıStatiği–II. Kısım)kisi.deu.edu.tr/ozgur.ozcelik/Adv Structural Analysis/IleriYapiStatigi... · İleri Yapı Statiği –Kiriş Teorisi Matlab -Giriş

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

İleri Yapı Statiği – Kiriş Teorisi

Matlab - Giriş(İleri Yapı Statiği – II. Kısım)

Doç. Dr. Özgür ÖzçelikDokuz Eylül Üniversitesi, Müh. Fak., İnşaat Müh. Böl.

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrisler Hakkında

Alman amatör matematikçi Albrecht Dürer’in (1471 - 1528) Rönesans Gravürü Melencolia I adlı eserinden, matematiksel sembollerle dolu br çalışması, içide bir de tabi ki matris var!

Magic Square (15-14)Bu matrisin bazı özelliklerini Matlab’le inceleyelim

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerin Girilmesi - 1

Matlab’e matrisler birçok yolla tanıtılabilir:

� Direkt elemanlar girilerek,

� Dışarıdan bir dosyadan yüklenerek,

� Built-in Matlab fonksiyonları kullanılarak,

� Kendi yazdığınız fonksiyonları kullanarak.

Dürer’in matrisinden başlarsak:

� Satır elemanları bir boşlukla yazılır,

� Noktalı virgüller satırların bittiği belirtilir,

� Tüm sayı listesi, [ ] parantezleri i içine alınır.

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerin Girilmesi - 2

� Matlab bunu komut olarak anlayacak ve aşağıdaki sonucu verecek:

� sum() komutu:

Sonucu herhangi bir değişkene atamazsanız Matlab bunu ans değişkenine atar, ans değişkeni her defasında değişir!

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerin Girilmesi - 3

�Transpoze komutu:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerin Girilmesi - 4

� diag() komutu - diyagonal:

� Anti-diyagonalin elde edilmesi: Matlab’de bunun için direkt bir komut yoktur, ancak aşağıdaki şekilde bu kolaylıkla bulunur.

Matrislerle işlemler son derece kolay!

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrisler Üzerinde İndislerle İşlemler - 1

� A(i,j): A matrisinin i. satırı ve j. kolonu anlamına gelmektedir.

A(4,2) = 15 (4. satır, 2. kolon elemanı)

� A matrisinin boyutlarından büyük bir elemana referans yaparsanız:

A(4,5) gibi, bu durumda çok sık karşılaşılan aşağıdaki hata durumuyla karşılaşırsınız,

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrisler Üzerinde İndislerle İşlemler - 2

� Tersi durumda A matrisinin boyutlarından büyük bir elemana yeni bir sayı atarsanız:

Şeklinde bir X matrisi elde edersiniz! Buna Matlab’de “dynamic sizing” özelliği denir.

İleri Yapı Statiği – Kiriş Teorisi

MatlabKolon Operatörü - 1

� Matlab’de kolon operatörü “:” en önemli operatörlerden biridir. Birden farklı formda kullanılır

� Eşit aralıklar istemezseniz:

ve bir başka örnek

İleri Yapı Statiği – Kiriş Teorisi

MatlabKolon Operatörü - 2

� Kolon op. içeren indisli ifadeler, matrisin belli bir bölümünü refere eder:

j kolonunun İlk k satırı gibi

� Bu toplama işlemini yapmanın daha iyi bir yolu vardır:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMagic Square

� Neden 4X4’lük Magic Square matrisinin toplamları her zaman 34 eder?

� Çünkü 1’den 16’ya kadar tam sayıları, toplamları birbirine eşit 4 gruba ayırırsanız, toplamları 34

etmek zorundadır.

İleri Yapı Statiği – Kiriş Teorisi

Matlabmagic() Fonksiyonu

� Matlab’de built-in magic() fonksiyonu vardır, ve hemen hemen istenilen her boyutta magic matrisler

türetir:

� Bu Dürer’in matrisiyle hemen hemen aynıdır. Tek fark, ortadaki iki kolonun yerleri değişiktir. Bunu

Dürer’in matrisiyle aynı yapmak için:

İleri Yapı Statiği – Kiriş Teorisi

Matlab3 Boyutlu Matrisler

� Matlab’de programlama işini kolaylaştıran üç boyutlu matris oluşturma özelliği vardır:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatris Türeten Fonksiyonlar

� Aşağıda Matlab’de istenilen boyutta ve özellikte matris türeten built-in fonksiyonlar

verilmiştir:

� zeros() fonksiyonu:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatris Türeten Fonksiyonlar

� ones() fonksiyonu:

� rand() ve randn() fonksiyonu:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerin Birleştirilmesi - Concatenation

� Küçük matrisleri birleştirerek, büyük matrisler oluşturma işlemine denir:

İleri Yapı Statiği – Kiriş Teorisi

MatlabMatrislerden Satır veya Kolon Silinmesi

� Matrislerden aşağıdaki gibi satır/kolon silinebilir:

İleri Yapı Statiği – Kiriş Teorisi

MatlabLineer Cebir - 1

� Toplama:

� Çarpma:

İleri Yapı Statiği – Kiriş Teorisi

MatlabLineer Cebir - 2

� Determinant:

Singular olduğunu göstermekte!

� Matris tersi:

veya X = A^-1

� Özdeğer hesabı:

İleri Yapı Statiği – Kiriş Teorisi

Matlabİki Boyutlu Vektörler (Arrays) - 1

� Aritmetik operasyonlar:

ÖNEMLİ!

Note: Backslash or matrix left division. If A is a square matrix, A\B is roughly the same as inv(A)*B, except it is computed in a different way. If A is an n-by-n matrix and B is a column vector with n components, or a matrix with several such columns, then X = A\B is the solution to the equation AX = B computed by Gaussian elimination. A warning message is displayed if A is badly scaled or nearly singular. See the reference page for mldivide for more information.

If A is an m-by-n matrix with m ~= n and B is a column vector with m components, or a matrix with several such columns, then X = A\B is the solution in the least squares sense to the under- or overdetermined system of equations AX = B. The effective rank, k, of A is determined from the QR decomposition with pivoting (see Algorithm for details). A solution X is computed that has at most k nonzero components per column. If k < n, this is usually not the same solution as pinv(A)*B, which is the leastsquares solution with the smallest norm .

İleri Yapı Statiği – Kiriş Teorisi

Matlabİki Boyutlu Vektörler (Arrays) - 2

� Eleman-eleman çarpma:

İleri Yapı Statiği – Kiriş Teorisi

Matlabİki Boyutlu Vektörler (Arrays) - 3

� Sayı tablosu oluşturma:

İleri Yapı Statiği – Kiriş Teorisi

MatlabFor – Next Döngüleri

Pseudo-Matlab ProgramıSistem Rijitlik Matrisinin Oluşturulması

for n = 1:Nelfor i = 1:6

for j = 1:6if ((ID(i,n) ~= 0) & ID(j,n) ~= 0) )

Kff(ID(i,n) , ID(j,n)) = Kff(ID(i,n) , ID(j,n)) + K_el(i,j,n);end

endend

end

Nested for Loops!

Bir sonraki derste “ID ARRAY” karvaramına bakacağız ve programlama işlemlerine gececeğiz…