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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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:
Katılım
22 Ağustos 2021
Mesajlar
4
Excel Vers. ve Dili
Microsoft Office Professional 2019 - Türkçe
Ö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. :)
 
Katılım
22 Ağustos 2021
Mesajlar
4
Excel Vers. ve Dili
Microsoft Office Professional 2019 - Türkçe
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64

Ekli dosyalar

Katılım
22 Ağustos 2021
Mesajlar
4
Excel Vers. ve Dili
Microsoft Office Professional 2019 - Türkçe
Ö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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@Ö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

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kısıtları belirleyemedim heralde, çok denedim

229569
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yukarıda resimlerle belirttiğim adımların uygulaması aşağıdaki animasyondadır;


Test_HD2.gif

.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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....


.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Pardon söylemeyi unuttum, denedim ve çalışıyor. Sonuçlar da aynı.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
H9 - I10 - J10 daki formüllerin anlayamadım.
Rica etsem açıklarmısın?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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....

.
 
Üst