Soru sorBelli şartları sağlayan model matris oluşturma
veli batmaz tarafından 3 yıl önce soruldu
function model=creatmodel()
Npop=100;
Nvar=8;
D=unifrnd(0.0254,0.6096,[Npop,Nvar]);
L=ones(1,Nvar).*1000;
V=unifrnd(1.5,2.5,[Npop,Nvar]); CHW=130; 
Q=V.*(pi().*D.^2)./4;
Hk=[Q./(0.2785.*CHW.*D.^(2.63))].^(1.851).*L;
for i=1:Npop
-Q(i,1)+Q(i,2)+Q(i,3)+0.028==0;
-Q(i,2)+Q(i,7)+0.028==0;
-Q(i,3)+Q(i,4)+Q(i,5)+0.033==0;
-Q(i,4)-Q(i,7)+Q(i,8)+0.075==0;
-Q(i,5)-Q(i,6)+0.092==0;
-Q(i,8)+Q(i,6)+0.056==0;
Hk(i,2)+Hk(i,7)-Hk(i,4)-Hk(i,3)==0;
Hk(i,4)+Hk(i,8)+Hk(i,6)-Hk(i,5)==0;
end
model.D=D;
model.L=L;
model.Q=Q;
model.V=V;
model.Hk=Hk;
end
 

merhaba yukarıda yazmış olduğum kod ile matlabda bir model matris oluşturmak istiyorum model oluşuyor fakat for döngüsü içindeki koşullar hiç dikkate alınmadan oluşuyor.
bunu daha başka nasıl yazabilirim.
Q ve Hk matrisinin yukarıda yazdığım koşulları sağlamasını istiyorum.
yardımcı olabilirseniz çok sevinirim. :) iyi günler

4 Cevap
En iyi cevap
veli batmaz tarafından 3 yıl önce cevaplandı

Hocam ben yanlış kodlamis olabilirim,  söyle aciklim size yapmak istediğimi 
100×8 lik rastgele bi D matrisi oluşturucam ama 
Q ve Hk da D ye bağlı oldukları için rastgele seçilen D matrisi elemanları Q ve Hk esitliklerini de sağla sin.

Q(i,1)+Q(i,2)+Q(i,3)+0.028==0
Bu eşitlikte misal Q matrisinin her satırının
2. Ve 3. Sütünundaki elemanları topla 1. Sütünü çıkar 0.028
Ekleyince sıfır olsun diğer esitliklerde aynı şekilde
Bu eşitlikleri sağlayan D matrisi elemanları seçmek istiyorum.

Özgür Yönetici tarafından 3 yıl önce cevaplandı

Merhaba, sorunuzu biraz daha açıklayabilir misiniz?
Kodunuzun içerisinde for döngüsünden önce Q değişkeni 100×8 boyutunda double sayılar içeren bir array olarak oluşmaktadır.
for döngüsünün içerisinde, 

-Q(i,1)+Q(i,2)+Q(i,3)+0.028==0;

bu satır ile eşitliğin doğru olup olmadığını kontrol edersiniz.
Örnek vererek açıklamam gerekirse;

-5+3+2+1==0; 

bu kod satırı +1==0 olacağından bize boolean türünde false(0) değerini döndürürdü.
Fakat,

 -5+3+2==0;

kod satırı olsaydı 0==0 olacağından bize boolean türünde true(1) değerini döndürürdü.

veli batmaz tarafından 3 yıl önce cevaplandı

Temel amacım belirlenen aralıkta D matris elemanlarını olusturmak. O eşitlikleri sağlayan elemanlar olmalı. Onu
Ben çok hakim olmadığım için programa belki if le olur. 
 

Özgür Yönetici tarafından 3 yıl önce cevaplandı

Sizin probleminiz belki birden çok bilinmeyenli denklem çözümüne uyarlanarak çözülebilir bunun için MATLAB symbolic toolbox kullanılabilir. Örnek vermem gerekirse;
x-2y+3z=7
2x+y+z=4
3x+2y-2z=-10
Bu 3 bilinmeyenli 3 denklem problemi MATLAB ile şu şekilde çözülür.

syms x y z
[x,y,z]=solve(x-2*y+3*z==7,2*x+y+z==4,-3*x+2*y-2*z==-10)

Sizin sorunuz için belki şu şekilde uyarlanabilir,
-Q(i,1)+Q(i,2)+Q(i,3)+0.028==0;
Q(i,1)=x
Q(i,2)=y
Q(i,3)=z
Sorunuz matrix şeklinde olduğu için ek olarak lisans Lineer Cebir dersinin konusu olan Ax=b matrix çözümü symbolic toolbox kullanmadan MATLAB ile manuel olarak çözülebilir.