Soru sor' conj' terimi
mob628 tarafından 3 yıl önce soruldu

Gğnaydın, Matlab da scara robotun  Ters Kinematik çözümünü yapmaya çalışırken, yaptığım matris işleminin sonucunu aldığımda "cos(conj(teta1)) " şeklinde devam eden ve aynı ifadenin sinüslüsünü de içeren birçok terimi olan sonuçla karşılaştım. işlem başında syms  ile teta1 , teta2, .. ile açıları ve L1, L2.. ve d1, d2.. ile de uzunlukları tanımlamıştım yani kompleks (Compleks ve Compleks conjuge ) bir sayısal değer yoktu. Bu ifadenin anlamı nedir? Bu açıya ne işlemi uygulamam gerekiyor? Yardımcı olursanız memnun olurum. Selam ve sevgilerimle…

2 Cevap
sayginer Yönetici tarafından 3 yıl önce cevaplandı

Merhaba,
Anladığım kadarı ile sembolik (syms) tanımlamalar ile hesaplamalarınızı çözmeye çalışıyorsunuz. Sembolik ifadeler kullanmamız aynen kağıt kalem ile yaptığımız işlemlerdeki tanımladığımız değişkenlere benzer. Sonucumuz da nümerik bir değer yerine sayılardan oluşur. Ancak bulduğunuz sonuçtaki değişkenlere değerlerini koyarak nümerik bir sonuca ulaşabiliriz. Yenine koyma işlemini subs fonksiyonu ile yapabiliriz. Aşağıdaki örneği inleyebilirsiniz.

syms x y %Degiskenlerimi sembolik olarak tanimlamam gerekiyor
F=(4.*(x.^6+y.^2)-1)+5*x*y^2; %Denklemimi yaziyorum
dx = diff(F,x) %Turevimi sembolik olarak tanimliyorum

x= 2; y= 4; %Degiskenlerimin degerlerini yaziyorum
subs(dx) %subs fonksiyonu ile degisken degerlerini turevi alinan sembolik ifadede yerine koyuyorum
sayginer Yönetici tarafından 3 yıl önce cevaplandı

Sorunuzu simdi daha iyi anlayabildigimi dusunuyorum. Bu problemde sembolik ifade (syms) kullandigimiz icin yaptigimiz cozumlemedeki skaler degerler varsayilan olarak karmasik seklinde tanimlanmis oluyor (bu sembolik cozum aracinin bir ozelligi). Diger bir deyis ile, ornegin: conj(theta1) dedigimizde sembolik cozum araci buradaki theta1 degerini gercek ve sanal parcalardan olusan bir ifade olarak algilayarak (theta = a + bi (i sanal kismi belitiyor)) conj fonksiyonu ile de bu ifadenin eslenigini size vermis oluyor (conj(theta) = a – bi). Bu karisikliktan kurtulmak icin asagidaki tanimlamalari fonksiyonunuzun basina ekleyebilirsiniz:

syms theta1 real %Gercek sayi olarak tanimladigimiz degiskenler
syms theta2 real %Gercek sayi olarak tanimladigimiz degiskenler
syms P x y %diger degiskenleriniz
% Yapmak istediginiz diger islemler

Dipce: Nacizane bir hatirlatmada bulunmak isterim, kullandiginiz cos(x) fonksiyonunuz varsayilan aci degerini hep radyan cinsinden hesaplamaktadir. Eger derece olarak hesaplamasini isterseniz ifadenizi cosd(x) seklinda yazmaniz gerekebilir.