Skip to content

Instantly share code, notes, and snippets.

@raziyeaydin
Created December 4, 2013 23:27
Show Gist options
  • Save raziyeaydin/7797481 to your computer and use it in GitHub Desktop.
Save raziyeaydin/7797481 to your computer and use it in GitHub Desktop.
function Uydurma
N = input('adim sayisini giriniz:\n');
x = input('x degerlerini giriniz:\n'); %kullanıcıdan i, xi, yi bilgilerini alan kısım
y = input('y degerlerini giriniz:\n');
fprintf('\n\n\n');
disp('...COZUM...');
fprintf('\n'); %soruda verilen xi ve yi değerlerinin kullanıcıdan girilmesini istediği yer.
fprintf('x matrisi:'); %xi sayıları dizi içerisinde ve aralarında virgül olacak şekilde yazılmalı. [-10,-5,-2,...]
disp(x);
fprintf('y matrisi:'); %yi sayıları dizi içerisinde ve aralarında virgül olacak şekilde yazılmalı. [100,88,75,...]
disp(y);
xT=0; %xi'lerin toplamının hesaplandığı kısım
for i=1:N
xT = xT + x(1,i);
end
%fprintf('toplam x');
%disp(xT);
yT=0; %yi'lerin toplamının hesaplandığı kısım
for i=1:N
yT = yT + y(1,i);
end
%fprintf('toplam y');
%disp(yT);
x2T=0; %(xi)^2 'lerin toplamının hesaplandığı kısım
for i=1:N
x2T = x2T + (x(1,i)^2) ;
end
%fprintf('toplam x^2');
%disp(x2T);
xyT=0; %(xi)*(yi) 'lerin toplamının hesaplandığı kısım
for i=1:N
xyT = xyT + (x(1,i)*y(1,i));
end
%fprintf('toplam x.y');
%disp(xyT);
bilinmeyen = input('kac bilinmeyen hesaplayacaksiniz: ');
if bilinmeyen == 2
% 2x2 'lik matris için
% #### 2x2 'likte c1 değerini yanlış hesaplıyor. ####
disp('matrisleri [A].[Ci]=[B] seklinde gosterecek olursak');
disp('[A] matrisi...');
M=[N,xT;xT,x2T];
disp(M);
disp('[B] matrisi...');
K=[yT;xyT];
disp(K);
detA= (M(1,1)*M(2,2)-M(1,2)*M(2,1));
%ekA=[M(2,2),(-1)*M(2,1);M(1,1),(-1)*M(1,2)] ;
ekA(1,1)= M(2,2) ;
ekA(1,2)=(-1)*M(2,1);
ekA(2,1)=M(1,1);
ekA(2,2)=(-1)*M(1,2) ;
for i=1:2
for k=1:2
tersA(i,k) = ekA(i,k)/detA ;
end
end
sonuc(1,1) = tersA(1,1)*K(1,1) + tersA(1,2)*K(2,1) ;
sonuc(2,1) = tersA(2,1)*K(1,1) + tersA(2,2)*K(2,1) ;
disp('bilinmeyen degerlerimiz...');
disp(sonuc);
end
if bilinmeyen == 3
% 3x3'lük matris için
% #### 3x3 'lükte bütün değerler doğru çıkıyor. ####
x3T=0; %(xi)^3 'lerin toplamının hesaplandığı kısım
for i=1:N
x3T = x3T +(x(1,i)^3);
end
%fprintf('toplam ((xi)^3)');
%disp(x3T);
x4T=0; %(xi)^4 'lerin toplamının hesaplandığı kısım
for i=1:N
x4T = x4T + ((x(1,i)^4));
end
%fprintf('toplam ((xi)^4)');
%disp(x4T);
x2yT=0; %((xi)^2)*(yi) 'lerin toplamının hesaplandığı kısım
for i=1:N
x2yT = x2yT + ((x(1,i)^2)*y(1,i)) ;
end
%fprintf('toplam (x^2)*y');
%disp(x2yT);
disp('matrisleri [A].[Ci]=[B] seklinde gosterecek olursak');
disp('[A] matrisi...');
M=[N,xT,x2T;xT,x2T,x3T;x2T,x3T,x4T];
disp(M);
disp('[B] matrisi...');
K=[yT;xyT;x2yT];
disp(K);
detA= M(1,1)*((M(2,2)*M(3,3))-(M(2,3)*M(3,2)))- M(1,2)*((M(2,1)*M(3,3))-(M(2,3)*M(3,1))) + M(1,3)*((M(2,1)*M(3,2))-(M(2,2)*M(3,1))) ;
ekA(1,1)=(+1)*(M(2,2)*M(3,3)-M(3,2)*M(2,3));
ekA(1,2)=(-1)*(M(2,1)*M(3,3)-M(2,3)*M(3,1));
ekA(1,3)=(+1)*(M(2,1)*M(3,2)-M(2,2)*M(3,1));
ekA(2,1)=(-1)*(M(1,2)*M(3,3)-M(1,3)*M(3,2));
ekA(2,2)=(+1)*(M(1,1)*M(3,3)-M(1,3)*M(3,1));
ekA(2,3)=(-1)*(M(1,1)*M(3,2)-M(1,2)*M(3,1));
ekA(3,1)=(+1)*(M(1,2)*M(2,3)-M(1,3)*M(2,2));
ekA(3,2)=(-1)*(M(1,1)*M(2,3)-M(1,3)*M(2,1));
ekA(3,3)=(+1)*(M(1,1)*M(2,2)-M(1,2)*M(2,1));
ekA = ekA.' ;
for i=1:3
for k=1:3
tersA(i,k)=ekA(i,k)/detA ;
end
end
sonuc(1,1) = tersA(1,1)*K(1,1)+ tersA(1,2)*K(2,1)+ tersA(1,3)*K(3,1) ;
sonuc(2,1) = tersA(2,1)*K(1,1)+ tersA(2,2)*K(2,1)+ tersA(2,3)*K(3,1) ;
sonuc(3,1) = tersA(3,1)*K(1,1)+ tersA(3,2)*K(2,1)+ tersA(3,3)*K(3,1) ;
disp('bilinmeyen degerlerimiz...');
disp(sonuc) ;
end
% #### regresyon katsayısı bulunacak ####
end
---ekran çıktısı---
adim sayisini giriniz:
12
x degerlerini giriniz:
[-10,-5,-2,0,8,12,19,25,30,33,36,40]
y degerlerini giriniz:
[100,88,75,70,73,77,82,88,85,81,75,78]
...COZUM...
x matrisi: -10 -5 -2 0 8 12 19 25 30 33 36 40
y matrisi: 100 88 75 70 73 77 82 88 85 81 75 78
kac bilinmeyen hesaplayacaksiniz: 3
matrisleri [A].[Ci]=[B] seklinde gosterecek olursak
[A] matrisi...
12 186 6208
186 6208 197184
6208 197184 6791956
[B] matrisi...
972
14719
499571
bilinmeyen degerlerimiz...
81.9592
-0.5325
0.0141
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment