MSP 430'Da 8 Bitlik Verinin Karekökü Almak
-
MSP430G2553 kullanarak P1 Portundan alınan 8 bitlik verinin karekökünü P2 portundan çıkış olarak nasıl yazdırabiliriz?
Kod elinde olan veya yazabilen var mı? Karekök algoritmasıda olabilir. Yardımcı olabilecek var mı? Assembly kullanarak yazmamız gerekiyor.
-
Aritmetik algoritmasını bilmiyorum
fakat Newton Raphson yöntemi ile kolayca halledersin sanırım (çabuk sonuç verir)
parabolik denklemde ıraksamaz sorunsuzca halledersin.. ( kökün sağından yaklaş, birden büyük sayılar için başlangıç değeri olarak sayının kendisini, 1den küçük sayılar için 1i alabilirsin)
örenek A gibi bir sayınınkarekökünü bulacaksın
y=-A+x^2 diye bir denklem oluşturacaksın bunu N.R. yöntemiyle çözeceksin..
-
-
Itcelik'in yöntemi en verimli ve gercek sonuca en yakin degeri uretir, ama iterative yazman zor olabilir, recursive de yazarsan hem yer sıkıntın olacak, hem de asm ile yazıyosan, recursive yazmak o kadar kolay degil, bol bol push pop yapcan :)
En amele yontem ise; (eger tam degerini bulman gerekmiyorsa)
1'den itibaren sayinin karesini al, artira artira git...
Ne zaman ki senin degerini gectin, o sayi yaklasik karekoktur diyip cikcaksin :)
Mesela sayı 17 ise
1in kares, 2nin karesi 3un karesi 4un karesi 5in karesi, 5inki mi 4ünkü mü daha yakın, 4 der cikarsin..
-
Aslında basit bi ryöntem başlangıç noktasında bir değer veriyorsun x1 gibi bu noktada (x1)için parabole teğet çiziyorsun .. teğetin x eksenini kestiği nokta senin yeni x1in oluyor.. indislemeye herek yok aslında o anki x1 ile önceki x1 karşılaştırıp iterasyon kesmesi yaparsınn ya da 20 iterasyonda yeterli hassaiyet yeter dersin iki satır eksik kod yazarsın..
teğeti nasıl bulacam dersen normal parabolün teğeti (x^2+c) olduğu için 2x e eşittir.. x1,f(x1) noktasından geçen ve eğimi 2x1 olan doğrunun x eksenini kestiği yer kolayca hesaplanır.. orta okul bilgileri..
