Programlama yoluyla matematik öğrenmek mümkün mü, yoksa programlama için matematik öğrenmelisiniz? [kapalı]


10

Ben matematikte en iyisi değilim, aynı zamanda çok dehşet verici değilim, ama ortalamadan daha düşük, her zaman matematiklerimi geliştirmeyi düşünüyordum, ama okullar ve kitaplar bu işi yapmadı çünkü çok hızlı sıkıldım. Sıkılmadığım tek şey kodlama ve oyun oynamaktır, bu yüzden matematik problemlerini çözen bir programı kodlamak matematikleri daha iyi anlamama yardımcı olacaksa, bu problemlerin çoğu sınırlar (matematik), fonksiyonlar, Diferansiyel hesap ve Daha önce belirtilenlere benzer diğer bazı konular (zaten iyi değilim dedim).

Sorum şu: Bazı program kodlamaları yaparsam ve mümkünse fizik de bu şekilde mümkün mü? Yoksa yanlış mıyım ve kodlamayı geliştirmem için programlamadan önce Matematik öğrenilmeli mi?

PS: C ++ tercih edilen dildir.


5
Benim için başka bir şekilde çalıştı. Lisansüstü istatistik derslerinde daha iyi çalışmama yardımcı olmak için bilgisayar programlamayı öğrendim. Programlamayı istatistiklerden daha iyi bulduğumu buldum ve kariyer yönümü değiştirdim.
jfrankcarr



Matematiğe giden Kraliyet Yolu yok, efendim.
Karl

Yanıtlar:


16

Matematiği veya fiziği programlamadan sadece matematik ve fizik problemlerini çözmek için gerçekten kullanıyorsanız, Haskell gibi fonksiyonel dillerin çok "mathy" kavramları olmasına rağmen öğreneceksiniz. Kahn Akademi veya Project Euler gibi bir web sitesine gitmenizi öneririm . Kod kullanarak orada problemleri çözerseniz, hem kodlama becerilerinizi hem de matematik becerilerinizi aynı anda geliştireceksiniz.


5
Her iki kaynak için +1. Yine de söylemeliyim ki, ilk defa kalkülüsten nefret ettim . Bunu da hiç iyi yapmadı. Lisp öğrenmesinden bu yana , mantıklı . Çok eğlenceli.
Jason Lewis

1
Haskell'i denemek isterseniz, "Mantık, Matematik ve Programlamaya Haskell yolu" nu okuyabilirsiniz: kitap Haskell'e matematik yapmayı öğretir ve yol boyunca tüm matematiksel kavramları tanıtır. Ancak, matematiksel mantık, sayı teorisi ve bazı temel cebirlere odaklanır. Eğer diğer her şeyden geçmeyi başarırsanız, Matematik yalnızca en sonunda belirtilir.
Vincent Zoonekynd

Ayrıca Mathematica (pahalı!), Maxima veya Axiom (ücretsiz) gibi özel CAS dilleri de öneririm. Yeniden yazma, kurallar ve stratejiler terimini edindikten sonra, tüm matematik anlamlı olmaya başlayacaktır.
SK-logic

Şahsen Khan Academy'yi matematik bilgimdeki boşlukları doldurmada çok yardımcı buldum.
jonners99

@Jason Lewis - Sorununuz materyalden daha fazla öğretim tarzıysa ve tam kurslar istiyorsanız, MIT OpenCourseware kursları, matematik ve doğrusal cebir de dahil olmak üzere birçok matematik konusu için mükemmel. Bununla birlikte, sadece belirli bir konuyu gözden geçirmek için pratik değildir. Özellikle lineer cebir kursunu beğendim. MIT OpenCourseware, elbette bazı bilgisayar bilimleri konuları için de çok iyidir - özellikle iki algoritma ve veri yapısı kursu. Mükemmel ücretsiz malzemelerle kendinizi kendi hızınızda eğitmek için daha iyi bir zaman olamazdı.
Steve314

5

Açıkçası, programlama yoluyla matematik öğrenmelisiniz. Fiziksel nesneleri simüle etmeye çalışırsanız, her türlü fizik ve matematik öğrenmeniz gerekir ve bundan keyif alırsınız.


4

Bu benim almam ...

Will Yardım Programlama Testi bilginiz

Lise ve ortaokuldayken, hesap makinemi monoton matematiği benim için yapacak şekilde programlardım. Bazı insanlar hile yaptığını iddia ettiler, ama her zaman matematiği gerçekten anlamadıysam programları yazamayacağımı iddia ettim.

