Merhaba, aşağıdaki denklemi çözdürüp X kök değerlerini bulmak istiyorum fakat çözüm bulamıyorum." 'syms' requires Symbolic Math Toolbox" hatası alıyorum. Yazdığım kod doğru mu? Toolbox için crack veya free eklentiye nasıl ulaşabilirim.
clear
clc
syms X
T=30;
P=614.95;
A=10.44+1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
denklem=10^(A-B/(T+273.16))==P
cevap=solve(denklem,X)
Toolbox yükledim ve aşağıdaki kodu çözdürdüm fakat çok karışık sonuç verdi.
clear
clc
syms X
T=303.15;
P=487890;
A=10.44+1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
%log(P)=(A*(T5+273.16)-B)/(T+273.16)
denklem=A-B/T==log10(P)
cevap=solve(denklem,X)
Sonuç şu şekilde:
cevap =
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 1)
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 2)
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 3)
Kendim denklemi sadeleştirip aşağıdaki kodla çözdüğüm zaman sonuç veriyor fakat ben sonraki işlemler için T ve P değerlerini girerek otomatik sonuç bulmasını istiyorum.
clc;
clear;
clear all;
array_kokleri=[1 -4.1 5.343 -1.891]
roots(array_kokleri)
Kendim sadeleştirdiğim zaman doğru sonuç şu şekilde: 0.5654
ans =
1.7673 + 0.4703i
1.7673 – 0.4703i
0.5654 + 0.0000i
Merhaba, daha önce Symbolic Toolbox'ı kullanırken o hatayla hiç karşılaşmadım muhtelemen kurulum yaparken eksik yaptığınız kısımlar var bunun için kurulum yaparken Toolbox listesinden özellikle Symbolic Toolbox'ı kontrol edebilirsiniz.
MATLAB bazen karmaşık sonuçlar üretebiliyor bunun için simplify() komutunu kullanabilirsiniz.
Teşekkürler. Evet, yeniden kurulum yapınca düzeldi. simplify () komutunu ekledim fakat sonuç yine aşağıdaki gibi çıktı.
clear
clc
syms X
T=303.15;
P=487890;
A=10.44+1.767*X+0.9823*X^2+0.3627*X^3;
B=2013.8-2155*X+1540.9*X^2-197.7*X^3;
%log10(P)=(A*(T5+273.16)-B)/(T+273.16)
denklem=A-B/T==log10(P)
cevap=solve(denklem,X)
simplify(cevap)
ans =
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 1)
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 2)
root(z^3 – (248623151*z^2)/61530501 + (538133210*z)/61530501 – 8068885377321144016075/4329824083992498929664, z, 3)
Sadece T ve P değerlerini girerek sonucun aşağıdaki gibi çıkmasını sağlayamaz mıyız? Yukarıda açıkladığım gibi, kendim denklemi düzenlersem bu şekilde sonuç veriyor.
ans =
1.7673 + 0.4703i
1.7673 – 0.4703i
0.5654 + 0.0000i
Anladım muhtemelen sonuç karmaşık sayı içerdiği için simplify() komutu aynı sonucu veriyor. İsterseniz birde vpa() komutunu araştırabilirsiniz geçmiş tecrübelerimden hatırladığım kadarıyla (NET HATIRLAMAMAKLA BİRLİKTE) karmaşık sayı için vpa() fonksiyonunu kullanıyordum. Diğer sorunuza gelirsek başlangıçta T ve P değerleri de syms olarak tanımlandıktan sonra denklemi çözerken T ve P değerlerini girerek sonucu elde edebileceğinizi düşünüyorum. Bunun içinde Symbolic Toolbox bu linki inceleyebilirsiniz.
Aşağıdaki sonuçlar içinden karmaşık olmayan sonucu "0.56442814426920651499437013336015" nasıl seçebilirim.
ans =
0.56442814426920651499437013336015
1.7380705942539087062429038193103 – 0.52959930320943337254596941251597i
1.7380705942539087062429038193103 + 0.52959930320943337254596941251597i
Bu işlem için real() fonksiyonunu kullanabilirsiniz. Sanal kısım için imag() fonksiyonunu kullabilirsiniz. Ayrıca MATLAB' de virgülden sonraki basamak sayısını da gösterirken ayarlama yapılabildiğini de hatırlatmak isterim.
real() komutunu kullandığım zaman karmaşık sayıların da real kısımlarını alıyor. Fakat karmaşık sayılar sonuç olmadığı için sadece karmaşık olmayan sonuçlar benim için sonuç olarak alınması gerekiyor, ayrıca dediğiniz gibi virgülden sonrasını da 4 basamak olarak nasıl ayarlayabilirim. kısacası sonucumun 0.5644 olması gerekiyor.
real() komutu ile sonuç böyle çıkıyor
0.56442814426920651499437013336015
1.7380705942539087062429038193103
1.7380705942539087062429038193103