Numerical Methods with Python #1 : Euler

in utopian-io •  7 years ago  (edited)

This is a Turkish Python tutorial about numerical methods. I will write about how can we use python programming language for our math problems especially numerical methods.


  • Euler Teoremi Nedir?

Eğer çok yüzlünün herhangi iki noktasını birleştiren doğru parçası yine bu yüzlünün içinde kalıyorsa, bu çok yüzlüye konveks (dışbükey) çok yüzlü denir. Konveks çok yüzlülerin yüz, ayrıt ve köşe sayıları arasında Euler Teoremi olarak bilinen bir bağıntı vardır. [Wiki]

e^x = 1+ x+ x^2/2! + x^3/3! +x^4/4! + …

e^iπ + 1 = 0 denklemine Euler denklemi denilir. e, i ve π birbirinden farklı değerlere ve kullanım alanlarına sahipken Euler denkleminin sonunda hepsi ortak bir tam sayıya indirgenip eşitlenmiş oluyor. Matematiğin bazı insanlara güzel gelen o harmonisi bu sanırım.


source | Euler Denklemi


source | Tylor Açılımı

Fakat bu yazıda Euler'ın güzelliğine veya matematiksel çözüm-ispatına değinmek yerine bunu Python ile nasıl birleştiririz, Python ile bir Euler denklemini nasıl çözeriz ona değineceğiz.

  • Python ile Euler Çözümü

Kod örneğimizde de gördüğünüz gibi e sayısını hesaplarken ilk hesaplamada standart python kitaplığı kullanılırken ikinci hesaplamada decimal modülü kullandık. Tüm bu işlem sonucunda iki farklı çıktı aldık ve bunlar sırasıyla

2.7182818284590455
2.7182818284590452

oldular. Peki bu çıktılara nasıl ulaştık? Yazdığımız kod tam olarak ne yaptı adım adım inceleyelim bunu.

Öncelikle math kütüphanesinden factorial metodunu import ederek başladık yazdığımız koda. Ardından n,e,e1 adlı değişkenlerimizi oluşturup bunların başlangıç değerlerini atadık. Bu değerler elbette rastgele değiller, yapacağımız işlemlere yönelik sabit ilk adım değerleri bunlar. Ardından 1 iterasyonda elde edilecek çıktıyı bulabilmek için Euler formülüne uygun bir şekilde matematiksel işlemleri koda döküyoruz.

from math import factorial
n,e,e1 = 0,1,0

Her defasında n'i 1 arttırarak onun 1/factorial 'ini alıyoruz. Bu işlem e ve e1 birbirine eşit olana kadar devam ediyor. Eşitlik sağlandığında ise while döngüsünden çıkıyoruz. Arından decimal kütüphanesini de import edip aynı işlemi tekrar ediyoruz. Tek fark bu defa e1 += 1/factorial(n) yerine e1 += Decimal(1/factorial(n)) yapıyor oluşumuz.

İkinci while döngüsünden de çıktığımızda artık her bir iterasyonda elde edilen çıktıları göstermemiz kalıyor geriye. Bunu da basit bir for döngüsü ile hallediyoruz.

e = 0
for n in range(20):
e += Decimal(1/factorial(n))
print(e)

Yani yazdığımız kodun çalışma şekli genel olarak bu şekilde. Her bir iterasyonu tek tek bulup ardından onları ekrana yazdırıyoruz.



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Wish there will be a series of this tutorial in English language.........

Well after finish Turkish version, I will do it English :)

Her şeyi öğrenmek çok güzeldi, ben de pyhton ben de sevmek mathematick takip ediyorum seni paylaşım güzeller çok upvoted also

Please don't use machine translate!

Hey @monomyth I am @utopian-io. I have just upvoted you!

Achievements

  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x