Örneğin, Pisagor teoremi içinde A ve B verilen C değerini hesaplamak için küçük bir program oluşturmak istediğinizi varsayalım. Bunu nasıl yaparız? Bunu biliyoruz:

A^2 + B^2 = C^2

Yani C'yi çözmek için:

C = SQRT(A^2 + B^2)

Bu nedenle, program şöyle bir şey olabilir (uygun başlıklar varsayarsak, bu çıplak bir kemik örneğidir):

cout << "Enter value for A: " 
cin << valA;
cout << "Enter value for B: "
cin << valB;

float valC = sqrt(pow(valA, 2) + pow(valB, 2))
cout << "C = " << valC << "\n";

ANCAK...

Adı geçen Bilgileri Nereden ve Nasıl Edinirsiniz?

Önceki örnekte, denklem içinde C'nin nasıl çözüleceğini bilmemiz gerekiyordu. C'yi A^2 + B^2 = C^2.bulmak için her iki tarafın karekökünü bilmiyorsak, sorunu nasıl çözebiliriz?

IMO, kaynar: programlama size kesinlikle matematik öğretmez, ancak kazandığınız becerileri GELİŞTİRİR.


evet, fikrinizi anladım ve katılıyorum, cevabınıza dayanarak, programlamadaki problemleri çözdüğümde matematik öğreneceğim, ancak bunları bilgi olmadan çözemeyeceğim, bu yüzden çözüm aramam gerekecek ve bana matematik öğretecek olan şey ...
SAFAD

2

SICP kitap matematik üzerinde çok güzel bir bölüm vardır. Ama en azından doğrusal cebir, ayrık matematik ve Matematik almayı denemenizi öneririm, eğer sadece program yazarak öğrenirseniz, eğitiminizin çok derin, ama çok geniş olmaması muhtemeldir.


2

Sanırım el ele gidiyorlar. Matematiksel tekniklerde sağlam bir topraklama, programlamada başka türlü sahip olmayacağınız seçenekleri açacaktır, bu arada programlama, matematiksel çalışmanın ilginç yollarını açabilir.

Son zamanlarda mükemmel açık kaynak Maxima Bilgisayar Cebir Sistemi ( ticari Maple veya Mathematica sistemleri gibi bir CAS olarak) güzel bir grafik ön uç wxMaxima kullanmaya başladım .

Size kendi başına matematik hakkında hiçbir şey öğretmez, ancak matematikle oynamayı kesinlikle daha ilginç ve eğlenceli hale getirecektir, bu da kendi içinde sizi daha fazla bilgi edinmeye teşvik edebilir.


2

"Programlama" için fazla matematik gerekmez.

"Bilgisayar bilimi" için matematiğe ihtiyacınız var.

Her şey için önceden var olan kütüphane çözümlerini kullanmayı planlıyorsanız, muhtemelen nasıl çalıştıklarını umursamıyorsunuzdur. Ancak kendi algoritmalarınızı ve veri yapılarınızı yapmayı planlıyorsanız, CS çok fazla matematik tabanlı olduğu için matematiği bilmeniz gerekir.


1

Yapay zeka, veri işleme, fizik simülasyonu veya grafiklerle ilgileniyorsanız, matematiğe ihtiyacınız var. Tersine, eğer değilsen, sanmıyorum. Bu bir kullanım veya kaybetme vakası, neden Fransa'da yaşamak istemiyorsanız Fransızca öğrenin? Sadece koşullu mantık gerektiren çok sayıda sorunlu alan vardır.

Bunu söyledikten sonra, matematiğe doğru programlamada doğal bir eğilim vardır ve bunu anlamak için iyi bir şey yapamazsınız.


1

Göz at matlab . Kodda matematiksel fonksiyonlar yapmak için tasarlanmış bir dildir.

sayısal bir hesaplama ortamı ve dördüncü nesil programlama dili ... MATLAB, matris manipülasyonlarına, fonksiyonların ve verilerin çizilmesine, algoritmaların uygulanmasına, kullanıcı arayüzlerinin oluşturulmasına ve diğer dillerde yazılmış programlarla arayüz oluşturulmasına izin verir ...

MATLAB öncelikle sayısal hesaplama için tasarlanmış olsa da, isteğe bağlı bir araç kutusu, sembolik hesaplama özelliklerine erişime izin veren MuPAD sembolik motorunu kullanır. Ek bir paket olan Simulink, dinamik ve gömülü sistemler için grafik çok alanlı simülasyon ve Model Tabanlı Tasarım ekliyor ...


