Merhaba,
Katsayılar Matrisi
Genel olarak n sayıda değişkenli m sayıda doğrusal denklemden oluşan şu doğrusal denklemler sistemi:
- A1,1x1 + A1,2x2 + … + A1,nxn = b1
- …
- Am,1x1 + Am,2x2 + … + Am,nxn = bm
çok kolayca bir denklemler matrisi olarak ifade edilebilir. Bunun için x yöneyi n değişken (‘x1, x2, …, xn) için bir n-sütun yöneyi (yani ‘n×1-matrisi); A matrisi mxn boyutlu katsayılar matrisi olarak adlandırılır.
Lineer denklemlerin katsayılar matrisini oluşturmak için kullanabileceğiniz harika bir fonksiyon olan equationsToMatrix fonksiyonunu biliyor musunuz?.
Vakit buldukça Matlab ile ilgili faydalı fonksiyonları örnekler eşliğinde sizlere anlatacağım. Anlatmamı istediğiniz bir fonksiyon olursa eğer yorum kısmından belirtebilirsiniz.
Bu yazımda equationsToMatrix fonksiyonunu inceleyeceğiz. Bu fonksiyon sayesinde kolaylıkla A*dx-L formatında ki A ve L katsayılarını alabiliyoruz.
Söz Dizimi
[A,b] = equationsToMatrix(eqns,vars)
[A,b] = equationsToMatrix(eqns)
A = equationsToMatrix(eqns,vars)
A = equationsToMatrix(eqns)
Açıklama
Burada eqns bizim denklemlerimizdir. Örn; x+2*y-z+10==0 tarzında bir denklem kullandığımızda vars yani katsayılarını almak istediğimiz değişkenler olarak x,y ve z yi belirlediğimizde;
A=[ 1 2 -1 ] şeklinde bir katsayılar matrisimiz oluşacaktır. Fakat değişkenlerimizi x,y olarak belirlediğimizde katsayılarımız. A=[ 1 2 ] şeklinde olacaktır.
Burada bir ayrıntıyı aktaracak olursak eğer, denklemimiz 2*x-5*y==0 olarak kabul edip değişkenlerimizi x,y,z olarak belirlediğimizde A=[ 2 -5 0 ] şeklinde bir katsayılar matrisi oluşacaktır. Bir başka ayrıntıda ise değişkenlerimizi x,z,y şeklinde sıraladığımızda A=[ 2 0 -5 ] gibi bir matris elde ediyoruz. Bu durumda değişkenin denklemde olması ve bu değişkenlerin sırası bizim için önem arz etmekte.
Örnek Kullanım
syms x y z;
[A, b] = equationsToMatrix([x + y - 2*z == 0, x + y + z == 1, 2*y - z + 5 == 0], [x, y, z])
A =
[ 1, 1, -2]
[ 1, 1, 1]
[ 0, 2, -1]
b =
0
1
-5
Ufak bir uygulama;
clc;
clear;
% Denklemimizi alıyoruz( örn: 2*x-5*y-3)
denklem=inputdlg('Denklem Giriniz');
syms x y;
denklema=sym(denklem{1});
[A,L]=equationsToMatrix([denklema==0],[x,y]);
Şimdilik bu kadar yeterli diye düşünüyorum.
Ayrıntılarını aktarmam gerekirse tabiki bir video ders olarak ekleyeceğim. Ayrıntılarına bakmak isterseniz eğer ;
bağlantısına göz atabilirsiniz.