MATLAB DÖNGÜLER
Bu gün ki yazımızda size Matlab programında Döngüleri anlatacağız.
Matlab Döngüler
İlk olarak, for döngü matris üzerinde satır işlemleri için örnekler ve yaklaşık bir ODE için Euler Yöntemi için tartışılmaktadır.For Döngüsü aşağıdaki, while döngüsü bir gösteri verilir.
Size vektörler ve matrisler oluşturmak ve nasıl onlara endeksi bilmek nasıl üstlenecek.
For Döngüleri
For Döngüsü bize belirli komutları tekrar sağlar. Eğer önceden belirlenmiş bir şekilde bazı eylemleri tekrarlamak istiyorsanız, for döngüsü kullanabilirsiniz. Matlab içinde döngü yapılarının tüm bu "için", veya "ise" ve kelime "son" ile hepsi uç olarak bir anahtar kelime ile başlamıştır.
For döngüsü ifadelerden bazıları kümesi etrafında yazılır ve nerede nerede baştan sona ve Matlab söylemek gerekir.Temel olarak, "için" deyiminde bir vektör vermek ve Matlab vektör her değeri için döngü olacaktır:
Örneğin, basit bir döngü dört kez, j bir döngü değişkeni değişen her sefer gidecek:
J = 01:04 için >>
j
son
J =
1
J =
2
J =
3
J =
4
>>
Matlab "için" denildi zaman bir vektör oluşturur, [01:04], ve j için vektör içinde her değeri alacaktır. Matlab "son" denildi sonra, döngü yürütmek ve tekrar edecektir. Her zaman ifade için j değerini güncelleyecektir ve döngü içinde ifadeleri tekrarlayın. Bu örnekte j her zaman değerini yazdırır.
Başka bir örnek, bir vektör tanımlamak ve daha sonra girişleri değiştirmek. Burada olsa adım ve her bir girişi değiştirin:
>> V = [01:03:10]
v =
1 4 7 10
J = 01:04 için >>
v (j) = j;
son
>> V
v =
1 2 3 4
Not, bu basit bir örnek olduğunu ve nasıl bir döngü işler için size göstermek için güzel bir gösteri olduğunu. Ancak, UYGULAMA BU YAPMAYIN!! Matlab bir dil olması ve böyle bir vektör döngü bir vektör değiştirmek için yavaş şekilde olduğunu. Ilk deyiminde kullanılan gösterim döngü çok daha hızlıdır.
Daha iyi bir örnek, bir matrisin satır işlemleri gerçekleştirmek istediğiniz biridir. : Bir matrisin ikinci sırada 'da başlayacak ve matris bir önceki satır çıkarma ve for döngüsü kısa sırayla yapabilirsiniz, aşağıdaki satırları bu işlemi tekrarlamak isterseniz
>> A = [[1 2 3] '[3 2 1] [2 1, 3]']
A =
1 2 3
2 2 1
3 1 3
>> B = A;
J = 02:03 için >>
A, (j, :) = A, (j, :) - A (J-1, :)
son
A =
1 2 3
1 -1 -1
3 1 3
A =
1 2 3
1 -1 -1
2 2 4
Şimdi döngüler kullanmak ve bir matris üzerinde satır işlemleri gerçekleştirebilirsiniz beri daha gerçekçi Örneğin, Gauss Eliminasyon sadece iki döngüler ve bir ifade kullanılarak yapılabilir:
J = 02:03 için >>, i = J: 3, B (i :) = B (i :) - B (J-1, :) * B (i, j-1) / B ( j-1, j-1) end end B = 1 3 2 0 -4 -3 3 1 3 B = 1 3 2 0 -4 -3 0 -8 -3 B = 1 3 2 0 -4 -3 0 0 3
Döngüler kullanışlı Başka bir örnek diferansiyel denklemlerin tahmindir. Aşağıdaki örnek DE y 'yaklaşan = x ^ 2-y ^ 2, y (0) Euler Yöntemi kullanılarak = 1,. İlk olarak, adım boyutu, s, tanımlanır. Bir kez, yapılan ızgara noktaları bulunur, ve bir yaklaşım bulunur. Yaklaşım sadece giriş y (h) x (j) 'de yaklaşım olduğu bir vektör, Y, bir.
>> S = 0.1;
>> X = [0: h: 2];
>> Y = 0 * x;
>> Y (1) = 1;
>> Boyutu (x)
ans =
1 21
I = 02:21 için >>
y (i) = y (I-1) + H * (x (i-1) ^ 2 - Y (I-1) ^ 2);
son
>> Arsa (x, y)
>> Arsa (x, y, 'git')
>> Arsa (x, y ', go', x, y)
While Döngüler
Eğer for döngüsü sevmiyorum, ayrıca bir sürü döngü kullanabilirsiniz. Bazı koşul olarak while döngüsü sürece komutları bir dizi tekrarlar. Bu daha verimli bir algoritma için yapabilirsiniz. Önceki örnekte yapmak için zaman adım sayısı 20 daha büyük olabilir. Böyle bir durumda for döngüsü sadece dizin için kullanılan vektör oluştururken çok fazla bellek kullanabilirsiniz. Algoritması uygulanması daha iyi bir yol aynı işlemleri tekrar ama sadece sürece alınan adım sayısı aşağıda bazı eşik. Bu örnekte DE y '= x-| y |, y (0) = 1, Euler Yöntemi kullanılarak yaklaşılır:
>> H = 0.001;
>> X = [0: h: 2];
>> Y = 0 * x;
>> Y (1) = 1;
>> I = 1;
>> Boyutu (x)
ans =
1 2001
>> Max (boyut (x))
ans =
2.001
>> While (i <max (boyut (x)))
Y (i +1) = y, (i) + H * (x (i)-ABS (y (i)));
i = i + 1;
son
>> Arsa (x, y, 'git')
>> Arsa (x, y)
0 yorum:
Yorum Gönder