matlab sadece programcı önceden sağlam bir matematik bilgisine sahip olduğunda ve belirli bir matematik alanı ile sınırlı olduğunda faydalıdır.
wirrbel

1

Matematik, çok geniş bir alana sahip bir bilimdir. Açıkça hiçbir şeyi olmayan (matematik olmanın dışında) farklı matematik türleri vardır .

Şimdi programlama genellikle matematikle ilişkilidir, çünkü bilgisayarlar hesaplar ve hesaplar, en temelde bunu ayrı adımlarda tamsayı veya kayan nokta veri türleriyle yaparlar.

Bir programdaki matematiğe "yaklaşarak" programlayarak çalışabileceğiniz matematik alanları vardır. Diyelim ki diferansiyel hesaplar üzerinde çalıştığınızı ve küçük aralıklar için sayısal değerleri hesapladığınızı ve böylece "saf" matematiğin sınırını "taklit ettiğinizi" söyleyelim.

Programlamanın diğer yönleri matematiğe kolayca eşlenebilir (belki lise matematik dersinizin bir parçası değil, geleneksel bir müfredatın parçası olmayan hala değerli matematik). Tip teorisi, örneğin - veya matematiksel tümevarım.

Genellikle bir kod parçasının "doğruluğu" hakkında mantık yürütmenin tek yolu, örneğin matematiksel tümevarımdır. Bu tür akıl yürütmeler özellikle işlevsel dillerde (özyineleme vb.) Görülebilir.

Yani programlama sırasında matematiği öğrenmenin birçok yolu vardır, ancak bilgisayarlarımızın ve programlama dillerinin hesaplama modelinde tüm matematiklere kolayca ulaşılamaz.


0

Blog girişini bulamadım ama bir web geliştiricisi olarak ve onun farkına vararak matematik sevgisini keşfetmeyi bloglayan bir önceki "ilk patlama patlaması döneminden ('01 -ish önce) bir tasarımcı" türü "hatırlıyorum aslında lisede her zaman sefil bir şekilde başarısız olmuş ve matematikte hiç iyi olmayacak ve daha sonra kendini iddialı bir tip olarak saptamış biri olduğunu varsaymış olsa bile oldukça iyi.

Hayır ben değilim. Sadece tembeltim. Trig'i zaman zaman yeniden öğrenmeliyim ama bu kadar.

IMO, yapamayana kadar ağır matematik bilgisi olmadan çok iyi kod yazabilirsiniz.

Bununla birlikte, programlamanın makul bir ilgisi olan herkes için yapabileceği şey, bu tür bir kişi veya bu tür bir kişi olup olmadığınız fikrini aşmanıza ve sadece bir şeyler denemek için ihtiyacınız olan araçları vermenize yardımcı olmaktır. belirli bir çalışma alanında ilgi alanlarınızın sizi ne kadar uzağa taşıyacağını kendiniz keşfedin.

Ve elbette yaptığımız her şey kalçada matematik ile bağlantılıdır, böylece geriye doğru özetlemenin ne olduğunu öğrenmek gibi şeyler yaptığınızda fark ettiğinizden daha fazlasını öğrendiğinizi keşfedebilirsiniz.


0

Başka bir seçenek de matematik sevme isteğinizi artırmak için programlama sevginizi kullanmaktır . Hemen hemen her şey, onu uygulamak istediğiniz belirli bir sorunla öğreniyorsanız ve matematik de bir istisna değildir. Sadece ilginizi çeken matematik ağır programlama problemlerini anlamanız ve ilgili matematiği öğrenmek için bir neden olarak kullanmanız gerekir. Örneğin, grafiklerle oynayabilmeniz için Doğrusal Cebir öğrenmek veya görüntü işleme / bilgisayar görme türü şeyler için olasılık ve istatistikler.

Farklı insanların bir şeyler öğrenmenin farklı yolları olduğu için milinizin bu konuda değişeceğini düşünüyorum, ancak matematiği öğrenmek uğruna soyutta oturmak ve matematiği öğrenmek benim için hiç işe yaramadı.


-2

Öğrencilerden Scratch ile kare, beşgen, altıgen ve daire çizmek gibi bazı geometri problemlerini çözmelerini isteyebilirsiniz. Çözüm geliştirmeleri için onlara meydan okuyun ve nasıl kodlanacağı konusunda onlara yanıt vermeyin. Çözümleri keşfetmelerine ve test etmelerine izin verin. En azından çokgenlerde açıların toplamı gibi şeyler sorabilirsiniz. Sonra algoritmaları ve kendi kategorilerini oluşturabilirler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.