• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Lineer denklemi sadeleştirip "Lineer denklem takımı" çözümünü modüler hale getirmek

Katılım
22 Ağustos 2021
Mesajlar
4
Excel Vers. ve Dili
Microsoft Office Professional 2019 - Türkçe
Merhabalar, şöyle bir sorunla karşılaştım excelde. Örneğin lineer denklem takımı çözümlemesi yapıcaz diyelim ki, bunun için matris yöntemini kullanıp n bilinmeyenli n denklemin köklerini bulabiliriz. Bu kısmı biliyorum. Ancak o denklemleri elde ederken uzun uzun hesaplar yapmak gerekebiliyor. Elimizde sabit sayıların ve bilinmeyenlerin olduğu formüller varsa ve bu formülleri kullanarak denklem çıkarıyorsak bu işlemi excele yaptıramaz mıyız?

Örneğin; (100*(a-b)/50)+3b=5 gibi bir denklemimiz var diyelim ki, (sayılar formülün durumuna göre değişiyor ama a ve b yerinde kalıyor) bunun gibi 2 tane denklem elde edip determinantla a ve b'yi bulucaz.
Bu denklemin 2a+b-5=0 haline dönüşeceğini biliyoruz. Formüldeki 100, 50, 5 gibi sayılar değiştiğinde excel yine hesaplamayı yapıp denklemi sade hale getirip a ve b'nin katsayılarını bulsun istediğimde a ve b'yi bir formül içerisine yazamıyorum excelde(a ve b'yi başka bir kutuda, default değeri 0 veya 1 olarak tanımlarsam bu kez (100/50)*(a-b) gibi işlemleri yapması gerektiğini anlayamıyor excel.

Bu adımdan sonra elde edilen katsayıları excel, Ax=B ve x=(A^-1).B hesaplamalarında kullanması için kendisi doğru kutulara kopyalasın diyeceğim. Böylelikle lineer denklem takımı katsayılarına girilecek sayılar tek bir noktadan yazılarak hem denklem hemde o denklemin çözümü excel tarafından yapılacak(tabi mümkünse)

Bilgisayardan görüntü eklemeyi bulamadım, yok sanırım.
 
Sadeleşmemiş haliyle
(100*(a-b)/50)+3b=5
Hep bu formda mı formüllerniz?b*z

100* (a*x - b*y) / 50 + b*z = 5 gibi mi mesela
 
Son düzenleme:
Örneğin (75*(a-b)/80)+7b=25 şeklinde 4 ayrı adresten(kutudan) sayı girişi yapıldığında excel doğrudan sayıları sadeleştirip a ve b nin kat sayılarını bulup bunu A matrisine göndersin, bu matrisin tersini alıp B vektörü ile çarpsın ve böylece a ve b nin ne olduğunu bulsun istiyorum.

Dediğim gibi a ve b için 0, 1 gibi başlangıç değerleri belirleyip “çözücü” ile bunu yapmanın bir yolu yok çünkü o zaman a ve b nin katsayılarını bulamaz.

Sorun bu şekilde varsa nasıl yapılabileceğini bilen, beni aydınlatırsa çok sevinirim. :)
 
Sadeleşmemiş haliyle
(100*(a-b)/50)+3b=5
Hep bu formda mı formüllerniz?b*z

100* (a*x - b*y) / 50 + b*z = 5 gibi mi mesela
Benim yazdığım denklemde a ve b’yi x ve y olarak yazmıştım zaten denklemde başka bir bilinmeyen yok. Aynı denklemi (100*(x-y)/50)+3y=5 şeklinde de yazabiliriz. 2 ayrı satırda bulunan 4 kutuya(toplamda 8 kutu) 8 sayıyı yazınca örneğin aşağıdaki denklemler oluşmuş olacak:
((1.sayı)*(a-b)/(2.sayı))+(3.sayı)b=(4.sayı)
((5.sayı)*(a-b)/(6.sayı))+(7.sayı)b=(8.sayı)


Excel de bu sayılardaki a ve b’nin (a ve b yerine x ve y de yazabiliriz bir şey fark etmez, sonuç olarak 2 bilinmeyen var) katsayılarını bulacak bu katsayılar, 2 bilinmeyenli 2 denklemin köklerini bulan matris hesaplama adımına gönderilecek.
 

Ekli dosyalar

