NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

labview de fibonacci search method algortimasının çalıştırılması

merhaba arkadaşlar.

Labview ile yeni tanıştım. kendimi geliştirmek için çeşitli problemlere uygulamak istiyorum. özellikle optimizasyon konusundan çeşitli programlar ile çözülebilen (matlab gibi) algoritmaları labview üzerinde uygulamak istiyorum. bunlardan bir taneside "Fibonacci Search in Optimization of Unimodal Functions". bilmeyenler için aşağıda basitçe algortiması var. bir yere kadar geldim ama özellikle ilk iterasyondan sonra ki döngüde meydana gelen değişkenlerin yer değiştirme ve yeniden hesaplanmasında takıldım. belki yanlış gelmiş olabilirim ama geldiğim yere kadar olan döngüyü ekliyorum. sistemin tamamlanması için yardımcı olanlar çıkarsa çok sevineceğim.

 

algoritmasını ek olarak veriyorum. teşekkürler.

 

yfedai27@gmail.com

Download All
0 Kudos
Message 1 of 19
(6,245 Views)

Hocam merhabalar,

 

Bu hafta içi oldukça yoğundum sorunuzla ilgilenemedim. Bu akşam itibarı ile sorunuza çözüm olabilecek bir alt yapı hazırladım. Aslında matematiksel modelde hata yapmadıysam (pek emin değilim Smiley Frustrated) sorunuzun çözümü olması gerek. Ancak çalıştırdığımda verdiğim aralık için daha ilk seferde hesabı sonlandırıyor. Sizin kontrolünüzün ardından matematiksel modeldeki hataları düzeltebiliriz.

 

Gelelim LV ile ilgili kısım olan kodlamaya. Matematiksel model hatası dışında kodlamada bir sorun olacağını zannetmiyorum. Yalnız bu örneği sınıf tanımlamaları ile yazdım ve sistemi mümkün olduğunca ve kavrayabildiğim kadar küçük parçalara ayırıp alt rutinler oluşturdum ve her birine ne iş yaptığını not olarak ekledim.

 

Örneğe göz gezdirebilirseniz sorrularınıza cevap vermeye çalışırım. Ayrıca matematiksel bir hata varsa düzeltelim.

 

0 Kudos
Message 2 of 19
(6,234 Views)

Hemen ilave edeyim. Çözüm için bir proje oluşturdum. ..\Fibonacci\proj klasörü içindeki Fibonacci LV projesini açınız. Ana rutin "Fibonacci Ile F(x) Cözümü.vi" olacak, tıklayıp açınız ve kodlamada ki giriş sabiti değerlerini istediğiniz gibi değiştirip çalıştırınız. Ön panel için denetim ekledim ama deneme için kodu bir sabit ile çalıştırıyorum.

 

