Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: rf - 05 Temmuz 2010, 22:02:08

Başlık: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: rf - 05 Temmuz 2010, 22:02:08
ANSI C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır? Klasik yöntemleri C ile kodlayamadım.
Bu konuda kullanılan kısa bir yöntem varmıdır?

Teşekkürler,
Saygılarımla.





Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: JKramer - 05 Temmuz 2010, 22:08:19
Cramer's_rule (http://en.wikipedia.org/wiki/Cramer's_rule) işinize yarayabilir. Bunu da (http://www.1728.com/unknwn3.htm) hesap makinanız yoksa denemek için kullanabilirsiniz.
Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: serdararikan - 05 Temmuz 2010, 22:08:36
sayısal yöntemler dersi aldıysanız orada bilgisayarla denklem çözümü teknikleri anlatılır.bir sürü yöntem var.örneğin LU decomposition,gauss elemination,iterasyon ... gibi
Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: rf - 06 Temmuz 2010, 00:29:27
@JKramer
Gönderdiğiniz linkler için teşekkür ederim hesap makinesi linkindeki java kodlarını inceledim Excell'de bir benzerini yaptım ve doğru çalışmakta.

<script language="JavaScript">

function calculate(equations)
{a = eval(document.equations.X1.value)
b = eval(document.equations.Y1.value)
c = eval(document.equations.Z1.value)
d = eval(document.equations.C1.value)
e = eval(document.equations.X2.value)
f = eval(document.equations.Y2.value)
g = eval(document.equations.Z2.value)
h = eval(document.equations.C2.value)
i = eval(document.equations.X3.value)
j = eval(document.equations.Y3.value)
k = eval(document.equations.Z3.value)
l = eval(document.equations.C3.value)
<!--EVALUATING THE DELTA DETERMINANT -->
delta = eval((a*f*k)+(b*g*i)+(c*e*j)-(c*f*i)-(a*g*j)-(b*e*k))
document.output.x.value = delta

<!--EVALUATING THE X NUMERATOR & ANSWER -->
xnum = eval((d*f*k)+(b*g*l)+(c*h*j)-(c*f*l)-(d*g*j)-(b*h*k))
xans = "  " + eval(xnum/delta)
document.output.x.value = xans

<!--EVALUATING THE Y NUMERATOR & ANSWER -->
ynum = eval((a*h*k)+(d*g*i)+(c*e*l)-(c*h*i)-(a*g*l)-(d*e*k))
yans = "  " + eval(ynum/delta)
document.output.y.value = yans

<!--EVALUATING THE Z NUMERATOR & ANSWER -->
znum = eval((a*f*l)+(b*h*i)+(d*e*j)-(d*f*i)-(a*h*j)-(b*e*l))
zans = "  " + eval(znum/delta)
document.output.z.value = zans}
</SCRIPT>


@serdararikan
Malesef böyle bir ders almadım matrislerede epeyce uzak kaldığımıda anladım, verdiğiniz keywordler sayesinde ve ufak bir araştırmayla yukarıdaki yöntemin Saruss Kuralı olduğunu buldum yukarıdaki kodu artık kolaylıkla C ye çevirebilirim.

http://www.matematik.tc/matematik-2-konu-anlatimlari-oku/matris-ve-determinant.html
http://en.wikipedia.org/wiki/Determinant

Not1: Nereden esti diyenler için NTC kalibrasyonunda Steinhart-Hart modeli için gereken a,b ve c değerlerinin hesaplanmasında gerekmektedir. üç farklı sıcaklık için verilen üç direnç değeri ile elde edilen 3 bilinmeyenli birinci dereceden denklemi çözmekte kullanacağım.

Not2: Java ile daha önce hiç kodlama yapmadım. Tahmin yöntemi ile kodları okudum.

Teşekkürlerimi sunuyorum,
Saygılarımla,
Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: ErsinErce - 06 Temmuz 2010, 01:17:57
@rf NTC için yazdığım programda matris yöntemi kullanılarak çözüm yaptım programın kodları da forumda mevcut yardımcı olur, bir inceleyin isterseniz.
https://www.picproje.org/index.php/topic,24675.0.html
Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: rf - 06 Temmuz 2010, 12:40:44
@cynetron
Programınız çok işime yaradı teşekkür ederim. Sourcecode ları verme inceliğini gösterdiniz ama benim onu açacak IDE'm kurulu olmadığı için NotDefteri ile açtım bi kaçını anlaşılmayan karakterlerle doluydu.

Birde onu sorsaydık ayıp olacaktı artık. Balığı istedik birde kılçıklarını ayıklarmısınız olacaktı.

Yazacağım program sizinkinden farklı olmayacak ama ilerde bunu işlemci içine gömerek online kalibrasyon menüleri oluşturmak istiyorum. Bu nedenle mantığını öğrenmem önemliydi.

Teşekkür ediyorum.
Saygılarımla,

Başlık: Ynt: C ile birinci dereceden üç bilinmeyenli denklem çözümü nasıl yapılır?
Gönderen: ErsinErce - 06 Temmuz 2010, 16:36:04
@rf
Programı biraz hızlı yazdığım için isimlendirmeler ve kurgu biraz karışık oldu, anlaşılması zor olabilir, bilmemek değil...  diye atasözümüz var ;)
çözümleme yapısında Cramer yöntemini kullanıldım nette sade anlatan şuan bunu bulabildim sayfa 79 http://www.aof.anadolu.edu.tr/kitap/IOLTP/2286/unite03.pdf (http://www.aof.anadolu.edu.tr/kitap/IOLTP/2286/unite03.pdf) sayfa 81de örneğide mevcut, bu yöntem birçok yerde işinize yarar.

İyi Çalışmalar.