Solve komutu

Başlatan pea, 03 Aralık 2011, 21:35:28

pea

Matlab öğrenmeye çalışıyorum ancak solve komutunda takıldım.
Q= (2*pi*1000*80)/((1/(250*0.029))+(log(0.029/0.039))+(log(R/0.039)/0.03)+(1/(12*R)))
Şeklinde bir denklem var.Q da 23241.
Buradan R'yi çekmem lazım.

solve ('(2*pi*1000*80)/((1/(250*0.029))+(log(0.029/0.039))+(log(R/0.039)/0.03)+(1/(12*R)))=23241','R)
yazınca

ans = 0.07243097978982206343809881473143 - 8.3121704498543223282959666612491*10^(-43)*i

Şeklinde bir sonuç alıyorum.Format short olmasına rağmen.
Bu sonucun Reel kısmı benim aradığım R değeri , ancak sonucun sanal kısmı nereden niye geliyor anlamadım.

İlk sorum ; format short olmasına rağmen neden virgülden sonra 32 basamaklı bir sonuç alıyorum?
İkinci sorum ise sanal kısım nereden geliyor ve nasıl kurtulabilirim?

Teşekkürler  :)

ferdem

Kompleks kısım 10^-43 çıkmış, 0 zaten. Matlabin neden kompleks kısım bulduğu nasıl hesapladığından anlaşılabilir. Sonucu
sonuc=round(100*(real(sonuc)))/100 şeklinde gösterin olsun bitsin. Yani real kısmı alıp 100 ile çarpıyoruz, round ile tamsayiya yuvarlayıp tekrar 100 e bölüyoruz.

pea

subs ve real komutlarıyla işi yarım yamalak da olsa hallettim.
Teşekkürler

pea

Yeni soru :
R dışındaki değişkenleri formüle yerleştirip Solve komutunu kullanmam gerekiyor.Ancak Solve komutu , formülde başka değişken varken sonuç veremiyor.
Yani ; formül şöyle :
(2*pi*L*deltat)/((1/(hic*iccap))+(log(iccap/cap)/kplastik)+(log(R/cap)/kyalitim)+(1/(hdis*R)))
Buradaki değişkenler input fonksiyonu ile girildi.Sadece R bilinmiyor ve Solve komutu ile bulunacak.
Ancak bu formülü direkt uygulayınca sonuç alamıyorum , sonuç bulunamadı diyor.
Solve'dan önce formülü işletirsem şöyle bir şey geliyor :

ans =

8635544130894091/(17179869184*((100*log((144115188075855872*R)/5726474923259005))/3 + 1/(12*R) - 5598313628169439/36028797018963968))

Matlab sayıları kendine göre genişletebildiği kadar genişletmiş.
Bunu da Solve'a atınca sonuç bulunamıyor.
Yapmam gereken şey nedir acaba?

ferdem

İlginç, solve dan önce
(2*pi*L*deltat)/((1/(hic*iccap))+(log(iccap/cap)/kplastik) kısmını hesaplatıp *1000, round, /1000 numarasıyla(veya varsa bu işi yapan daha formal bir fonksiyonla) virgülden sonra 3 haneye düşürüp solve fonksiyonunun işini kolayştırmayı deneyebilirsiniz.

pea

Bilinmeyen "R" ifadesi , paydada bulunduğu için o kısmı hesaplatamam.
Aldığım genişletilmiş sonuçlar da tam sayı olduğu için virgülden sonrasını atmak gibi bir yol yok şu an.

pea

Solve komutunda istenen değişken dışında bir şey tutamıyoruz sanırım.Ya da değişkenin limiti var.
Bol değişkenli formülü tek bir değişkene atayıp sonuç buldurup , o değişkeni de solve'a atınca sonuç verebiliyor.
Ama bu verdiği sonuç da çok uzun.Bu sonucu da subs'a atınca kısalıyor.