Bu arada F(x) fonksiyonu için bir dizi oluşturdum. Dizinin ilk indisinden başlayarak (yani 0'dan) n-1 inci elemana kadar katsayıları diziye giriyorsunuz. Örnek olarak,

Dizinin 0 indisli elemanına F(0) çarpanını, 1 indisli elemanına F(1)*x deki F(1)i, sonra F(2)*x*x deki F(2) 2nci indise şeklinde gidiyor.

0 Kudos
Message 3 of 19
(6,233 Views)

Zafer Bey Türkçe forumumuzda nesne tabanlı (OOP) ilk LabVIEW kodumuzu paylaştığınız için tebrik ederim 🙂

 

Bana da ilgilenen kişiler için LabVIEW'de nesne tabanlı programlamaya yönelik bilgi verici ve de başlangıç noktası olarak kullanılabilecek en sade link  paylaşmak kalıyor:

 

LabVIEW Object-Oriented Programming FAQ (http://zone.ni.com/devzone/cda/tut/p/id/3573)

 

 

Açıkçası henüz tam anlamıyla deneme şansım olmadı ancak anlatım itibarıyla sorun yok gibi duruyor. Tabii asıl yfedai Hoca'mızın bunu teyit etmesini bekliyoruz.

 

Bu arada, Word dosyasındaki alogritmanın gidişatından ötürü ben de LabVIEW Statechart modülü ile birşeyler yapılmasını önerebilirim. Çok aşina olunan bir araç değil ancak bu gibi adım adım takip edilecek uygulamalarda kolaylık sağlayabileceğine inanıyorum.

 

 

Kolaylıklar dilerim.

 

Candan  

 

(Bay) Candan CANER
National Instruments Türkiye
0 Kudos
Message 4 of 19
(6,228 Views)

Candan sen de benim gibi geç uyuyorsun sanırım 🙂

 

Kodu nesne tabanlı yazmak yerine ardışıl işlemler olarak normal yöntemle yazsam açıklamak çok zor olacaktı. Açıkçası ben de LV ile nesne tabanlı yazmaya başlayalı çok olmadı. Fırsat olup detaylarına inememiştm bu aralar fırsat çıktı.

 

Forumlarda arkadaşları yönlendirmeye çalışacaksak, kanaatim yazılımcılık ile algoritma kurmayı birbirinden ayrımalıyız. LV'de ilerlemek isteyen arkadaşlar varsa algoritma kurma mantığının da ötesine geçip bir yazılımcı olmak için gerekli standartları öğrenmeliler.

 

LVOOP bence LV yazılımcısı olmak isteyen arkadaşların kesinlikle uymaları gereken en temel standart. Bir kere nesne tabanlı LV kod yazarsanız sanırım eskisi gibi kod bir daha asla yazmazsınız 🙂

0 Kudos
Message 5 of 19
(6,225 Views)

Benim için de güzel bir başlangıç olabilir. Örneklerinize ben de göz gezdireceğim, katkılarınızdan dolayı teşekkürler. 


Yasemin Barutçu
Electrical And Electronics Engineer
0 Kudos
Message 6 of 19
(6,213 Views)

Yasemin Hanım, yanlış anlamıyorsam LV ile ileriye dönük ilgilendiğinizi düşünüyorum. Tavsiye vermek haddimize değil ancak burada da belirttiğim gibi, analiz etmek ve algoritma kurmak her ne kadar yazılım geliştirmenin en önemli adımları olsa da sadece ilk adımı oluşturuyor. Çalışma ortamlarımız birilerinin yol gösterip öğretmesi için elverişli değil ve kendi acı tecrübelerimizle bir noktaya gelmeye çalışıyoruz. LV ile tanışalı 7 yıl olacak ve LV yazılımcısı olmak nedir daha yeni anlamaya başlıyorum.

 

LV ile algoritma geliştirmekle yetinmeyip bir LV yazılımcısı olmaksa hedefiniz, yazılım mantığını, analiz etmeyi, algoritma kurmayı, bunları koda aktarmayı çoktan aşmış olmalısınız (aşmaktan kastım sorunsuz çözmek değil, tek dehef olarak bunları önünüze koymamak) ve yazılımcılık gerekliliklerini sağlamak asıl hedefiniz olmalı.Bizim hatamız yazılımcılık gerekliliklerini sağlamayı en sona bırakmak :S Aslında ilk yazdığınız koddan itibaren uyulması gereken yazılım kuralları her neyse on yıl sonra yazdığınızda da aynı.

 

Türkçe forumların açılmış olmasını hepimiz için çok önemli fırsat görüyorum. Özel olarak, Candan'ın verdiği bağlantıyı açmanızı ve "LV Object Oriented Programming" konusunu, kod yazmayı bir kenara bırakarak anlamaya çalışmanızı tavsiye ederim. Hatta sadece LV değil farklı yazılım dillerinde de OOP aynı temelleri kullanır ve temel mantığını öğrenmemiz yararlı olacaktır.

0 Kudos
Message 7 of 19
(6,210 Views)

Hocam merhabalar,

 

İsteğiniz üzere LV 2009 sürümü ile kaydedip ekliyorum.

 

Kolay gelsin.

0 Kudos
Message 8 of 19
(6,202 Views)

Zafer Bey, evet ileriye yönelik düşnüyorum ama sizin de katıldığınız gibi iş gereği böyle temel konulara inmek için zaman o kadar kısıtlı ki.. Verilen işi kuralına uygun değil, zamana uygun yapmam gerektiğinden kağıda temeli dökemeden başladığım yazılımlar oluyor. Ben de sizin dediğiniz gibi aslında algoritmayı kağıtta şemaya döküp sonradan yazılıma geçiren biriyim ve böyle olması gerektiğini düşünüyorum fakat gerçek hayatta, hele de işler yoğun ve tek kişinin üzerine yığılmış durumdaysa, bunlar çok zor oluyor. Hemen bir şeyler görüp, o projeyi kapatmak istiyorlar.

Ben elektrik-elektronik okuduğumdan dolayı algoritma ve yazılım konusunda kendi çabalarımla bir yere geldim. Bu yüzden temelim yeterli değil bunu biliyorum. Sizin de yazılarınızı okuyarak bu temeli sağlamlaştırmayı planlıyorum.

Önerdiğiniz dökümanları boş zamanlarımda okuyacağım. Teşekkürler.


Yasemin Barutçu
Electrical And Electronics Engineer
0 Kudos
Message 9 of 19
(6,196 Views)

merhaba zafer bey.

ilginize çok teşeşkkürler candan bey. öncelikle sizi beklettiğim için özür dilerim. malum sınavlar vs. :-))

sanırım yasemin hanımda benim gibi ama ben ondan da bir adım geriden takip edeceğim sanırım programcılığı. ben makina mühendisiyim ve ilk kez algoritma ve programcılık ile karşılaştım. ama kafaya koydum mutlaka üstesinden geleceğim.

 

zafer bey ben kendi yaptığım programcık ile epey yol aldım. ama sizin projenizden de bayağı bişiler öğrendim. yaptığınız döngüyü çalıştıramadım. çalıştırdım ama istediğim sonuçları vermedi. x1 ve x2 nin hesaplanmasında iki yerde hata vardı onları düzelttim ama yine istediğim sonucu alamadım. (düzeltilmiş halini geri yolluyorum) ayrıca bir yere takıldım. fonksiyon üretiminde verdiğiniz algoritma ile sanırım yalnızca polinom şeklinde denklemler üretilebiliyor. oysa biiizim uğraştığımız bu metodda karşımıza üstel logaritmik trigonometrik, mutlak deger bv. her türlü denklem yazabilmemiz incelememiz gerekir. yanlış anladıysam düzeltirsiniz.

programın çalıştıgını kontrol etmek için benim elde yapmış olduğum basit bir denklem ve noktalar için hesapladığım değerlerle karşılaştırma yapıyorum. bu değerleri exel dosyası olarak ekliyorum.

incelemeniz için kendi dosyamıda ekliyorum.

iyi çalışmalar diliyorum.

Message 10 of 19
(6,176 Views)