Matematikçilere Yardımcı Olmak: MATLAB'a Genel Bir Bakış. MATLAB'ın kısa özellikleri

  • 21.07.2019

Tanıtım

MATLAB(İngilizce'nin kısaltması.Matris Laboratuvarı ) - teknik hesaplama problemlerini çözmek için uygulamalı programlar paketi ve bu pakette kullanılan aynı adı taşıyan programlama dili. MATLAB ® 1.000.000'den fazla mühendis ve bilim insanı tarafından kullanılan bu sistem, çoğu modern işletim sisteminde çalışır.

MATLAB bir programlama dili olarak geliştirildi Cleve Mowler tarafından sonunda 1970'ler dekan olduğu yıllar Fakülte bilgisayar bilimler New Mexico Üniversitesi... Geliştirmenin amacı, fakülte öğrencilerine yazılım kütüphanelerini kullanma fırsatı vermekti. Linpack ve EISPACK ders çalışmaya gerek kalmadan Fortran... Kısa süre sonra yeni dil diğer üniversiteler arasında yayıldı ve uygulamalı matematik alanında çalışan bilim adamları tarafından büyük ilgi gördü. Sürümü hala internette bulabilirsiniz. 1982 yılı tarafından dağıtılan Fortran'da yazılmış açık kaynak... Mühendis John Küçük ( İngilizce John n. (Jack) Biraz) Cleve Mowler'ın ziyareti sırasında bu dille tanıştı. Stanford Üniversitesi v 1983 yılı... Yeni dilin büyük bir ticari potansiyele sahip olduğunu fark ederek, Cleve Mowler ve Steve Bungert ( İngilizce Steve Bangert). Birlikte MATLAB'ı yeniden yazdılar. C ve kuruldu 1984 şirket Matematik İşleri daha fazla gelişme için. C'de yeniden yazılan bu kütüphaneler uzun zamandır JACKPAC olarak biliniyor. Başlangıçta kontrol sistemi tasarımı (John Little'ın ana uzmanlık alanı) için tasarlanan MATLAB, diğer birçok bilim ve mühendislik alanında hızla popülerlik kazandı. Ayrıca eğitimde, özellikle öğretim için yaygın olarak kullanılmıştır. lineer Cebir ve Sayısal yöntemler.

MATLAB, matris tabanlı veri yapıları, geniş bir işlev yelpazesi, entegre bir geliştirme ortamı, nesne yönelimli yetenekler ve diğer programlama dillerinde yazılmış programlara arayüzler içeren yüksek düzeyde yorumlanmış bir programlama dilidir.

MATLAB'da yazılmış iki tür program vardır - işlevler ve betikler. Fonksiyonlar, ara hesaplama sonuçlarını ve değişkenleri depolamak için kendi çalışma alanlarının yanı sıra girdi ve çıktı argümanlarına sahiptir. Komut dosyaları ortak bir çalışma alanını paylaşır. Hem komut dosyaları hem de işlevler makine koduna derlenmez ve metin dosyaları olarak kaydedilir.

MATLAB dilinin ana özelliği, dilin yaratıcılarının "vektörde düşün" sloganıyla ifade ettiği matrislerle çalışma konusundaki geniş olanaklarıdır.

MATLAB, kullanıcıya, özellikle matematiğin hemen hemen tüm alanlarını kapsayan, veri analizi için çok sayıda (birkaç yüz) işlev sağlar:

    Matrisler ve lineer cebir - matris cebiri, lineer denklemler, özdeğerler ve vektörler, tekillikler, matris çarpanlara ayırma ve diğerleri.

    Polinomlar ve polinom-kök enterpolasyonu, polinomlar üzerinde işlemler ve bunların türetilmesi, enterpolasyon ve eğri ekstrapolasyonu ve diğerleri.

    Matematiksel istatistik ve veri analizi - istatistiksel fonksiyonlar, istatistiksel regresyon, dijital filtreleme, FFT ve diğerleri.

    Veri işleme - çizim, optimizasyon, sıfır arama, sayısal entegrasyon (dörtgenlerde) ve diğerleri dahil olmak üzere bir dizi özel işlev.

    Diferansiyel denklemler - diferansiyel ve diferansiyel cebirsel denklemlerin çözümü, gecikmeli diferansiyel denklemler, kısıtlamalı denklemler, kısmi diferansiyel denklemler ve diğerleri.

    Seyrek matrisler, özel uygulamalarda kullanılan özel bir MATLAB veri sınıfıdır.

    Tamsayı aritmetiği - MATLAB ortamında tamsayı aritmetik işlemleri gerçekleştirir.

1. Temel bilgiler

1.1. MatLab çalışma ortamı

Programı başlatmak için simgeye çift tıklayın. Şekilde gösterilen çalışma ortamı önünüze açılacaktır.

MatLab 6.x çalışma ortamı aşağıdaki unsurları içerir:

    düğmeler ve açılır liste içeren bir araç çubuğu;

    sekmeli pencere Başlatma Pedi ve çalışma alanıçeşitli ToolBox modüllerine ve çalışma alanının içeriğine erişebileceğiniz;

    sekmeli pencere Komut Geçmişi ve Geçerli Dizin, önceden girilmiş komutları görüntülemek ve geri çağırmak ve aynı zamanda geçerli dizini ayarlamak için tasarlanmıştır;

    komut istemini "ve yanıp sönen bir dikey imleç içeren komut penceresi;

    durum çubuğu.

MatLab 6.x çalışma ortamında şekilde görülen bazı pencereler eksik ise menüye gidiniz. görüş uygun öğeleri seçin: Komut Penceresi, Komut Geçmişi, Geçerli Dizin, çalışma alanı, Başlatma Pedi.

Komutlar, komut penceresine yazılmalıdır. Komut satırı istemini belirtmek için "karakter" yazmanız gerekmez. Çalışma alanını görüntülemek için kaydırma çubuklarını veya tuşlarını kullanmak uygundur. Ev,Son, sola veya sağa hareket etmek için ve Sayfa yukarı,PageDown yukarı veya aşağı hareket ettirmek için. Aniden, komut penceresinin çalışma alanı etrafında hareket ettikten sonra, yanıp sönen imleç ile komut satırı kaybolursa, sadece düğmesine basın. Girmek.

Herhangi bir komutun veya ifadenin yazılmasının bir tıklama ile bitmesi gerektiğini hatırlamak önemlidir. Girmek, MatLab'ın bu komutu yürütmesi veya bir ifade hesaplaması için.

1.2. En basit hesaplamalar

Komut satırına 1 + 2 yazın ve Girmek... Sonuç olarak, MatLab komut penceresinde aşağıdakiler görüntülenir:

Pirinç. 2 Temel bileşen analizinin grafiksel gösterimi

MatLab ne yaptı? Önce 1 + 2 toplamını hesapladı, ardından sonucu özel değişkene yazdı ve 3'e eşit değerini komut penceresine yazdırdı. Cevabın altında, yanıp sönen bir imleç içeren bir komut satırı bulunur ve bu, MatLab'ın daha sonraki hesaplamalar için hazır olduğunu gösterir. Komut satırına yeni ifadeler yazabilir ve değerlerini bulabilirsiniz. Örneğin (1 + 2) /4.5'i hesaplamak için önceki ifadeyle çalışmaya devam etmeniz gerekiyorsa, en kolay yol, değişkenler değişkeninde depolanan zaten var olan sonucu kullanmaktır. Typeans / 4.5 (ondalık nokta kullanılır) ve tuşuna basın Girmek, ortaya çıkıyor

Pirinç. 3 Temel bileşen analizinin grafiksel gösterimi

1.3. yankı komutları

MatLab'daki her komut yankılanır. Yukarıdaki örnekte, cevap ans = 0.6667'dir. Genellikle yankı, programın çalışmasını algılamayı zorlaştırır ve ardından kapatılabilir. Bunu yapmak için komutun noktalı virgülle bitmesi gerekir. Örneğin

Pirinç. 4 ScoresPCA işlevine girme örneği

1.4. Çalışma ortamının korunması. Mat dosyaları

Tüm değişken değerlerini kaydetmenin en kolay yolu menüde kullanmaktır. Dosya paragraf Çalışma Alanını Farklı Kaydet. Aynı zamanda, bir iletişim kutusu belirir. Çalışma Alanı Değişkenlerini Kaydet, dizini ve dosya adını belirtmeniz gereken. Varsayılan olarak, dosyayı ana MatLab dizininin çalışma alt dizinine kaydetmeniz önerilir. Program, çalışma sonuçlarını mat uzantılı bir dosyaya kaydedecektir. Artık MatLab'ı kapatabilirsiniz. Bir sonraki oturumda, değişkenlerin değerlerini geri yüklemek için alt öğeyi kullanarak bu kayıtlı dosyayı açın. Açık Menü Dosya... Artık önceki oturumda tanımlanan tüm değişkenler yeniden kullanılabilir durumda. Yeni girilen komutlarda kullanılabilirler.

    Paketin temel özelliklerimatlab

    Paket Araç Kitlerimatlab

    Paket yapısı ve çalışma pencerelerimatlab

    Komut modunda çalışma

    Programlama dilinin temel unsurlarımatlab

1. Matlab paketinin ana özellikleri

MATLAB(İngilizce "Matrix Laboratuvarı" ndan kısaltılmıştır) - teknik hesaplama problemlerini çözmek için uygulamalı programlar paketi ve bu pakette kullanılan aynı adı taşıyan programlama dili. MATLAB 1.000.000'den fazla mühendis ve bilim insanı tarafından kullanılmaktadır ve Linux, Mac OS, Solaris (Solaris artık R2010b'de desteklenmemektedir) ve Microsoft Windows dahil olmak üzere çoğu modern işletim sisteminde çalışmaktadır.