Öncelikle yardımlarınız için çok teşekkür ederim, zahmet edip tabloyu hazırlayacağınızı düşünmemiştim, bana "şöyle şöyle yap" deseydiniz ben yapardım, yük olmasaydım size.
Hepinizin yanıtlarını inceledim hepiniz yapmaya çalıştığım şeyi doğru yapmışsınız ve bu kadar kolay olacağını hiç düşünmemiştim. Ben gömülü sistemler mühendisliği alanında çalışıyorum, (atmel, stm32, raspberry pi, matlab vs... programlama) benim bunu yapamama nedenime programcılıkta "kodlamayı bilmek ama algoritmayı kuramamak" diyoruz. Çünkü ben matematiksel olarak katsayılar nasıl hesaplanabilir diye hiç düşünmeden excelde bir kutunun içine denklemin tamamını "100*(a-b)/50)+3b" yazmayı düşündüm ilk başta, sonra da "böyle olmaz bu sayıları ayrı ayrı yazıp çözücüye (solver) hesaplattırmak lazım herhalde" diye düşündüm. Programlama yaparken(matlabde bile) genellikle x, y, z, a, b gibi bilinmeyenler denklem içinde dururken denklem üzerinde hesap yaptığımız(veya bilinmeyenleri fonksiyona parametre olarak verdiğimiz) için kafam öyle çalıştı herhalde. Excelde daha yeni kendimi geliştiriyorum, excele göre düşünmeye de alışıcaz zamanla, bundan sonra önce bu matematiksel olarak nasıl bulunabilir diye düşünücem. Programcılık "mantık ve algoritma konusunda bizi geliştirse de matematikte zayıflatıyor maalesef, her şeyi programa yaptırdığımız için. :)

Programcılıkla uğraşanlar bilir özellikle Arduino programlamış kişiler bunu çok kullanmıştır, map adında bir fonksiyon vardır 0-5 skalasında değişen sayıları 0-1023 gibi farklı skalalara çevirmeye yarar. Örneğin 0-100 arasında değişen bir sayı skalasını 15-455 skalasına çevir diyebilirsiniz.
Fonksiyon aşağıdaki gibidir;

double map(double sayi, double giris_min, double giris_max, double cikis_min, double cikis_max){
return ((((sayi - giris_min) * (cikis_max - cikis_min)) / (giris_max - giris_min)) + cikis_min);
}


Bu sırada "fonksiyona girdiğim sayi değeri 45 olunca sonuç 2 sayısına eşit olsun, 75 olunca 4 olsun " isteyebilirsiniz, programın akışına göre, bunun için fonksiyona çıkışın minimum ve maksimum değerlerini girmeniz gerekebilir. Az önce sizin yaptığınız tablolar bu giris_max ve giris_min değerlerini bulmaya yarıyor.

İdris Serdar beyin yaptıklarının üzerine bazı eklemeler yaptım ne dediğimin tam olarak anlaşılması için, şuan sorunsuz çalışıyor dosya. Hepinize yardımlarından dolayı çok teşekkür ederim. Sağ olun.
 
@ÖmerFaruk Bey, daha önce denemedim şimdi olacak mı bilmiyorum.... Ama; ekli dosyayı açıp "Solver" uygulamasına data alanı olarak H9:J10 aralığını gösterip çözdürmeyi dener misiniz?


.
 

Ekli dosyalar

Kısıtları belirleyemedim heralde, çok denedim

229569
 
Ben herhalde ifade edemedim......

Aşağıdaki resimlerde belirttiğim adımları yapmanızı rica etmiştim....

Pic1.PNG

Pic2.PNG



Pic3.PNG


Pic4.PNG


Pic5.PNG
 
Yukarıda resimlerle belirttiğim adımların uygulaması aşağıdaki animasyondadır;


Test_HD2.gif

.
 
H9:J10 daki mantığı anlatabilir misin?

oradaki formüller kısıtlar mıdır? Kısıtlarsa H9 - I10 - J10 daki formülleri anlayamadım.
 
Yukarıdaki son 2 mesajım; söz konusu 2 adet denklemi Solver ile kendi bilgisayarımda çözdükten sonra bu iş kullanılan Solver Modeli'nin Excel'e gömülüp, gönderilen başka bir bilgisayarda çalıştırılmasını anlatıyor....


.
 
Pardon söylemeyi unuttum, denedim ve çalışıyor. Sonuçlar da aynı.
 
Teşekkürler.... 15 No'lu mesajdaki sorunuzu 16 No'lu mesajda izah etmeye çalıştım.... Bunun faydası ise; hem kendi çözdüğün modeli bir başka bilgisayara aktarabiliyorsun, hem de D4:F5 alanındaki katsayılar değiştikçe yeniden Solver'da data girmekle vakit kaybetmiyorsun, aynı modeli kullanabiliyorsun.

.
 
Son düzenleme:
H9 - I10 - J10 daki formüllerin anlayamadım.
Rica etsem açıklarmısın?
 
Onları ben yazmadım, Excel yazdı.....

Problemi Solver ile çözerken, yukarıda 2. resimdeki "Load" butonunun yanındaki "Save" butonuna tıklayınca, kullanılan "Solver Çözüm Modeli" sayfada 6 adet hücreye aktarılıyor.

Sonra da, istediğin zaman bunları geri yükleyip kullanabiliyorsun...

Yani, bir çeşit "Makro Kaydet" gibi düşünebilirsin....

.
 
Geri
Üst