Tarih. MATLAB, 1970'lerin sonlarında New Mexico Üniversitesi Bilgisayar Bilimleri Dekanı iken Cleve Moler tarafından bir programlama dili olarak geliştirildi. Geliştirmenin amacı, fakülte öğrencilerine Fortran çalışmasına gerek kalmadan Linpack ve EISPACK yazılım kütüphanelerini kullanma fırsatı vermekti. Yeni dil kısa sürede diğer üniversitelere de yayıldı ve uygulamalı matematik alanında çalışan bilim adamları tarafından büyük ilgi gördü. Hala açık kaynak olarak dağıtılan Fortran'ın 1982 sürümünü internette bulabilirsiniz. Mühendis John N. (Jack) Little, Clive Mowler'ın 1983'te Stanford Üniversitesi'ni ziyareti sırasında dille tanıştı. Yeni dilin büyük bir ticari potansiyele sahip olduğunu fark ederek, Cleve Mowler ve Steve Bangert ile birlikte çalıştı. Birlikte MATLAB'ı C'de yeniden yazdılar ve daha da geliştirmek için 1984'te The MathWorks'ü kurdular. C'de yeniden yazılan bu kütüphaneler uzun zamandır JACKPAC olarak biliniyor. Başlangıçta kontrol sistemi tasarımı (John Little'ın ana uzmanlık alanı) için tasarlanan MATLAB, diğer birçok bilim ve mühendislik alanında hızla popülerlik kazandı. Ayrıca eğitimde, özellikle lineer cebir ve sayısal yöntemlerin öğretiminde yaygın olarak kullanılmıştır.

MATLAB dilinin tanımı. MATLAB dili üst düzeydir yorumlanmış bir programlama dili dahil olmak üzere matrisler veri yapıları, geniş bir işlev yelpazesi, entegre bir geliştirme ortamı, nesne yönelimli yetenekler ve diğer programlama dillerinde yazılmış programlara arayüzler.

MATLAB'da yazılan programlar iki tiptir - fonksiyonlar ve Kodlar.

Fonksiyonların girdi ve çıktı argümanları ile ara hesaplama sonuçlarını ve değişkenlerini depolamak için kendi çalışma alanları vardır.

Komut dosyaları ortak bir çalışma alanını paylaşır. Hem komut dosyaları hem de işlevler makine koduna derlenmez ve metin dosyaları olarak kaydedilir.

Sözde kaydetmek de mümkündür önceden ayrıştırılmış programlar - makine yürütmesi için uygun bir biçimde işlenen işlevler ve komut dosyaları. Genel olarak, bu tür programlar, özellikle işlev grafik komutları içeriyorsa, normal programlardan daha hızlı çalışır.

MATLAB dilinin ana özelliği, dilin yaratıcılarının "düşünme vektörü" (İng. Düşünmek vektörleştirilmiş).

MATLAB'ın uygulanması.

Matematik ve Bilgisayar. MATLAB, kullanıcıya, özellikle matematiğin hemen hemen tüm alanlarını kapsayan, veri analizi için çok sayıda (birkaç yüz) işlev sağlar:

    Matrisler ve lineer cebir - matris cebiri, lineer denklemler, özdeğerler ve vektörler, tekillikler, matris çarpanlara ayırma ve diğerleri.

    Polinomlar ve enterpolasyon - polinomların kökleri, polinomlar üzerindeki işlemler ve bunların farklılaşması, enterpolasyon ve eğrilerin ekstrapolasyonu ve diğerleri.

    Matematiksel istatistik ve veri analizi - istatistiksel fonksiyonlar, istatistiksel regresyon, dijital filtreleme, hızlı Fourier dönüşümü ve diğerleri.

    Veri İşleme - çizim, optimizasyon, sıfır arama, sayısal entegrasyon (dörtgenlerde) ve diğerleri dahil olmak üzere bir dizi özel işlev.

    Diferansiyel denklemler - diferansiyel ve diferansiyel cebirsel denklemleri çözme, gecikmeli diferansiyel denklemler, kısıtlamalı denklemler, kısmi diferansiyel denklemler ve diğerleri.

    Seyrek matrisler, özel uygulamalarda kullanılan özel bir MATLAB veri sınıfıdır.

    Tamsayı aritmetiği - MATLAB ortamında tamsayı aritmetik işlemleri gerçekleştirir.

Algoritmaların geliştirilmesi. MATLAB, nesne yönelimli programlama kavramlarını kullanan üst düzey olanlar da dahil olmak üzere algoritma geliştirmek için uygun araçlar sağlar. Hata ayıklayıcı ve profil oluşturucu dahil tüm gerekli IDE araçlarını içerir. Tamsayı veri türleriyle çalışma işlevleri, gerektiğinde mikrodenetleyiciler ve diğer uygulamalar için algoritmalar oluşturmayı kolaylaştırır.

Veri goruntuleme. MATLAB paketi, üç boyutlu, görsel veri analizi ve animasyonlu videolar oluşturma dahil olmak üzere çok sayıda grafik işlevi içerir.

Yerleşik geliştirme ortamı, düğmeler, giriş alanları ve diğerleri gibi çeşitli kontrollerle grafiksel kullanıcı arabirimleri oluşturmanıza olanak tanır.

Bağımsız uygulamalar. MATLAB programları, hem konsol hem de GUI, bileşen kullanılarak oluşturulabilir. MATLAB Derleyicisi MATLAB'den bağımsız yürütülebilir uygulamalara veya diğer bilgisayarlarda çalışması için ücretsiz bir dağıtım ortamı gerektiren dinamik bağlantı kitaplıklarına MATLAB Derleyici Çalışma Zamanı(MCR).

Dış arayüzler. MATLAB paketi, diğer programlama dillerinde yazılmış harici rutinlere, Bileşen Nesne Modeli veya Dinamik Veri Değişimi teknolojileri aracılığıyla iletişim kuran verilere, istemcilere ve sunuculara ve doğrudan MATLAB ile iletişim kuran çevre birimlerine erişmek için çeşitli arabirimler içerir. Bu yeteneklerin çoğu MATLAB API olarak bilinir.

COM. MATLAB paketi, COM nesneleri (hem istemciler hem de sunucular) oluşturmanıza, değiştirmenize ve silmenize izin veren işlevlere erişim sağlar. ActiveX teknolojisi de desteklenmektedir. Tüm COM nesneleri, MATLAB paketinin özel bir COM sınıfına aittir. Otomasyon kontrolörünün işlevlerine sahip tüm programlar (İng. Otomasyon kontrolör) bir otomasyon sunucusu olarak MATLAB'a erişebilir. Otomasyon sunucu).

.AĞ. Microsoft Windows üzerindeki MATLAB paketi, .NET Framework yazılımına erişim sağlar. MATLAB ortamından .NET Assemblies yüklemek ve .NET sınıfının nesneleri ile çalışmak mümkündür. MATLAB 7.11 (R2010b), .NET Framework 2.0, 3.0, 3.5 ve 4.0 sürümlerini destekler.

DDE. MATLAB paketi, Dinamik Veri Değişimi (DDE) teknolojisi aracılığıyla bu uygulamaların MATLAB verilerine erişmesinin yanı sıra diğer Windows uygulamalarına erişmesine izin veren işlevleri içerir. DDE sunucusu olabilen her uygulamanın kendi benzersiz tanımlayıcı adı vardır. MATLAB için bu isim - matlab.

Ağ hizmetleri. MATLAB, web servislerinin yöntemlerini çağırma yeteneği sağlar. Özel bir işlev, web hizmeti API'sinin yöntemlerine dayalı bir sınıf oluşturur.

MATLAB, bir web hizmeti istemcisinden gelen paketleri kabul ederek, bunları işleyerek ve bir yanıt göndererek etkileşime girer. Aşağıdaki teknolojiler desteklenir: Basit Nesne Erişim Protokolü (SOAP) ve Web Hizmetleri Açıklama Dili (WSDL).

COM bağlantı noktası. MATLAB seri bağlantı noktası arabirimi, bir seri bağlantı noktası (COM bağlantı noktası) aracılığıyla bir bilgisayara bağlanan modemler, yazıcılar ve bilimsel ekipman gibi çevresel aygıtlara doğrudan erişim sağlar. Bir arabirim, seri bağlantı noktası için özel bir sınıf nesnesi oluşturarak çalışır. Bu sınıfın mevcut yöntemleri, seri bağlantı noktasına veri okumanıza ve yazmanıza, olayları ve olay işleyicilerini kullanmanıza ve bilgisayar diskine gerçek zamanlı olarak bilgi yazmanıza izin verir. Bu, deneyler, gerçek zamanlı simülasyonlar ve diğer uygulamalar için kullanışlıdır.

MEX dosyaları. MATLAB paketi, C ve Fortran dillerinde yazılmış harici uygulamalarla etkileşim için bir arayüz içerir. Bu etkileşim MEX dosyaları aracılığıyla gerçekleştirilir. MATLAB'dan C veya Fortran ile yazılmış alt programları paketin yerleşik fonksiyonlarıymış gibi çağırmak mümkündür. MEX dosyaları, MATLAB'da yerleşik yorumlayıcı tarafından yüklenebilen ve yürütülebilen dinamik bağlantı kitaplıklarıdır. MEX rutinleri ayrıca yerleşik MATLAB komutlarını çağırma yeteneğine de sahiptir.

DLL. MATLAB genel DLL arabirimi, sıradan dinamik bağlantı kitaplıklarında bulunan işlevleri doğrudan MATLAB'dan çağırmanıza olanak tanır. Bu işlevlerin bir C arabirimi olmalıdır.

Ayrıca MATLAB, paket fonksiyonların C ile yazılmış harici uygulamalarda kullanılmasına izin veren C arayüzü üzerinden yerleşik fonksiyonlarına erişme yeteneğine sahiptir. MATLAB'da bu teknolojiye denir. C Motoru.

Alternatif paketler. Sayısal analiz problemlerini çözmek için çok sayıda yazılım paketi vardır. Bu paketlerin çoğu ücretsiz yazılımdır.

MATLAB ile programlama dili düzeyinde uyumlu:

İşlevsellikte benzer:

    APL ve torunları: ör. J

    Python, Python (x, y) yazılım paketiyle ve NumPy, SciPy ve matplotlib gibi kitaplıklarla kullanıldığında benzer yetenekleri uygular.

    IDL (İng. etkileşimli Veri Dilim Bir zamanlar MATLAB'ın ticari rakibi olan interaktif bir veri tanımlama dili), sayısal analiz yazılım ürünleri pazarındaki payı düşmüş olmasına rağmen, günümüzde birçok uygulama alanında ciddi bir rakip olmaya devam etmektedir.

    Sun Microsystems tarafından oluşturulan bir programlama dili olan Fortress, Fortran'ın halefidir, ancak onunla uyumlu değildir.

    Sayısal analiz için büyük projeler geliştirmek gerekirse, statik tiplemeyi ve modüler bir yapıyı destekleyen genel amaçlı programlama dillerini kullanmak mümkündür. Örnekler Modula-3, Haskell, Ada, Java'yı içerir. Aynı zamanda, bilimsel ve mühendislik ortamında bilinen özel kütüphanelerin kullanılması tavsiye edilir.

2. Matlab araç kutuları

Matlab'da, adı verilen özel program grupları tarafından önemli bir rol oynanır. araç kutuları... Araç kutuları, belirli bir problem sınıfını çözmek için MATLAB'da yazılmış kapsamlı bir işlevler (m-dosyaları) koleksiyonudur. Mathworks, aşağıdakiler de dahil olmak üzere birçok alanda kullanılan araç takımları sağlar:

    Sinyallerin, görüntülerin ve verilerin dijital olarak işlenmesi: DSP Araç Kutusu, Görüntü İşleme Araç Kutusu, Dalgacık Araç Kutusu, İletişim Araç Kutusu, Filtre Tasarımı Araç Kutusu- sinyal işleme, görüntüler, dijital filtrelerin tasarımı ve iletişim sistemlerinin çok çeşitli görevlerini çözmeye izin veren işlev setleri.

    Kontrol sistemleri: Kontrol Sistemleri Araç Kutusu, µ-Analiz ve Sentez Araç Kutusu, Sağlam kontrol araç kutusu, Sistem Tanımlama Araç Kutusu, LMI Kontrol Araç Kutusu, Model Tahmine Dayalı Kontrol Araç Kutusu, Model Tabanlı Kalibrasyon Araç Kutusu- sağlam kontrol, H∞-kontrol, LMN-sentezi, µ-sentezi ve diğerleri gibi modern kontrol algoritmaları dahil olmak üzere, dinamik sistemlerin analizini ve sentezini, kontrol sistemlerinin tasarımını, simülasyonunu ve tanımlanmasını kolaylaştıran fonksiyon setleri.

    finansal analiz: GARCH Araç Kutusu, Sabit Gelir Araç Kutusu, Finansal Zaman Serisi Araç Kutusu, Finansal Türev Araç Kutusu, Finansal Araç Kutusu, Veri Besleme Araç Kutusu- çeşitli finansal bilgileri hızlı ve verimli bir şekilde toplamanıza, işlemenize ve aktarmanıza olanak tanıyan işlevler kümesi.

    Üç boyutlu dahil olmak üzere coğrafi haritaların analizi ve sentezi: Haritalama Araç Kutusu.

    Deneysel verilerin toplanması ve analizi: Veri Toplama Araç Kutusu, Görüntü Toplama Araç Kutusu, Enstrüman Kontrol Araç Kutusu, Code Composer Studio için Bağlantı- gerçek zamanlı da dahil olmak üzere deneyler sırasında elde edilen verileri kaydetmenize ve işlemenize izin veren işlev setleri. Çok çeşitli bilimsel ve mühendislik ölçüm ekipmanları desteklenmektedir.

    Veri görselleştirme ve sunum: Sanal Gerçeklik Araç Kutusu- sanal gerçeklik teknolojileri ve VRML kullanarak etkileşimli dünyalar oluşturmanıza ve bilimsel bilgileri görselleştirmenize olanak tanır.

    Geliştirme araçları: COM için MATLAB Oluşturucu, Excel için MATLAB Oluşturucu, NET için MATLAB Oluşturucu, MATLAB Derleyicisi, Filtre Tasarımı HDL Kodlayıcı- MATLAB ortamından bağımsız uygulamalar yaratmanıza izin veren fonksiyon setleri.

    Harici yazılım ürünleriyle etkileşim: MATLAB Rapor Üreticisi, Excel Bağlantısı, Veritabanı Araç Kutusu, MATLAB Web Sunucusu, ModelSim için bağlantı- verileri, diğer programların onlarla çalışabileceği şekilde kaydetmenize izin veren işlev setleri.

    Veri tabanı: Veritabanı Araç Kutusu- veritabanlarıyla çalışmak için araçlar.

    Bilim ve matematik paketleri: Biyoinformatik Araç Kutusu, Eğri Uydurma Araç Kutusu, Sabit Noktalı Araç Kutusu, Bulanık Mantık Araç Kutusu, Genetik Algoritma ve Doğrudan Arama Araç Kutusu, OPC Araç Kutusu, Optimizasyon Araç Kutusu, Kısmi Diferansiyel Denklem Araç Kutusu, Spline Araç Kutusu, İstatistik Araç Kutusu, RF Araç Kutusu- genetik algoritmaların geliştirilmesi, kısmi türevlerde problemlerin çözülmesi, tamsayı problemleri, sistem optimizasyonu ve diğerleri dahil olmak üzere çok çeşitli bilimsel ve mühendislik problemlerinin çözülmesine izin veren özel matematiksel fonksiyon setleri.

    Nöral ağlar: Sinir Ağı Araç Kutusu- sinir ağlarının sentezi ve analizi için araçlar.

    Bulanık mantık: Bulanık Mantık Araç Kutusu- bulanık kümeler oluşturmak ve analiz etmek için araçlar.

    sembolik hesaplama: Sembolik Matematik Araç Kutusu- Maple programının sembolik işlemcisi ile etkileşime girme yeteneğine sahip sembolik hesaplamalar için araçlar.

Yukarıdakilere ek olarak, diğer şirketler ve meraklılar tarafından yazılmış binlerce başka MATLAB araç takımı vardır.

). Kemometride kullanılan genel amaçlı araçlar arasında MatLab paketi özel bir yer tutmaktadır. Popülaritesi son derece yüksektir. Bunun nedeni, MatLab'ın güçlü ve çok yönlü çok boyutlu veri işleme olmasıdır. Paketin yapısı, onu matris hesaplamaları yapmak için uygun bir araç haline getirir. MatLab kullanılarak araştırılabilecek problemler yelpazesi şunları içerir: matris analizi, sinyal ve görüntü işleme, sinir ağları ve diğerleri. MatLab, deneyimli kullanıcıların programlanmış algoritmaları anlamasını sağlayan üst düzey bir açık kaynak dilidir. Basit bir yerleşik programlama dili, kendi algoritmalarınızı oluşturmanızı kolaylaştırır. MatLab'ı uzun yıllar kullanmak için çok sayıda işlev ve ToolBox (özel araç paketleri) oluşturulmuştur. En popüler olanı, Eigenvector Research, Inc.'den PLS ToolBox'tır.

1. Temel bilgiler

1.1. MatLab çalışma ortamı

Programı başlatmak için simgeye çift tıklayın. Şekilde gösterilen çalışma ortamı önünüze açılacaktır.

Çalışma ortamı MatLab 6.xönceki sürümlerin çalışma ortamından biraz farklı, birçok yardımcı elemana erişmek için daha uygun bir arayüze sahip

Çalışma ortamı MatLab 6.x aşağıdaki unsurları içerir:

    düğmeler ve açılır liste içeren bir araç çubuğu;

    Pad sekmeli penceresini başlatın ve çalışma alanıçeşitli ToolBox modüllerine ve çalışma alanının içeriğine erişebileceğiniz;

    sekmeli pencere Komut Geçmişi ve Geçerli Dizin, önceden girilen komutları görüntülemek ve geri çağırmak ve ayrıca geçerli dizini ayarlamak için tasarlanmıştır;

    "istemi" ve yanıp sönen bir dikey imleci içeren komut penceresi;

    durum çubuğu.

Çalışma ortamında ise MatLab 6.xşekilde gösterilen bazı pencereler eksik, ardından Görünüm menüsünde uygun öğeleri seçin: Komut Penceresi, Komut Geçmişi, Geçerli Dizin, Çalışma Alanı, Başlatma Pedi.

Komutlar, komut penceresine yazılmalıdır. Komut satırı istemini belirtmek için "karakter" yazmanız gerekmez. Çalışma alanını görüntülemek için, sola veya sağa hareket etmek için kaydırma çubuklarını veya Ana Sayfa, Bitir tuşlarını ve yukarı veya aşağı hareket etmek için PageUp, PageDown tuşlarını kullanmak uygundur. Aniden, komut penceresinin çalışma alanında dolaştıktan sonra, yanıp sönen imleç ile komut satırı kaybolursa, sadece Enter tuşuna basın.

MatLab'ın bu komutu yürütmesi veya ifadeyi hesaplaması için herhangi bir komut veya ifade kümesinin Enter tuşuna basılarak bitmesi gerektiğini hatırlamak önemlidir.

1.2. En basit hesaplamalar

Komut satırına 1 + 2 yazın ve Enter'a basın. Sonuç olarak, MatLab komut penceresinde aşağıdakiler görüntülenir:

Pirinç. 2 Temel bileşen analizinin grafiksel gösterimi

MatLab ne yaptı? Önce 1 + 2'nin toplamını hesapladı, ardından sonucu ans özel değişkenine yazdı ve 3'e eşit değerini komut penceresine yazdırdı. Cevabın altında, yanıp sönen bir imleç içeren bir komut satırı bulunur ve bu, MatLab'ın daha sonraki hesaplamalar için hazır olduğunu gösterir. Komut satırına yeni ifadeler yazabilir ve değerlerini bulabilirsiniz. Önceki ifadeyle çalışmaya devam etmeniz gerekiyorsa, örneğin (1 + 2) /4.5'i hesaplayın, o zaman en kolay yol, ans değişkeninde depolanan zaten var olan sonucu kullanmaktır. ans / 4.5 yazın (ondalık kesirleri girerken nokta kullanılır) ve tuşuna basın Girmek, ortaya çıkıyor

Pirinç. 3 Temel bileşen analizinin grafiksel gösterimi

1.3. yankı komutları

MatLab'daki her komut yürütmesi yankılanır. Yukarıdaki örnekte, cevap ans = 0.6667'dir. Genellikle yankı, programın çalışmasını algılamayı zorlaştırır ve ardından kapatılabilir. Bunu yapmak için komutun noktalı virgülle bitmesi gerekir. Örneğin

Pirinç. 4 ScoresPCA işlevine girme örneği

1.4. Çalışma ortamının korunması. MAT dosyaları

Tüm değişken değerlerini kaydetmenin en kolay yolu Dosya menüsünde Çalışma Alanını Farklı Kaydet öğesini kullanmaktır. Dizin ve dosya adını belirtmeniz gereken Çalışma Alanı Değişkenlerini Kaydet iletişim kutusu görüntülenir. Varsayılan olarak, dosyayı ana MatLab dizininin çalışma alt dizinine kaydetmeniz önerilir. Program, çalışma sonuçlarını mat uzantılı bir dosyaya kaydedecektir. Artık MatLab'ı kapatabilirsiniz. Bir sonraki oturumda, değişkenlerin değerlerini geri yüklemek için Dosya menüsünün Aç alt öğesini kullanarak kaydedilen bu dosyayı açın. Artık önceki oturumda tanımlanan tüm değişkenler yeniden kullanılabilir durumda. Yeni girilen komutlarda kullanılabilirler.

1.5. dergi

MatLab, daha sonra bir metin düzenleyiciden okunabilen veya yazdırılabilen bir metin dosyasına yürütülebilir komutlar ve sonuçlar yazma (bir çalışma günlüğü tutma) yeteneğine sahiptir. Günlüğe kaydetmeye başlamak için komutu kullanın günlük... Bir komut argümanı olarak günlük iş günlüğünün saklanacağı dosyanın adını belirtin. Daha fazla yazılan komutlar ve bunların yürütülmesinin sonuçları, örneğin bir dizi komut gibi bu dosyaya yazılacaktır.

aşağıdaki eylemleri gerçekleştirir:

    example-1.txt dosyasındaki günlüğü açar;

    hesaplamalar yapar;

    tüm değişkenleri MAT dosyasına work-1.mat kaydeder;

    günlüğü, MatLab kök dizininin çalışma alt dizinindeki example-1.txt dosyasına kaydeder ve MatLab'ı kapatır;

Bir metin düzenleyicide examplel-1.txt dosyasının içeriğine bakın. Dosya aşağıdaki metni içerecektir:

a1 = 3;
a2 = 2.5;
a3 = a1 + a2

Çalışmayı kaydet-1
çıkış yapmak

1.6. Yardım sistemi

MatLab yardım penceresi, Help menüsünde Help Window (Yardım Penceresi) seçeneği seçildikten sonra veya araç çubuğundaki soru butonu tıklanarak açılır. Aynı işlem komutu yazılarak da yapılabilir. yardım kazanmak... Tek tek bölümler için bir yardım penceresi görüntülemek için şunu yazın helpwin konusu... Yardım penceresi, yardım komutuyla aynı bilgileri sağlar, ancak pencereli arabirim, diğer yardım konularına daha uygun bağlantılar sağlar. Math Works Web sitesinin adresini kullanarak firmanın sunucusuna giriş yapabilir ve sorularınızla ilgili en güncel bilgileri alabilirsiniz. Yeni yazılım ürünlerini tanıyabilir veya teknik destek sayfasında sorunlarınıza cevap bulabilirsiniz.

2. Matrisler

2.1. Skaler, vektörler ve matrisler

MatLab'da skalerler, vektörler ve matrisler kullanılabilir. Bir skaler girmek için değerini bir değişkene atamak yeterlidir, örneğin

MatLab'ın büyük ve küçük harfleri ayırt ettiğini, dolayısıyla p ve P'nin farklı değişkenler olduğunu unutmayın. Dizileri (vektörler veya matrisler) girmek için öğeleri köşeli parantez içine alınır. 1 × 3 çizgi vektörü girmek için, çizginin öğelerinin boşluk veya virgülle ayrıldığı aşağıdaki komutu kullanın.

Sütun vektörü girerken öğeleri noktalı virgülle ayırın. Örneğin,

Küçük boyutlu matrisleri doğrudan komut satırından girmek uygundur. Girildiğinde, bir matris, her elemanı bir satır vektörü olan bir sütun vektörü olarak düşünülebilir.

veya bir matris, her elemanı bir sütun vektörü olan bir satır vektörü olarak ele alınabilir.

2.2. Öğelere erişim

Matris öğelerine iki dizin kullanılarak erişilir - parantez içine alınmış satır ve sütun numaraları, örneğin, B (2, 3) komutu, B matrisinin ikinci satırının ve üçüncü sütununun bir öğesini döndürür. Bir matristen bir sütun veya satır seçmek için, matrisin sütun veya satır numarasını indekslerden biri olarak kullanın ve diğer indeksi iki nokta üst üste ile değiştirin. Örneğin, A matrisinin ikinci satırını z vektörüne yazıyoruz.

İki nokta üst üste kullanarak matris bloklarını da vurgulayabilirsiniz. Örneğin, renkle işaretlenmiş bloğu P matrisinden seçin.

Çalışma ortamının değişkenlerini görüntülemeniz gerekiyorsa, komut satırına komutu yazmanız gerekir. kimin .

Çalışma alanının bir skaler (p), dört matris (A, B, P, P1) ve bir satır vektörü (z) içerdiğini görebilirsiniz.

2.3. Temel matris işlemleri

Matris işlemlerini kullanırken, toplama veya çıkarma için matrislerin aynı boyutta olması gerektiğini ve çarparken ilk matristeki sütun sayısının ikinci matristeki satır sayısına eşit olması gerektiğini unutmayın. Matrislerin, sayıların ve vektörlerin toplanması ve çıkarılması, artı ve eksi işaretleri kullanılarak gerçekleştirilir.

ve çarpma bir yıldız * ile gösterilir. 3 × 2 matris tanıtın

Bir matrisin bir sayı ile çarpması da bir yıldız işareti kullanılarak gerçekleştirilir ve hem sağda hem de solda bir sayı ile çarpabilirsiniz. ^ operatörü kullanılarak bir kare matris bir tamsayı gücüne yükseltilir

P matrisini kendisiyle çarparak sonucunuzu kontrol edin.

2.4. Özel matrisler oluşturma

Dikdörtgen matrisi sıfırlarla doldurmak, yerleşik işlev tarafından gerçekleştirilir. sıfırlar

Kimlik matrisi, işlev kullanılarak oluşturulur göz

Fonksiyonun çağrılması sonucunda birlerden oluşan bir matris oluşturulur. olanlar

MatLab, matrisleri rastgele sayılarla doldurma yeteneği sağlar. fonksiyonun sonucu ran sıfır ile bir arasında eşit olarak dağılmış bir sayılar matrisidir ve fonksiyonlar randn- sıfır ortalama ve birim varyans ile normal yasaya göre dağıtılan sayıların matrisi.

İşlev diag elemanları çapraz olarak düzenleyerek bir vektörden köşegen matris oluşturur.

2.5. Matris hesaplamaları

MatLab, matrislerle çalışmak için birçok farklı fonksiyon içerir. Yani, örneğin, bir kesme işareti kullanılarak bir matris aktarılır "

Ters matris, fonksiyon kullanılarak bulunur. env kare matrisler için

3. MatLab ve Excel Entegrasyonu

MatLab ve Excel'in entegrasyonu, Excel kullanıcısının veri işleme, çeşitli hesaplamalar ve sonucun görselleştirilmesi için çok sayıda MatLab işlevine erişmesine olanak tanır. excllink.xla eklentisi, bu Excel geliştirmesini uygular. MatLab ve Excel arasındaki iletişim için özel fonksiyonlar tanımlanmıştır.

3.1. Excel'i Yapılandırma

Excel'i MatLab ile birlikte çalışacak şekilde yapılandırmadan önce, Excel Link'in MatLab'ın kurulu sürümüne dahil edildiğinden emin olmalısınız. excllink.xla eklenti dosyası, MatLab ana dizininin veya araç kutusu alt dizininin exclink alt dizininde bulunmalıdır. Excel'i başlatın ve Araçlar menüsünden Eklentiler'i seçin. Mevcut eklentiler hakkında bilgi içeren bir iletişim kutusu açılacaktır. excllink.xla dosyasının yolunu belirtmek için Gözat düğmesini kullanın. Satır, iletişim kutusunun eklentiler listesinde görünür MatLab ile kullanım için Excel Link 2.0 bayrak seti ile. Tamam'a tıklayın, gerekli eklenti Excel'e eklendi.

Excel'in artık üç düğme içeren bir Excel Bağlantısı araç çubuğuna sahip olduğunu unutmayın: putmatrix, getmatrix, evalstring. Bu düğmeler, Excel ile MatLab arasındaki ilişkiyi uygulamak için gereken ana eylemleri gerçekleştirir - matris verilerinin değişimi ve Excel ortamından MatLab komutlarının yürütülmesi. Excel yeniden başlatıldığında, excllink.xla eklentisi otomatik olarak bağlanır.

Excel ve MatLab'ın koordineli çalışması, Excel'de varsayılan olarak kabul edilen (ancak değiştirilebilir) birkaç ayar daha gerektirir. Araçlar menüsünde Seçenekler'e gidin, Seçenekler iletişim kutusu açılır. Genel sekmesini seçin ve R1C1 referans stili bayrağının kapalı olduğundan emin olun, yani. hücreler A1, A2 vb. olarak numaralandırılmıştır. Düzenle sekmesinde, Seçimi Girdikten Sonra Taşı bayrağı ayarlanmalıdır.

3.2. MatLab ve Excel arasında veri alışverişi

Excel'i başlatın, gerekli tüm ayarların önceki bölümde anlatıldığı gibi yapıldığını kontrol edin (MatLab kapatılmalıdır). A1 ile C3 arasındaki hücrelere bir matris girin, Excel gereksinimlerine göre ondalık basamakları ayırmak için bir nokta kullanın.

Sayfadaki hücre verilerini seçin ve putmatrix düğmesine basın, MatLab'ın çalışmadığına dair bir uyarı içeren bir Excel penceresi açılır. Tamam'a tıklayın, MatLab'ın açılmasını bekleyin.

MatLab çalışma ortamının, seçilen Excel hücrelerinden gelen verilerin dışa aktarılması gereken değişkenin adını belirlemeyi amaçlayan bir giriş satırı içeren bir Excel iletişim kutusu görüntülenir. Örneğin M girin ve pencereyi OK düğmesiyle kapatın. MatLab komut penceresine gidin ve üretim ortamında üçe üç dizi içeren bir M değişkeninin oluşturulduğundan emin olun:

MatLab'da M matrisi ile bazı işlemleri yapın, örneğin ters çevirin.

Telefon etmek env MatLab komutları gibi matrisi ters çevirmek için doğrudan Excel'den gerçekleştirebilirsiniz. Excel Link panelinde bulunan evalstring düğmesine basmak, giriş satırına MatLab komutunu yazmanız gereken bir iletişim kutusunun görünümüne yol açar.

IM = env (M).

Sonuç, komutu MatLab ortamında yürütürken elde edilene benzer.

Excel'e dönün, mevcut hücreyi A5 yapın ve getmatrix düğmesini tıklayın. Excel'e aktarılacak değişkenin adını girmenizi isteyen bir giriş satırı içeren bir iletişim kutusu görüntülenir. Bu durumda, böyle bir değişken IM'dir. Tamam'a tıklayın, ters matrisin öğeleri A5 ile A7 arasındaki hücrelere girilir.

Bu nedenle, bir matrisi MatLab'a aktarmak için Excel sayfasının uygun hücrelerini seçmelisiniz ve içe aktarma için içe aktarılan dizinin sol üst öğesi olacak bir hücre belirtmeniz yeterlidir. Elemanların geri kalanı, dizinin boyutuna göre sayfanın hücrelerine, içerdikleri verilerin üzerine yazılacaktır, bu nedenle dizileri içe aktarırken dikkatli olmalısınız.

Yukarıdaki yaklaşım, uygulamalar arasında bilgi alışverişi yapmanın en basit yoludur - orijinal veriler Excel'de bulunur, ardından MatLab'a aktarılır, orada bir şekilde işlenir ve sonuç Excel'e aktarılır. Kullanıcı, Excel Link araç çubuğundaki düğmeleri kullanarak verileri aktarır. Bilgi bir matris şeklinde sunulabilir, yani. çalışma sayfasının dikdörtgen alanı. Bir satırda veya bir sütunda düzenlenen hücreler, sırasıyla MatLab'ın satır vektörlerine ve sütun vektörlerine aktarılır. Satır vektörlerinin ve sütun vektörlerinin Excel'e aktarılması da benzer şekilde çalışır.

4. Programlama

4.1. M dosyaları

Çok sayıda komut girmeniz ve bunları sık sık değiştirmeniz gerekiyorsa, MatLab komut satırından çalışmak zordur. Bir komutla günlük tutma günlük ve çalışma ortamını korumak işi biraz daha kolaylaştırır. MatLab komut gruplarını yürütmenin en uygun yolu, komutları yazabileceğiniz, hepsini bir kerede veya parçalar halinde yürütebileceğiniz, bir dosyaya kaydedebileceğiniz ve daha sonra kullanabileceğiniz M-files kullanmaktır. M-dosya düzenleyicisi, M-dosyaları ile çalışmak için tasarlanmıştır. Yardımı ile kendi işlevlerinizi oluşturabilir ve komut penceresinden de dahil olmak üzere bunları arayabilirsiniz.

Ana MatLab penceresinin Dosya menüsünü açın ve Yeni öğesinde M-dosyası alt öğesini seçin. Yeni dosya, şekilde gösterilen M-file düzenleyici penceresinde açılır.

MatLab'da iki tür M dosyası vardır: program dosyası ( Komut Dosyası M Dosyaları) bir dizi komut ve dosya işlevi içeren ( İşlev M Dosyaları) kullanıcı tanımlı işlevleri tanımlayan.

4.2. Dosya programı

Bir grafik penceresinde iki grafiğin oluşturulmasına yol açan düzenleyici komutlarını yazın

Şimdi editörün Dosya menüsünün Farklı Kaydet öğesini seçerek ana MatLab dizininin çalışma alt dizinine mydemo.m adlı dosyayı kaydedin. Yürütülmek üzere dosyada bulunan tüm komutları çalıştırmak için Hata Ayıklama menüsünde Çalıştır öğesini seçin. Ekranda bir grafik penceresi görünecektir Şekil 1 fonksiyonların grafiklerini içerir.

Dosya programı komutları komut penceresine çıktı. Çıktıyı bastırmak için komutları noktalı virgülle sonlandırın. Yazarken bir hata yapılırsa ve MatLab komutu tanıyamazsa, komutlar yanlış girilene kadar yürütülür ve ardından komut penceresinde bir hata mesajı görüntülenir.

M-dosya düzenleyicisi tarafından sağlanan çok kullanışlı bir özellik, komutların bir kısmının yürütülmesidir. Grafik penceresini kapat Şekil 1... Sol tuşa basılı tutarken fare ile veya basılı tutarken ok tuşlarıyla seçin Vardiya, ilk dört komut ve bunları Metin öğesinden yürütün. Grafik penceresinde yürütülen komutlara karşılık gelen yalnızca bir grafiğin görüntülendiğini lütfen unutmayın. Bazı komutları yürütmek için bunları seçin ve F9 tuşuna basın.

M dosyasının ayrı blokları, yürütme sırasında atlanan ancak M dosyasıyla çalışırken kullanışlı olan yorumlarla sağlanabilir. Yorumlar yüzde işaretiyle başlar ve otomatik olarak yeşil renkle vurgulanır, örneğin:

Var olan bir M dosyası, çalışma ortamının Dosya menüsünün Aç öğesi veya M dosyası düzenleyicisi kullanılarak açılır.

4.3. dosya işlevi

Yukarıda ele alınan dosya programı sadece bir MatLab komutları dizisidir, girdi ve çıktı argümanları yoktur. Sayısal yöntemleri kullanmak için ve MatLab'da kendi uygulamalarınızı programlarken, girdi argümanları ile gerekli eylemleri gerçekleştiren ve eylemin sonucunu çıktı argümanlarında döndüren dosya fonksiyonlarını oluşturabilmeniz gerekir. Dosya işlevleriyle nasıl çalışacağınızı anlamanıza yardımcı olacak birkaç basit örneğe bakalım.

Merkezleme, genellikle çok değişkenli kemometrik analiz verilerinin ön işlenmesinde kullanılır. Bir dosya fonksiyonunu bir kez yazmak ve sonra onu ortalamak için gerekli olan her yerde çağırmak mantıklıdır. M-file düzenleyicisinde yeni bir dosya açın ve şunu yazın

İlk satırdaki işlev sözcüğü, bu dosyanın bir işlev dosyası içerdiğini belirtir. İlk satır, işlevin adını ve giriş ve çıkış bağımsız değişkenlerinin listesini içeren işlev başlığıdır. Örnekte, işlev adı merkezleniyor, bir giriş argümanı X ve bir çıkış Xc'dir. Başlıktan sonra yorumlar ve ardından değerinin hesaplandığı işlevin gövdesi (bu örnekte iki satırdan oluşur) gelir. Hesaplanan değerin Xc'ye yazılması önemlidir. Gereksiz bilgilerin ekranda görüntülenmesini önlemek için noktalı virgül koymayı unutmayın. Şimdi dosyayı çalışma dizininize kaydedin. Dosya menüsünün Kaydet veya Farklı kaydet öğesinin seçilmesinin, Dosya adı alanında zaten ad ortalamasını içeren bir dosya kaydetme iletişim kutusu açacağını unutmayın. Değiştirmeyin, fonksiyon dosyasını önerilen adla bir dosyaya kaydedin!

Artık oluşturulan işlev, yerleşik sin, cos ve diğerleri ile aynı şekilde kullanılabilir. Kendi işlevleri, bir program dosyasından ve başka bir dosya işlevinden çağrılabilir. Matrisleri ölçeklendirecek bir dosya işlevi yazmaya çalışın, yani. her sütunu o sütunun standart sapmasına bölün.

Virgülle ayrılmış bir listeye yerleştirilmiş birkaç giriş bağımsız değişkenine sahip bir işlev dosyası yazabilirsiniz. Birden çok değer döndüren işlevler de oluşturabilirsiniz. Bunu yapmak için, çıktı argümanları, çıktı argümanları listesine virgülle ayrılmış olarak eklenir ve listenin kendisi köşeli parantez içine alınır. İyi bir örnek, bir zamanı saniye cinsinden saat, dakika ve saniyeye dönüştüren bir işlevdir.

Birkaç çıktı argümanıyla dosya işlevlerini çağırırken, sonuç, karşılık gelen uzunlukta bir vektöre yazılmalıdır.

4.4 Bir program oluşturma

MatLab, vektörlerin ve matrislerin grafiğini çizmek, ayrıca yorum oluşturmak ve grafikleri yazdırmak için geniş fırsatlara sahiptir. Birkaç önemli grafik işlevi tanımlayalım.

İşlev komplo giriş parametreleriyle ilişkili çeşitli biçimlere sahiptir, örneğin (y) grafiği, y öğelerinin endekslerine bağımlılığının parçalı doğrusal bir grafiğini oluşturur. Argüman olarak iki vektör verilirse, o zaman (x, y) grafiği, y'ye karşı x'in bir grafiğini oluşturacaktır. Örneğin, sin fonksiyonunu 0'dan 2π'ye çizmek için aşağıdakileri yapın

Program, pencerede görüntülenen bir bağımlılık grafiği oluşturmuştur. Şekil 1

MatLab, her grafiğe otomatik olarak kendi rengini atar (kullanıcının yaptığı durumlar hariç), bu da veri kümeleri arasında ayrım yapmayı mümkün kılar.

Emretmek devam etmek mevcut bir grafiğe eğriler eklemenizi sağlar. İşlev alt konu tek bir pencerede birden çok grafiği görüntülemenize olanak tanır

4.5 Grafikleri yazdırma

Dosya menüsündeki Yazdır öğesi ve komut Yazdır MatLab grafiklerini yazdırın. Yazdır menüsü, ortak standart yazdırma seçeneklerini seçmenize olanak tanıyan bir iletişim kutusu açar. Emretmek Yazdırçıktının çıktısında daha fazla esneklik sağlar ve M dosyalarından yazdırmayı kontrol etmenizi sağlar. Sonuç doğrudan varsayılan yazıcıya gönderilebilir veya belirli bir dosyaya kaydedilebilir.

5. Örnek programlar

Bu bölüm, çok boyutlu verilerin analizinde kullanılan en yaygın algoritmaları listeler. Hem en basit veri dönüştürme, merkezleme ve ölçekleme yöntemleri hem de veri analizi için algoritmalar - PCA, PLS.

5.1. Merkezleme ve ölçekleme

Analiz genellikle orijinal verilerin dönüştürülmesini gerektirir. En çok kullanılan veri dönüştürme yöntemleri, her bir değişkeni standart sapma ile ortalamak ve ölçeklendirmektir. Merkezleme fonksiyonunun kodunda matris verildi. Bu nedenle, aşağıda sadece fonksiyonun kodu gösterilmiştir, ki bu terazi veri. Lütfen orijinal matrisin ortalanması gerektiğini unutmayın

fonksiyon Xs = ölçekleme (X)
% ölçekleme: çıktı matrisi Xs'dir
% matrisi X ortalanmalıdır

Xs = X * inv (diag (std (X)));

% ölçeklendirme sonu

5.2. SVD / PCA

Çok değişkenli analizde en popüler veri sıkıştırma yöntemi, temel bileşen analizidir (PCA). Matematiksel olarak, PCA orijinal matrisin bir ayrıştırmasıdır. x, yani iki matrisin bir ürünü olarak temsili T ve P

x = TP+ E

Matris T puan matrisi, matris ise artık matris olarak adlandırılır.

Matris bulmanın en basit yolu T ve P- adı verilen standart bir MatLab işlevi aracılığıyla SVD ayrıştırmasını kullanın svd .

fonksiyon = pcasvd (X)

Svd(X);
T = U * D;
P = V;

pcasvd'nin % sonu

5.3 PCA / NIPALS

PCA hesapları ve yükleri oluşturmak için, her adımda bir bileşen hesaplayan tekrarlayan algoritma NIPALS kullanılır. İlk matris ilk x dönüştürülür (en azından ortalanır; bkz.) ve bir matrise dönüşür E 0 , a= 0. Daha sonra aşağıdaki algoritma uygulanır.

T 2. P t = T T Ea / T T T 3. P = P / (P T P) ½ 4. T = Ea P / P T P 5. Yakınsamayı kontrol edin, değilse 2'ye gidin

sonrakini hesapladıktan sonra ( a th) bileşenleri, varsayıyoruz Ta=T ve Pa=P E a+1 = EaT P aüzerinde a+1.

NIPALS algoritmasının kodu okuyucular tarafından yazılabilir; bu eğitimde yazarlar kendi versiyonlarını verir. PCA'yı hesaplarken, temel bileşenlerin sayısını (değişken sayısıPC) girebilirsiniz. Kaç tane bileşene ihtiyaç olduğunu bilmiyorsanız, komut satırına = pcanipals (X) yazmalısınız ve program, bileşen sayısını orijinal matrisin boyutlarının en küçüğüne eşit olarak ayarlayacaktır. x.

fonksiyon = pcanipals (X, sayıPC)

Bileşen sayısının % hesaplaması
= boyut (X); P =; T =;

Lenf (sayı)> 0 ise
pc = sayıPC (1);
elseif (uzunluk (sayı) == 0) & X_r< X_c
bilgisayar = X_r;
Başka
bilgisayar = X_c;
son;

k=1 için: adet
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)) "; P1 = P1 / norm (P1); T1 = X * P1; d = T1" * T1;

d - d0> 0.0001 iken;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norm (P1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norm (P1); T1 = X * P1; d = T1 "* T1;
son

X = X - T1 * P1; P = kat (1, P, P1 "); T =;
son

Chemometrics eklentisi kullanılarak PCA'nın nasıl hesaplanacağı öğreticide açıklanmıştır

5.4 PLS1

Çok değişkenli kalibrasyon için en popüler yöntem gizli projeksiyon (PLS) yöntemidir. Bu yöntemde, tahmin edici matris aynı anda ayrıştırılır. x ve yanıt matrisleri Y:

x=TP+ E Y=Uq+ F T=XW(P T W) –1

İzdüşüm tutarlı bir şekilde oluşturulur - karşılık gelen vektörler arasındaki korelasyonu en üst düzeye çıkarmak için x-hesaplar Ta ve Y-hesaplar sena... Veri bloğu ise Y birden fazla yanıt içerir (ör. K> 1), başlangıç ​​verilerinin iki projeksiyonunu oluşturabilirsiniz - PLS1 ve PLS2. İlk durumda, yanıtların her biri için y k kendi izdüşüm alt uzayı inşa edilir. Aynı zamanda hesaplar T (sen) ve yük P (W, Q) hangi yanıtın kullanıldığına bağlıdır. Bu yaklaşıma PLS1 adı verilir. PLS2 yöntemi için, tüm yanıtlar için ortak olan yalnızca bir projeksiyon alanı oluşturulur.

PLS yönteminin ayrıntılı bir açıklaması bu kitapta verilmiştir.PLS1 hesaplarını ve yüklerini oluşturmak için tekrarlayan bir algoritma kullanılır. İlk matrisler x ve Y merkez

= mc(X);
= mc(Y);

ve bir matrise dönüşürler E 0 ve vektör F 0 , a= 0. Daha sonra bunlara aşağıdaki algoritma uygulanır.

1. w t = Fa T E a 2. w = w / (w T w) ½ 3. T = Ea w 4. Q = T T Fa / T T T 5. sen = QFa / Q 2 6. P t = T T Ea / T T T

sonrakini hesapladıktan sonra ( a th) bileşenleri, varsayıyoruz Ta=T ve Pa=P... Bir sonraki bileşeni elde etmek için artıkları hesaplamanız gerekir. E a+1 = EaT P t ve dizini değiştirerek aynı algoritmayı onlara uygulayın aüzerinde a+1.

İşte kitaptan alınan bu algoritmanın kodu

fonksiyon = lütfen (x, y)
% PLS: bir PLS bileşenini hesaplar.
% Çıkış vektörleri w, t, u, q ve p'dir.
%
% Başlangıç ​​vektörü u olarak y'den bir vektör seçin.

u = y (:, 1);

% Yakınsama kriteri çok yüksek ayarlanmış.
kri = 100;

% Buradan sona kadar olan komutlar yakınsamaya kadar tekrarlanır.
while (kri> 1e - 10)

% Her u başlangıç ​​vektörü uold olarak kaydedilir.
uold = u; w = (u "* x)"; w = w / norm (w);
t = x * w; q = (t "* y)" / (t "* t);
u = y * q / (q "* q);

% Yakınsama kriteri, u-uold normunun u normuna bölümüdür.
kri = norm (uold - u) / norm (u);
son;

% Yakınsama sonrasında p hesaplayın.
p = (t "* x)" / (t "* t);

% Sonu lütfen

Eklenti kullanarak PLS1 hesaplama hakkında kemometrikEkle Excel sistemindeki manuel Projeksiyon yöntemlerinde açıklanmıştır.

5.5 PLS2

PLS2 için algoritma aşağıdaki gibidir. İlk matrisler x ve Y dönüştürmek (en azından - orta; bkz) ve matrislere dönüşürler E 0 ve F 0 , a= 0. Daha sonra bunlara aşağıdaki algoritma uygulanır.

1. Başlangıç ​​vektörünü seçin sen 2. w t = sen T E a 3. w = w / (w T w) ½ 4. T = Ea w 5. Q t = T T Fa / T T T 6. sen = Fa Q/ Q T Q 7. Yakınsamayı kontrol edin, değilse 2 8'e gidin. P t = T T Ea / T T T

sonrakini hesapladıktan sonra ( a-th) PLS2 bileşenleri konmalıdır: Ta=T, Pa=p, wa=w, sena=sen ve Q bir = Q... Bir sonraki bileşeni elde etmek için artıkları hesaplamanız gerekir. E a+1 = Eat p t ve Fa +1 = F atq t ve dizini değiştirerek aynı algoritmayı onlara uygulayın aüzerinde a+1.

İşte kitaptan da ödünç alınan kod.

fonksiyon = plsr (x, y, a)
% PLS: bir PLS bileşenini hesaplar.
% Çıktı matrisleri W, T, U, Q ve P'dir.
% B, regresyon katsayılarını ve SS toplamlarını içerir
Artıklar için % kareler.
% a, bileşenlerin sayısıdır.
%
% Bir bileşen için: bitirmek için tüm komutları kullanın.

i = 1: için
% Karelerin toplamını hesaplayın. ss işlevini kullanın.
sx =;
sy =;

% Bir bileşeni hesaplamak için pls fonksiyonunu kullanın.
= lütfen (x, y);

% Artıkları hesaplayın.
x = x - t * p ";
y = y - t * q ";

% Vektörleri matrislere kaydedin.
W =;
T =;
U =;
S =;
P =;
son;

% Döngüden sonra regresyon katsayılarını hesaplayın.
B = W * inv (P "* W) * Q";

% Son kalan SS'yi kareler vektörlerinin toplamına ekleyin.
sx =;
sy =;

% X ve Y için ss vektörlerinin bir matrisini yapın.
SS =;

% Kullanılan SS fraksiyonunu hesaplayın.
= boyut (SS);
tt = (SS * diag (SS (1,:). ^ (- 1)) - birler (a, b)) * (-1)

% Sonu plsr

fonksiyon = ss (x)
% SS: X matrisinin karelerinin toplamını hesaplar.
%

ss = toplam (toplam (x. * x));
% Sonu

Eklenti ile PLS2 hesaplama hakkında kemometrikEkle Excel sistemindeki manuel Projeksiyon yöntemlerinde açıklanmıştır.

Çözüm

MatLab çok popüler bir veri analiz aracıdır. Ankete göre, tüm araştırmacıların üçte biri tarafından kullanılırken, Unsrambler programı bilim adamlarının sadece %16'sı tarafından kullanılıyor. MatLab'ın ana dezavantajı yüksek fiyatıdır. Ayrıca, MatLab rutin hesaplamalar için iyidir. Etkileşim eksikliği, yeni, keşfedilmemiş veri kümeleri için arama, araştırma hesaplamaları yaparken onu elverişsiz hale getirir.

MATLAB, üst düzey bir teknik hesaplama dili, etkileşimli bir algoritma geliştirme ortamı ve modern bir veri analiz aracıdır.
MATLAB, geleneksel programlama dilleriyle (C / C ++, Java, Pascal, FORTRAN) karşılaştırıldığında, tipik problemleri çözme süresini bir büyüklük sırasına göre azaltmayı mümkün kılar ve yeni algoritmaların geliştirilmesini büyük ölçüde basitleştirir.
MATLAB, tüm MathWorks ürün ailesinin belkemiğidir ve aşağıdaki alanlarda çok çeşitli bilimsel ve uygulamalı problemleri çözmek için ana araçtır: nesneler ve kontrol sistemlerinin geliştirilmesi, iletişim sistemleri, sinyal ve görüntü işleme, sinyal ölçümü ve test etme, finansal modelleme, hesaplamalı biyoloji vb.
MATLAB çekirdeği, gerçek, karmaşık ve analitik veri türlerinin matrisleriyle ve veri yapıları ve arama tablolarıyla çalışmayı mümkün olduğunca kolaylaştırır. MATLAB, lineer cebir (LAPACK, BLAS), hızlı Fourier dönüşümü (FFTW), polinomlarla çalışma fonksiyonları, temel istatistik fonksiyonları ve diferansiyel denklemlerin sayısal çözümü için yerleşik fonksiyonlar içerir; Intel MKL için genişletilmiş matematik kitaplıkları. MATLAB çekirdeğinin tüm yerleşik işlevleri, uzmanlar tarafından daha hızlı veya C/C++ eşdeğerleriyle aynı şekilde çalışacak şekilde tasarlanmış ve optimize edilmiştir.

Dil Açıklama

MATLAB, matris tabanlı veri yapıları, geniş bir işlev yelpazesi, entegre bir geliştirme ortamı, nesne yönelimli yetenekler ve diğer programlama dillerinde yazılmış programlara arayüzler içeren üst düzey bir programlama dilidir.

MATLAB'da yazılmış iki tür program vardır - işlevler ve betikler. Fonksiyonlar, ara hesaplama sonuçlarını ve değişkenleri depolamak için kendi çalışma alanlarının yanı sıra girdi ve çıktı argümanlarına sahiptir. Komut dosyaları ortak bir çalışma alanını paylaşır. Hem komut dosyaları hem de işlevler makine koduna yorumlanmaz ve metin dosyaları olarak kaydedilir. Ayrıca, önceden ayrıştırılmış programları - makinenin yürütülmesi için uygun bir biçimde işlenen işlevler ve komut dosyaları olarak adlandırılanları kaydetme fırsatı da vardır. Genel olarak, bu tür programlar normalden daha hızlı çalışır.

MATLAB dilinin ana özelliği, dilin yaratıcılarının Think vectorized sloganıyla ifade ettiği matrislerle çalışma konusundaki kapsamlı yetenekleridir.

Matematik ve Bilgisayar

MATLAB, kullanıcıya, özellikle matematiğin hemen hemen tüm alanlarını kapsayan, veri analizi için çok sayıda (birkaç yüz) işlev sağlar:
Matrisler ve lineer cebir - matris cebiri, lineer denklemler, özdeğerler ve vektörler, tekillikler, matris çarpanlara ayırma ve diğerleri.
Polinomlar ve enterpolasyon - polinomların kökleri, polinomlar üzerindeki işlemler ve bunların farklılaşması, enterpolasyon ve eğrilerin ekstrapolasyonu ve diğerleri.
Matematiksel istatistik ve veri analizi - istatistiksel fonksiyonlar, istatistiksel regresyon, dijital filtreleme, hızlı Fourier dönüşümü ve diğerleri.
Veri İşleme - çizim, optimizasyon, sıfır arama, sayısal entegrasyon (dörtgenlerde) ve diğerleri dahil olmak üzere bir dizi özel işlev.
Diferansiyel denklemler - diferansiyel ve diferansiyel cebirsel denklemleri çözme, gecikmeli diferansiyel denklemler, kısıtlamalı denklemler, kısmi diferansiyel denklemler ve diğerleri.
Seyrek matrisler, özel uygulamalarda kullanılan özel bir MATLAB veri sınıfıdır.
Tamsayı aritmetiği - MATLAB ortamında tamsayı aritmetik işlemleri gerçekleştirir.


algoritma geliştirme

MATLAB, nesne yönelimli programlama kavramlarını kullanan üst düzey olanlar da dahil olmak üzere algoritma geliştirmek için uygun araçlar sağlar. Hata ayıklayıcı ve profil oluşturucu dahil tüm gerekli IDE araçlarını içerir. Tamsayı veri türleriyle çalışma işlevleri, gerektiğinde mikrodenetleyiciler ve diğer uygulamalar için algoritmalar oluşturmayı kolaylaştırır.


Veri goruntuleme

MATLAB paketi, üç boyutlu olanlar, görsel veri analizi ve animasyonlu videolar oluşturma dahil olmak üzere grafikleri çizmek için çok sayıda işlev içerir.

Yerleşik geliştirme ortamı, düğmeler, giriş alanları ve diğerleri gibi çeşitli kontrollerle grafiksel kullanıcı arabirimleri oluşturmanıza olanak tanır. MATLAB Derleyici bileşenini kullanarak, bu grafik arayüzler bağımsız uygulamalara dönüştürülebilir.


Harici arayüzler

MATLAB paketi, diğer programlama dillerinde yazılmış harici rutinlere, Bileşen Nesne Modeli veya Dinamik Veri Değişimi teknolojileri aracılığıyla iletişim kuran verilere, istemcilere ve sunuculara ve doğrudan MATLAB ile iletişim kuran çevre birimlerine erişmek için çeşitli arabirimler içerir. Bu yeteneklerin çoğu MATLAB API olarak bilinir.


COM

MATLAB paketi, COM nesneleri (hem istemciler hem de sunucular) oluşturmanıza, değiştirmenize ve silmenize izin veren işlevlere erişim sağlar. ActiveX teknolojisi de desteklenmektedir. Tüm COM nesneleri, MATLAB paketinin özel bir COM sınıfına aittir. Otomasyon denetleyici işlevlerine sahip tüm programlar MATLAB'a bir Otomasyon sunucusu olarak erişebilir.


DDE

MATLAB paketi, Dinamik Veri Değişimi (DDE) teknolojisi aracılığıyla bu uygulamaların MATLAB verilerine erişmesinin yanı sıra diğer Windows uygulamalarına erişmesine izin veren işlevleri içerir. DDE sunucusu olabilen her uygulamanın kendi benzersiz tanımlayıcı adı vardır. MATLAB için bu isim Matlab'dır.


Ağ hizmetleri

MATLAB, web servislerinin yöntemlerini çağırma yeteneği sağlar. Özel bir işlev, web hizmeti API'sinin yöntemlerine dayalı bir sınıf oluşturur.

Matlab, web hizmetinin müşterisiyle, ondan gelen paketleri kabul ederek, işleyerek ve bir yanıt göndererek etkileşime girer. Aşağıdaki teknolojiler desteklenir: Basit Nesne Erişim Protokolü (SOAP) ve Web Hizmetleri Açıklama Dili (WSDL).


COM bağlantı noktası

MATLAB seri bağlantı noktası arabirimi, bir seri bağlantı noktası (COM bağlantı noktası) aracılığıyla bir bilgisayara bağlanan modemler, yazıcılar ve bilimsel ekipman gibi çevresel aygıtlara doğrudan erişim sağlar. Bir arabirim, seri bağlantı noktası için özel bir sınıf nesnesi oluşturarak çalışır. Bu sınıfın mevcut yöntemleri, seri bağlantı noktasına veri okumanıza ve yazmanıza, olayları ve olay işleyicilerini kullanmanıza ve bilgisayar diskine gerçek zamanlı olarak bilgi yazmanıza izin verir. Bu, deneyler, gerçek zamanlı simülasyonlar ve diğer uygulamalar için kullanışlıdır.


MEX dosyaları

MATLAB paketi, C ve Fortran dillerinde yazılmış harici uygulamalarla etkileşim için bir arayüz içerir. Bu etkileşim MEX dosyaları aracılığıyla gerçekleştirilir. MATLAB'dan C veya Fortran ile yazılmış alt programları paketin yerleşik fonksiyonlarıymış gibi çağırmak mümkündür. MEX dosyaları, MATLAB'da yerleşik yorumlayıcı tarafından yüklenebilen ve yürütülebilen dinamik bağlantı kitaplıklarıdır.


DLL

MATLAB genel DLL arabirimi, sıradan dinamik bağlantı kitaplıklarında bulunan işlevleri doğrudan MATLAB'dan çağırmanıza olanak tanır. Bu işlevlerin bir C arabirimi olmalıdır.

Ayrıca MATLAB, paket fonksiyonların C ile yazılmış harici uygulamalarda kullanılmasına izin veren C arayüzü üzerinden yerleşik fonksiyonlarına erişme yeteneğine sahiptir. Bu teknolojiye MATLAB'da C Motoru denir.


Araç kitleri

MATLAB için işlevselliğini artıran özel araç kutuları oluşturmak mümkündür. Araç takımları, belirli bir problem sınıfını çözmek için MATLAB'da yazılmış fonksiyon koleksiyonlarıdır. Mathworks, aşağıdakiler de dahil olmak üzere birçok alanda kullanılan araç takımları sağlar:
Sinyallerin, görüntülerin ve verilerin dijital olarak işlenmesi: DSP Araç Kutusu, Görüntü İşleme Araç Kutusu, Dalgacık Araç Kutusu, İletişim Araç Kutusu, Filtre Tasarım Araç Kutusu - sinyal işleme, görüntüler, dijital filtrelerin tasarımında çok çeşitli sorunları çözmenize izin veren bir dizi işlev ve iletişim sistemleri.
Kontrol sistemleri: Kontrol Sistemleri Araç Kutusu, µ-Analiz ve Sentez Araç Kutusu, Sağlam Kontrol Araç Kutusu, Sistem Tanımlama Araç Kutusu, LMI Kontrol Araç Kutusu, Model Öngörülü Kontrol Araç Kutusu, Model Tabanlı Kalibrasyon Araç Kutusu - dinamik sistemlerin analizini ve sentezini kolaylaştıran fonksiyon setleri, Sağlam kontrol, H∞-kontrol, LMI-sentezi, µ-sentezi ve diğerleri gibi modern kontrol algoritmaları dahil kontrol sistemlerinin tasarımı, simülasyonu ve tanımlanması.
Finansal Analiz: GARCH Araç Kutusu, Sabit Gelir Araç Kutusu, Finansal Zaman Serisi Araç Kutusu, Finansal Türev Araç Kutusu, Finansal Araç Kutusu, Veri Besleme Araç Kutusu - çeşitli finansal bilgileri hızlı ve verimli bir şekilde toplamanıza, işlemenize ve aktarmanıza olanak tanıyan işlevler seti.
Üç boyutlu dahil olmak üzere coğrafi haritaların analizi ve sentezi: Haritalama Araç Kutusu.
Deneysel verilerin toplanması ve analizi: Veri Toplama Araç Kutusu, Görüntü Toplama Araç Kutusu, Enstrüman Kontrol Araç Kutusu, Kod Oluşturucu Stüdyosu Bağlantısı - gerçek zamanlı da dahil olmak üzere deneyler sırasında elde edilen verileri kaydetmenize ve işlemenize olanak tanıyan işlev setleri. Çok çeşitli bilimsel ve mühendislik ölçüm ekipmanları desteklenmektedir.
Veri görselleştirme ve sunum: Sanal Gerçeklik Araç Kutusu - sanal gerçeklik teknolojileri ve VRML kullanarak etkileşimli dünyalar oluşturmanıza ve bilimsel bilgileri görselleştirmenize olanak tanır.
Geliştirme araçları: COM için MATLAB Builder, Excel için MATLAB Builder, MATLAB Derleyici, Filtre Tasarımı HDL Coder - MATLAB ortamından bağımsız uygulamalar oluşturmanıza olanak sağlayan işlevler kümesi.
Harici yazılım ürünleriyle etkileşim: MATLAB Rapor Üreticisi, Excel Bağlantısı, Veritabanı Araç Kutusu, MATLAB Web Sunucusu, ModelSim için Bağlantı - diğer programların onlarla çalışabilmesi için verileri çeşitli biçimlerde kaydetmenize olanak tanıyan işlevler kümesi.
Veritabanları: Veritabanı Araç Kutusu - veritabanlarıyla çalışmak için araçlar.
Bilimsel ve matematiksel paketler: Biyoinformatik Araç Kutusu, Eğri Uydurma Araç Kutusu, Sabit Nokta Araç Kutusu, Bulanık Mantık Araç Kutusu, Genetik Algoritma ve Doğrudan Arama Araç Kutusu, OPC Araç Kutusu, Optimizasyon Araç Kutusu, Kısmi Diferansiyel Denklem Araç Kutusu, Spline Araç Kutusu, İstatistik Araç Kutusu, RF Araç Kutusu - setleri genetik algoritmaların geliştirilmesi, kısmi türevlerdeki problemlerin çözülmesi, tamsayı problemleri, sistem optimizasyonu ve diğerleri dahil olmak üzere çok çeşitli bilimsel ve mühendislik problemlerinin çözülmesine izin veren özel matematiksel fonksiyonlar.
Sinir Ağları: Sinir Ağı Araç Kutusu - Sinir ağlarının sentezi ve analizi için araçlar.
Sembolik hesaplama: Symbolic Math Toolbox - Maple sembolik programıyla etkileşime girme yeteneğine sahip sembolik hesaplama araçları.

Yukarıdakilere ek olarak, diğer şirketler ve meraklılar tarafından yazılmış binlerce başka MATLAB araç takımı vardır.

Anlatım 3. MATLAB ortamında programlama.

1. M dosyaları. ................................................................ ................................................................ ................................................................

1.1. Editör'de çalışıyor M-dosyaları. ................................................................ ................................................................ ...

1.2. M-dosyalarının türleri. Program dosyası. ................................................................ ................................................................

1.3. Dosya işlevleri. ................................................................ ................................................................ ................................................

Dosya işlevleri bir giriş argümanı ile.......................................................................................

Dosya işlevleri çoklu giriş argümanları ile........................................................................

Dosya işlevleri birden fazla çıktı argümanı ile.....................................................................

1.4. Alt fonksiyonlar. ................................................................ ................................................................ ................................................

2. Programlama dilinin kontrol yapıları....................................................................

2.1. Döngü operatörleri..............................................................................................................................

Döngü için. ................................................................ ................................................................ ................................................

Döngü sırasında. ................................................................ ................................................................ ................................................

2.2. Şube operatörleri....................................................................................................................

koşullu operatör Eğer. ................................................................ ................................................................ ................................

Anahtar deyimi. ................................................................ ................................................................ ................................

2.3. Break, Continue ve return deyimleri. ................................................................ ................................................

2.4. MATLAB'da rasyonel programlama teknikleri........................................................

Birçok matematiksel sistem, kullanıcının problemlerini çok az programlama ile veya hiç programlama ile çözeceği varsayımıyla oluşturulmuştur. Ancak, böyle bir yolun sakıncaları olduğu ve genel olarak kusurlu olduğu en başından belliydi. Birçok görev, algoritmalarının yazılmasını basitleştiren ve bazen ikincisini oluşturmak için yeni yöntemler açan gelişmiş programlama araçları gerektirir.

Bir yandan MATLAB, daha önce oldukça karmaşık programlar hazırlamak için gerekli olan birçok pratik sorunu başarıyla çözen çok sayıda yerleşik operatör ve işlev (bin'e yaklaşan) içerir. Örneğin, bunlar matrisleri ters çevirme veya aktarma, türev veya integral değerlerini hesaplama vb. Gibi işlevlerdir. Sistemin genişleme paketlerini dikkate alarak bu tür işlevlerin sayısı zaten binlerce kişiye ulaşır ve sürekli artıyor. Ancak öte yandan, başlangıcından bu yana MATLAB, teknik hesaplamalar için güçlü bir matematik odaklı programlama dili olarak oluşturulmuştur. yüksek seviye. Ve birçoğu, haklı olarak, sistemin yeni, en karmaşık matematik problemlerini çözmek için uygulama olasılığını gösteren önemli bir avantajı olarak gördü.

MATLAB, BASIC'e benzeyen bir giriş diline sahiptir (Fortran ve Pascal dokunuşuyla). Sistemde program yazmak gelenekseldir ve bu nedenle çoğu bilgisayar kullanıcısına aşinadır. Ayrıca sistem, kullanıcıya aşina olan herhangi bir metin düzenleyiciyi kullanarak programları düzenlemeyi mümkün kılar. Ayrıca bir hata ayıklayıcı ile kendi editörüne sahiptir. MATLAB sistem dili, matematiksel hesaplamaları programlama açısından, herhangi bir evrensel üst düzey programlama dilinden çok daha zengindir. Nesne yönelimli ve görsel programlama dahil olmak üzere neredeyse tüm bilinen programlama araçlarını uygular. Bu, deneyimli programcılara kendilerini ifade etmeleri için geniş fırsatlar sunar.

1. M dosyaları.

V Önceki derslerde, komut satırına birkaç komut yazmanız gereken oldukça basit örneklere baktık. Daha karmaşık görevler için komutların sayısı artar ve komut satırında çalışmak verimsiz hale gelir. Komut geçmişini kullanma,

ortam değişkenlerini kaydetme veya günlük içeren bir günlük tutma ihmal edilebilir

iş verimliliğini artırmak. Etkili bir çözüm, çalışma ortamından veya editörden çalıştırılabilen programlar (M-files) şeklinde kendi algoritmalarınızı tasarlamaktır. MATLAB'daki yerleşik M-dosya düzenleyicisi, yalnızca programın metnini yazıp tamamen veya kısmen çalıştırmanıza değil, aynı zamanda algoritmada hata ayıklamanıza da izin verir. M dosyalarının ayrıntılı bir sınıflandırması aşağıda verilmiştir.

1.1. M dosyalarının düzenleyicisinde çalışın.

M-dosyalarını hazırlamak, düzenlemek ve hata ayıklamak için özel bir çok pencereli düzenleyici kullanılır. Tipik bir Windows uygulaması gibi tasarlanmıştır. Düzenleyici, komut satırından edit komutuyla veya ana menüdeki komutla Dosya | Yeni | M-dosyası. Bundan sonra, editör penceresinde kendi dosyanızı oluşturabilir, hata ayıklamak ve başlatmak için araçları kullanabilirsiniz. Dosyayı çalıştırmadan önce, Dosya | Editör menüsünde farklı kaydedin.

Şekil 1, düzenleyici / hata ayıklayıcı penceresini göstermektedir. Dosyanın hazırlanan metni (bu en basit ve MATLAB programlama dilindeki ilk programımızdır) diske yazılabilir. Bunu yapmak için, belirtilen ada sahip bir dosya yazmak için standart bir Windows penceresi kullanan Farklı Kaydet komutunu kullanın. M-dosyasının adının benzersiz olması gerektiğine ve dosya adı gereksiniminin MATLAB ortam değişken adlarıyla aynı olduğuna dikkat edin. Dosya diske yazıldıktan sonra, araç çubuğundan veya Hata Ayıklama menüsünden Çalıştır komutunu çalıştırabilir veya ., m-dosyasını yürütmek için.

İlk bakışta, editör/hata ayıklayıcı, kullanıcı-MATLAB zincirinde sadece fazladan bir bağlantı gibi görünebilir. Gerçekten de, dosyanın metni sistem penceresine girilebilir ve aynı sonucu alabilir. Ancak gerçekte editör/hata ayıklayıcı önemli bir rol oynar. Komut modunda çalışmaya eşlik eden çok sayıda "kabuk" olmadan bir m dosyası (program) oluşturmanıza olanak tanır. Böyle bir dosyanın metni, birçok kullanıcı hatasının belirlendiği ve ortadan kaldırıldığı kapsamlı bir sözdizimi kontrolüne tabi tutulur. Böylece editör, dosyanın sözdizimsel kontrolünü sağlar.

Düzenleyicinin başka önemli hata ayıklama araçları vardır - dosya metninde kesme noktaları adı verilen özel etiketler ayarlamanıza olanak tanır. Bunlara ulaşıldığında, hesaplamalar duraklatılır ve kullanıcı, hesaplamaların ara sonuçlarını değerlendirebilir (örneğin, değişkenlerin değerleri), döngülerin doğruluğunu kontrol edebilir, vb. Son olarak, editör yazmanıza izin verir. metin formatında bir dosya oluşturun ve çalışmanızı MATLAB dosya sisteminde ölümsüzleştirin.

Düzenleyici / hata ayıklayıcı ile çalışmanın rahatlığı için, içindeki program satırları sıralı olarak numaralandırılmıştır. Editör çok pencerelidir. Her programın penceresi bir sekme olarak tasarlanmıştır. Hata ayıklayıcı düzenleyici, değişkenlerin değerlerini görüntülemeyi kolaylaştırır. Bunu yapmak için, fare imlecini değişken adına getirin ve basılı tutun - değişkenin adı ve değeri ile birlikte bir araç ipucu görünecektir.

M-dosya düzenleyicisinin çok kullanışlı bir özelliği, bazı komutların yürütülmesi. Bunu yapmak için, içerik menüsünden veya Metin ana menüsünden Seçimi Değerlendir komutunu veya sadece fonksiyon tuşunu kullanın. seçilen program metnini yürütmenize izin verir.

Pirinç. 1. M dosyaları düzenleyicisinin penceresi.

1.2. M dosyalarının türleri. Program dosyası.

MATLAB'de iki tür M dosyası vardır: Bir dizi komut içeren Komut Dosyası M Dosyaları ve kullanıcı tanımlı işlevleri tanımlayan İşlev M Dosyaları.

Dosya programları, M dosyalarının en basit türüdür. Girdi veya çıktı argümanları yoktur ve üretim ortamında var olan değişkenler üzerinde çalışırlar veya yeni değişkenler oluşturabilirler. Bir önceki bölümü okuduğunuzda mydemo program dosyasını yazmışsınız. Program dosyasında bildirilen tüm değişkenler, yürütüldükten sonra üretim ortamında kullanılabilir hale gelir. Şekil 1'deki listede gösterilen mydemo program dosyasını çalıştırın. Çalışma Alanı penceresine gidin ve M dosyasına girilen tüm değişkenlerin çalışma alanında göründüğünden emin olun. M dosyasının yürütülmesi sırasında oluşturulan tüm değişkenler, tamamlandıktan sonra çalışma ortamında kalır ve diğer dosya programlarında ve komut satırından yürütülen komutlarda kullanılabilir.

Dosya programı iki şekilde başlatılabilir.

1. Yukarıda açıklandığı gibi M-dosya düzenleyicisinden.

2. Komut satırından veya başka bir dosya-program, bu durumda M-dosyasının adı (uzantısız) komut olarak kullanılır. İkinci yöntemin kullanımı, özellikle oluşturulan dosya programı daha sonra tekrar tekrar kullanılacaksa çok daha uygundur. Aslında oluşturulan M dosyası, MATLAB'ın anlayacağı bir komut haline gelir.

Tüm grafik pencerelerini kapatın ve komut satırına mydemo yazın, mydemo.m program dosyasının komutlarına karşılık gelen bir grafik penceresi görünür. MATLAB mydemo komutunu girdikten sonra aşağıdaki işlemleri gerçekleştirir.

1. Girilen komutun bir isim olup olmadığını kontrol eder tanımlanan değişkenlerden herhangi biri

v çalışma ortamı. Bir değişken girilirse, değeri görüntülenir.

2. Herhangi bir değişken girilmezse, MATLAB yerleşik fonksiyonlar arasında girilen komutu arar. Komut yerleşik bir işlev olduğu ortaya çıkarsa, yürütülür.

3. Değişken olmayan ve yerleşik olmayan bir fonksiyon girilirse, MATLAB aramaya başlar. Komutun adı ve m uzantısına sahip M dosyası. Arama ile başlar geçerli dizin(Geçerli Dizin); içinde bir M dosyası bulunamazsa, MATLAB arama yolunda (Yol) ayarlanan dizinlere bakar. (Geçerli dizini ayarlamak için araç çubuğundaki aynı adla seçim penceresini veya cd komutunu kullanabilirsiniz. Arama yolları kullanılarak ayarlanır.

Dosya menüsündeki Yolu Ayarla komutunu kullanarak veya addpath komutunu kullanarak).

Yukarıdaki eylemlerin hiçbiri başarıya yol açmadıysa, örneğin bir hata yaparsanız komut penceresinde bir mesaj görüntülenir.

MATLAB arama dizisi, bir M-dosyasına kaydederken kendi program dosyanızı doğru bir şekilde adlandırmanın çok önemli olduğunu gösterir. İlk olarak, adı MATLAB'deki mevcut fonksiyonların adıyla aynı olmamalıdır. Mevcut fonksiyonu kullanarak bir ismin alınıp alınmadığını öğrenebilirsiniz.

İkinci olarak, dosya adı, bir ifade girerken MATLAB tarafından hata olarak yorumlanabilecek karakterlere sahip bir kelimede bir rakam, "+" veya "-" işaretleri ile başlamamalıdır. Örneğin, M dosyasını 5prog.m program dosyasıyla adlandırırsanız, düzenleyici menüsünden başlattığınızda veya bir hata mesajı alın. Bu şaşırtıcı değildir, çünkü MATLAB prog ile aritmetik ifadeyi değerlendirmek için 5 + prog (veya 5, prog) olmasını bekler (veya prog satır vektörüne ilk eleman olarak 5 ekleyin). Bu nedenle, doğru ad prog5.m (veya en azından p5rog.m) olacaktır, ancak yalnızca bir harfle başlamalıdır.

Bir M-dosyasının vurgulanmış komutlarını (tüm komutlar vurgulanabilir) kullanarak yanlış bir adla çalıştırırsanız, lütfen unutmayın. , o zaman hata olmayacak. Aslında, komut satırından çağrılmasından farklı olmayan ve bir dosya programının çalışmasından farklı olmayan komutların sıralı yürütülmesi gerçekleşir.

Bir dosya programının adını belirtirken, ilk bakışta anlaşılmaz sonuçlara yol açan başka bir hata çok yaygındır: program yalnızca bir kez başlatılır. Yeniden başlatma programı yürütmez. Bu duruma, mydemo.m dosyasına kaydettiğiniz Liste 5.1'deki örnek dosya programını kullanarak bakalım. Dosyayı x.m olarak yeniden adlandırın, ardından tüm çalışma alanı değişkenlerini Çalışma Alanı Değişken Tarayıcısı penceresinden veya komut satırından kaldırın:

>> hepsini temizle

Program dosyasını, örneğin düzenleyiciden düğmesine basarak yürütün. ... İki çizelge içeren bir grafik penceresi görünür ve iyiye işaret etmez. Şimdi grafik penceresini kapatın ve programı yeniden başlatın. Grafik penceresi artık oluşturulmaz, ancak x dizisinin değerleri, yukarıdaki MATLAB arama algoritmasının ilk paragrafına göre komut penceresinde görüntülenir. Dosya programının adını seçerken bu koşullar dikkate alınmalıdır. Aynı derecede önemli bir soru da MATLAB arama algoritmasının üçüncü noktası olan geçerli dizin ve arama yolları ile ilgilidir. Tipik olarak, kendi M dosyalarınız kullanıcının dizinlerinde saklanır. MATLAB'ın onları bulması için, M dosyalarının konumunu gösteren yolları ayarlamanız gerekir.

1.3. Dosya işlevleri.

Yukarıdaki dosya programları bir MATLAB komutları dizisidir; girdi ve çıktı argümanları yoktur. Hesaplama problemlerini çözmek ve kendi uygulamalarınızı MATLAB'da yazmak için, genellikle gerekli işlemleri girdi argümanlarıyla gerçekleştiren ve sonucu çıktı argümanlarında döndüren dosya fonksiyonlarını programlamanız gerekir. Girdi ve çıktı argümanlarının sayısı çözülmekte olan probleme bağlıdır - sadece bir girdi ve bir çıktı argümanı, her ikisinden birkaçı veya sadece girdi argümanları olabilir.

Giriş ve çıkış argümanlarının olmaması mümkündür. Bu bölüm, dosya işlevleriyle nasıl çalışacağınızı anlamanıza yardımcı olacak birkaç basit örnek içermektedir. Dosya programları gibi dosya işlevleri M-dosya düzenleyicisinde oluşturulur.

Bir giriş bağımsız değişkeni ile dosya işlevleri.

Hesaplamalarda sıklıkla bir işlev değeri kullanmanız gerektiğini varsayalım:

- xx 2

Bir kez bir dosya işlevi yazmak ve ardından belirli bir argüman için bu işlevi hesaplamak için gerekli olan her yerde onu çağırmak mantıklıdır. Bunu yapmak için M-dosya düzenleyicisinde yeni bir dosya açın ve metni yazın:

f fonksiyonu = eğlencem (x)

İlk satırdaki işlev sözcüğü, bu dosyanın bir işlev dosyası içerdiğini belirtir. İlk satır fonksiyon başlığı, işlevin adını ve giriş ve çıkış argümanlarının listelerini içerir. Giriş argümanları, fonksiyon adından sonra parantez içinde yazılır. Örneğimizde, yalnızca bir girdi argümanı vardır, x. f çıktı bağımsız değişkeni, işlev başlığındaki eşittir işaretinin solunda görünür. Dosya fonksiyonunun adını seçerken, MATLAB'de kullanılan isimlerle çakışma olmamasına dikkat edilmelidir. Benzer bir soruyu yukarıda tartıştık: bir program dosyasını benzersiz bir ada sahip bir dosyaya nasıl kaydedebiliriz. Dosya işlevinin adını belirtmek için var olan işleve yapılan çağrıya dayalı olarak aynı yaklaşımı kullanabilirsiniz.

Başlıktan sonra, dosya işlevinin gövdesi yerleştirilir - girdi değişkenlerinden çıktı değişkenlerinin değerini elde etmek için algoritmayı uygulayan bir veya birkaç operatör (bunlardan oldukça fazla olabilir). Örneğimizde, algoritma basittir - verilen bir x için aritmetik bir ifade hesaplanır ve sonuç f'ye yazılır.

Şimdi dosyayı çalışma dizinine veya MATLAB tarafından bilinen başka bir yere kaydetmeniz gerekiyor. Dosya menüsünün Kaydet veya Farklı Kaydet ... öğelerini seçtiğinizde, varsayılan dosya adı myfun işlevinin adıyla aynıdır. İşlev dosyasını bu önerilen adla kaydetmelisiniz. Artık oluşturulan işlev, örneğin komut satırından yerleşik sin, cos ve diğerleri ile aynı şekilde kullanılabilir:

>> y = eğlencem (1.3) y =

myfun dosya fonksiyonunu oluştururken, atama ifadesini noktalı virgülle sonlandırarak f'nin komut penceresine çıkışını bastırdık. Bu yapılmazsa, y = myfun (1.3) çağrılırken görüntülenecektir. Kural olarak, bir dosya işlevi içindeki komut penceresine ara hesaplama sonuçlarının çıktısını vermekten kaçınmak daha iyidir.

Önceki örnekte gösterilen dosya işlevinin önemli bir dezavantajı vardır. Bir diziden fonksiyon değerlerini hesaplamaya çalışmak, yerleşik fonksiyonlarda olduğu gibi bir değerler dizisinden ziyade bir hata ile sonuçlanır.

>> x =;

>> y = eğlencem (x)

??? ==> kullanılırken hata ^ Matris kare olmalıdır.

==> C: \ MATLAB6p5 \ work \ myfun.m'de hata

2. satırda ==> f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 0.1));

Açıkçası, bu hatayı önlemek için eleman bazında işlemleri kullanmanız gerekir. Özellikle fonksiyonumuzun doğru çalışması için fonksiyonun metni aşağıdaki biçimde yeniden yazılmalıdır:

f fonksiyonu = eğlencem (x)

f = exp (-x) * sqrt ((x. ^ 2 + 1) ./ (x. ^ 4 + 0.1));

Şimdi myfun işlevinin argümanı bir sayı veya bir vektör veya bir değerler matrisi olabilir, örneğin:

>> x =;

>> y = eğlencem (x)

myfun işlevinin çağrılmasının sonucunun yazıldığı y değişkeni, otomatik olarak gerekli boyutta bir vektör olur.

Fonksiyonların kullanımına bir örnek verelim. Bir dosya programı kullanarak veya komut satırından myfun işlevini bir segmente çizeriz:

>> x = 0: 0,5: 4;

>> y = eğlencem (x);

>> arsa (x, y)

MATLAB kullanarak hesaplama problemlerini çözmek, eldeki göreve karşılık gelen dosya fonksiyonlarını programlayabilmenizi gerektirir (örneğin, bir diferansiyel denklem sisteminin veya bir integralin sağ tarafı).

Şimdi, dosya işlevlerini kullanmanın matematiksel işlevleri görselleştirmeyi nasıl kolaylaştırdığına dair basit bir örneğe bakacağız. Şimdi arsa kullanarak bir arsa çizdik. y vektörünü hesaplamak için myfun çağırmanın gerekli olmadığını unutmayın - bunun için hemen bir ifade yazabilir ve ardından bir çift x ve y girişi belirtebilirsiniz. Bizim emrimizde olan myfun dosya işlevi, dosya işlevimizin adını (kesme işareti içinde) veya bir işaretçiyi (işlev adının önünde @ operatörü ile) ve sınırlarını belirtmesi gereken özel fplot işlevini çağırmamıza izin verir. grafiği çizmek için segmentin (iki elemanlı bir vektörde)

>> fplot ("myfun",)

>> fplot (@myfun,)

Argümanın adımını otomatik olarak seçmek için fplot işlevinin algoritması eklenmelidir, bu da kullanıcıya verilerin iyi bir görüntüsünü veren, incelenen işlevin hızlı değişim alanlarında onu azaltır.

Birden çok giriş bağımsız değişkenine sahip dosya işlevleri.

Birkaç girdi argümanıyla dosya fonksiyonları yazmak, pratik olarak bir argüman durumundakiyle aynıdır. Tüm girdi bağımsız değişkenleri virgülle ayrılmış bir listeye yerleştirilir. Aşağıdaki örnek, üç boyutlu bir noktanın yarıçap vektörünün uzunluğunu hesaplayan bir dosya işlevi içerir.

boşluklar x 2 + y 2 + z 2.

fonksiyon r = yarıçap3 (x, y, z) r = sqrt (x. ^ 2 + y. ^ 2 + z. ^ 2);

>> R = yarıçap3 (1, 1, 1)

MATLAB, birden çok bağımsız değişkene sahip işlevlere ek olarak, birden çok değer döndüren, yani birden çok çıktı bağımsız değişkenine sahip işlevler oluşturmanıza olanak tanır.

Birden çok çıktı bağımsız değişkenine sahip dosya işlevleri.

Birden çok çıktı bağımsız değişkenine sahip dosya işlevleri, birden çok değer döndüren işlevleri değerlendirmek için kullanışlıdır (matematikte bunlara vektör işlevleri denir). Çıktı bağımsız değişkenleri, virgülle ayrılmış olarak çıktı bağımsız değişkenleri listesine eklenir ve listenin kendisi köşeli parantez içine alınır. Aşağıdaki örnek, saniye cinsinden bir zamanı saat, dakika ve saniyeye dönüştürmek için bir hms dosyası işlevi sağlar:

fonksiyon = hms (sn) saat = kat (sn / 3600);

Birkaç çıktı argümanıyla dosya işlevlerini çağırırken, sonuç uygun uzunlukta bir vektöre yazılmalıdır:

>> = hms (10000) H =

Bu işlevi kullanırken çıktı parametrelerini açıkça belirtmezseniz, işlevi çağırmanın sonucu yalnızca ilk çıktı bağımsız değişkeni olacaktır:

>> hms (10000) an =

Çıktı argümanları listesi boşsa, yani başlık şuna benziyorsa: function myfun (a, b) veya function = myfun (a, b),

daha sonra dosya işlevi herhangi bir değer döndürmez. Bu işlevler bazen de yararlıdır.

MATLAB fonksiyonlarının bir başka kullanışlı özelliği de help fplot gibi help komutunu kullanarak onlar hakkında bilgi alma yeteneğidir. Bu özellik ile yorum satırları kullanılarak özel dosya işlevleri de sağlanabilir. Help komutuyla, başlıktan sonra ve işlevin gövdesinden önceki tüm yorum satırları veya boş bir satır komut penceresinde görüntülenir. Örneğin, işlevimiz için bir ipucu oluşturabilirsiniz:

fonksiyon = hms (sn) % hms - saniyeyi saat, dakika ve saniyeye çevir

% hms işlevi saniyeleri çevirmek içindir

% saat dakika ve saniye cinsinden.

% = hms (sn)

saat = kat (sn / 3600);

dakika = kat ((sn - saat * 3600) / 60); saniye = sn - saat * 3600 - dakika * 60;

1.4. Alt fonksiyonlar.

Başka bir tür işlev düşünelim - alt işlevler. Alt işlevlerin kullanımı, algoritmanın bir bölümünün, metni ana işlevle aynı dosyada bulunan bağımsız bir işleve ayrılmasına dayanır. Bir örneğe bakalım.

basit işlev;

% Temel fonksiyon a = 2 * pi;

fl = f (1.1, 2.1) f2 = f (3.1, 4.2) -a f3 = f (-2.8, 0.7) + a

fonksiyon z = f (x, y)% Alt fonksiyon

z = x ^ 3 - 2 * y ^ 3 - x * y + 9;

İlk basit fonksiyon ana işlev simple.m'de, kullanıcı örneğin komut satırından basit bir çağrı yaptığında yürütülen ifadelerdir. Ana işlevde bir alt işleve yapılan her çağrı, alt işlevde yer alan ifadelere bir geçişe ve ardından ana işleve geri dönüşe yol açar.

Bir fonksiyon dosyası, kendi giriş ve çıkış parametreleri ile bir veya birkaç alt fonksiyon içerebilir, ancak sadece bir ana fonksiyon olabilir. Yeni bir alt fonksiyonun başlığı da bir öncekinin sonunun bir işaretidir. Ana işlev, alt işlevlerle yalnızca giriş ve çıkış parametrelerini kullanarak iletişim kurar. Alt fonksiyonlarda ve ana fonksiyonda tanımlanan değişkenler yereldir, fonksiyonlarının içinde bulunurlar.

Bir M dosyasındaki tüm işlevler için ortak olan değişkenlerin olası bir kullanımı, bu değişkenleri ana işlevin ve alt işlevin başında, boşlukla sınırlandırılmış değişken adları listesiyle global kullanarak global olarak bildirmektir.

2. Programlama dilinin kontrol yapıları.

Önceki iki bölümde oluşturduğunuz dosya işlevleri ve dosya programları, programların en basit örnekleridir. İçlerinde bulunan tüm MATLAB komutları yürütülür. sürekli. Daha birçok ciddi sorunu çözmek için, eylemlerin döngüsel olarak tekrarlandığı ve belirli koşullara bağlı olarak programın çeşitli bölümlerinin yürütüldüğü programlara ihtiyaç vardır. Bu bölüm, hem dosya programları hem de dosya işlevleri yazılırken kullanılabilen MATLAB programlama dilinin kontrol yapılarını açıklar.

2.1. Döngü operatörleri.

Benzer ve tekrarlayan eylemler, for ve while döngüsü deyimleri kullanılarak gerçekleştirilir. For döngüsü, belirli sayıda tekrarlayan eylemi gerçekleştirmek için tasarlanmıştır, bir süre - sayısı önceden bilinmeyen eylemler için, ancak döngüye devam etme koşulu bilinir.

Döngü için.

for kullanımı şu şekilde yapılır:

sayım için = başlangıç: adım: son

MATLAB komutları

Burada count döngü değişkenidir, start başlangıç ​​değeridir, final son değerdir, astep ise döngüye yapılan her bir sonraki çağrıda sayımın artırıldığı adımdır. Sayı, finalden büyük olduğunda döngü sona erer. Döngü değişkeni yalnızca tam sayıları değil, aynı zamanda herhangi bir işaretin gerçek değerlerini de alabilir. For döngüsünün kullanımına bir örnek verelim. x için bir eğriler ailesinin grafiklerini göstermemiz istensin.

y (x, a) = e - ax sinx fonksiyonu tarafından verilir, a parametresine bağlı olarak, -0.1 ile arasındaki parametre değerleri için

0,02'lik bir adımla 0,1. Elbette, y (x, a)'yı sırayla hesaplayabilir ve grafiklerini farklı a değerleri için çizebilirsiniz, ancak for döngüsünü kullanmak çok daha uygundur. Program dosyasının metni:

şekil% grafiksel bir pencere oluştur

x = 0: pi / 30: 2 * pi; % argüman değerleri vektörünü hesapla

% bir döngüde parametre değerleri üzerinde yineleme a = -0.1 için: 0.02: 0.1

% mevcut değer için fonksiyon değerlerinin vektörünün hesaplanması ...

parametre

y = exp (-a * x) * günah (x); % fonksiyon grafiği ekle beklet

arsa (x, y) sonu

Bu dosya programının yürütülmesinin bir sonucu olarak, Şekil 2'de gösterilen bir grafik pencere görünecektir. 2, gerekli eğri ailesini içerir.

Pirinç. 2. Bir eğri ailesi.

For döngüleri iç içe olabilir, iç içe döngülerin değişkenleri farklı olmalıdır. İç içe döngüler, matrisleri doldurmak için kullanışlıdır. Hilbert matrisi oluşturmaya bir örnek:

a = sıfırlar (n); i = 1: n için

j = 1: n için

a (i, j) = 1 / (i + j-1);

Bu bölümün sonunda, sabit bir adımla gerçek bir döngü sayacı ayarlama yeteneğinin yanı sıra, for döngüsünü oldukça evrensel kılan for döngüsünün bir özelliğine daha dikkat çekiyoruz. Bir döngü değişkeni için değerler olarak bir dizi değer kullanılabilir:

saymak için = A

MATLAB komutları

A bir satır vektörüyse, sayma işlemi döngüye her girdiğinde öğelerinin değerini sırayla alır. İki boyutlu bir A dizisi olması durumunda, döngünün i. adımında, count bir A sütunu (:, i) içerir. Tabii ki, A bir sütun vektörüyse, döngü A sayısıyla yalnızca bir kez yürütülür.

For döngüsü, sınırlı sayıda eylem için kullanışlıdır. Daha esnek bir while döngüsünde uygulanabilen bilinmeyen sayıda tekrara sahip algoritmalar vardır.

Döngü sırasında.

while döngüsü, tekrar sayısının önceden bilinmediği ve belirli bir koşulun yerine getirilmesiyle belirlendiği durumda, aynı tür eylemlerin tekrarlarını düzenlemeye hizmet eder. Bir dizide günah (x)'in genişlemesine bir örnek düşünün:

x 2k + 1

S (x) = ∑ (- 1)

(2k + 1)!

k = 0

Tabii ki, sonsuza kadar toplamak mümkün olmayacak, ancak miktarı belirli bir doğrulukla, örneğin 10-10'da biriktirebilirsiniz. Açıkçası, bu durumda dizinin üye sayısı bilinmemektedir, bu nedenle for operatörünün kullanımı imkansızdır. Çıkış yolu, döngü koşulu yürütüldüğü sürece çalışan bir while döngüsü kullanmaktır:

while döngüsü tekrarlama koşulu

MATLAB komutları

V Bu örnekte, döngünün tekrarlanmasının koşulu, mevcut terimin modülünün

x 2k + 1 (2k + 1)! 10-10'dan fazla. Bir dizinin toplamını temel alarak hesaplayan mysin dosya işlevinin metni

Tekrarlama ilişkisi:

k - 1

2k (2k + 1)

fonksiyon s = mysin (x)

% Seri genişleme ile sinüs hesaplama

% Kullanım: y = mysin (x),-pi< х < pi

% k = 0 toplamının ilk teriminin hesaplanması k = 0;

% yardımcı değişkenin hesaplanması

abs (u)> 1.0e-10 k = k+1 iken;

u = -u * x2 / (2 * k) / (2 * k + 1); s = s + u;