「数学」をプログラミングするには

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/03/16(土) 19:41:45.98ID:nuwGv9us
たとえば、プログラミングで

π/4 = 1 - 1/3 + 1/5 - 1/7 + ...

を近似ではなく厳密に確かめるにはどうしたらいいの
人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど
653デフォルトの名無しさん
垢版 |
2024/11/18(月) 01:57:22.41ID:cmnYUiAb
>>652
>644を数学にしかできない方法として極限を出したらイプシロン-デルタ論法出してきたでしょ?
プログラミングでイプシロン-デルタ論法使えば、数学と同じことができるって主張じゃないの?
654デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:18:05.70ID:cmnYUiAb
というか、私の主張は

数学
lim_{k to 100} sum_{k=1}^{n} 2^(-k) -- ちゃんと近似値が出る。

プログラミング
sum [2^^(-n) | n <- [0..100]] = 2 -- 近似値ではなく、極限値の2になって(この時点での)正確な値ではない。

プログラミングはイプシロン-デルタ論法が(一定の精度までしか)出来ない。
それでも実用上問題は無いが。

他にも無限次元の空間とかも扱えない。
集合の添え字集合も可算集合とは限らない。
実数や複素数も有り得る。

リストや配列のインデックスが実数や複素数とかプログラミングじゃ出来ない。
655デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:30:07.52ID:Jtd58AQt
lim_{k to ∞} sum_{k=1}^{n} 2^(-k) = 2 をチェックする関数verify()を作って、

```
verify();
```

構文の違いはあれど、だいたいどんなプログラミング言語でもこれで出来るよ。
656デフォルトの名無しさん
垢版 |
2024/11/18(月) 02:31:48.70ID:Jtd58AQt
>>654
なんで数学サイドは極限を扱っているのに、プログラミングサイドは近似値計算してんのが分からない

>プログラミングはイプシロン-デルタ論法が(一定の精度までしか)出来ない。
意味がわからない
イプシロンデルタ論法の「精度」とはなんぞや?
2024/11/18(月) 06:55:13.89ID:rC7K9dh5
用語の定義と問題設定やってから議論はじめろや
2024/11/18(月) 11:53:19.87ID:21+bycFm
数式プロセッサで10秒で解ける話をいつまで引っ張る気?
659デフォルトの名無しさん
垢版 |
2024/11/18(月) 12:11:19.02ID:TSuIDd3o
>>657
概念や問題設定を確立することも含めて研究だ
問題意識に共感できないなら黙ってろ
2024/11/18(月) 12:24:05.47ID:/ED7ccxy
先行研究を調べるという発想もそのやり方もわからないポンコツなの自覚した方がいいぞ
2024/11/18(月) 12:24:33.46ID:JmFxaZ5G
>>659
定義を否定するのはさすがに数学者の姿勢として間違っているかと。

数学なんて定義が違えば結果が変わるんだから、定義すらできないなら議論する以前の状態。
擬似問題だらけになって議論なんてできないわな。
2024/11/18(月) 12:52:07.70ID:IQFlTfLo
ポエム
663デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:10:32.68ID:petr+Idh
>>661
微積分もフーリエ変換も超関数も厳密な定義の無いところから始まったんだが
664デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:12:10.65ID:petr+Idh
そもそも何を定義してほしいんだ?
上で言ってるイプシロンデルタ論法なんか厳密に定義されてるだろ

自分が理解できてないのを責任転嫁してないか?
2024/11/18(月) 13:12:30.38ID:IQFlTfLo
一緒にすんなよ
666デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:14:48.42ID:petr+Idh
で、何を定義してほしいの?
667デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:17:46.53ID:Rwp+XrJ8
未知の概念を誰かに「定義してほしい」では会話にならない
「自分はこういう定義・定式化するのが適切だと思う」と自発的に提案できなければ、数学の研究はできない
>>661は完全に間違っている
668デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:54:18.06ID:fHwV6VSA
>>654
全部できるな
669デフォルトの名無しさん
垢版 |
2024/11/18(月) 13:55:52.57ID:0TuJxtFY
>646
lim[x→0](sin(x)/x)
lim[x→-0](1/x)
670デフォルトの名無しさん
垢版 |
2024/11/18(月) 14:03:32.55ID:fHwV6VSA
>>654の言ってるのは、「CPUは整数しか扱わないから、コンピュータで文字列は扱えない」と言ってるのと同じ
それに対してこちらはずっと「文字に文字コードを割り当てれば文字列を扱える」と正しい指摘をしているのだが、
「できるならプログラミングで書いてみろ」とか意味不明な言いがかりをつけてくる
671デフォルトの名無しさん
垢版 |
2024/11/18(月) 14:09:15.00ID:q1fjBomZ
Σ_{k=0 to N} 2^(-k)が2に収束することを証明するには、N = 100や1000を代入しようが駄目で、極限を扱わなければならない
>>654のやってることは何の意味も無い

で、イプシロンデルタ論法を使えば厳密に証明できるとこちらは何度も言っているのに、聞く耳を持たない
2024/11/18(月) 16:37:50.26ID:IQFlTfLo
数学、プログラム、実装がごっちゃまぜ
673デフォルトの名無しさん
垢版 |
2024/11/18(月) 16:50:14.60ID:xbnEkxri
数学と実装は独立

プログラミング言語処理系の数値型が近似値だから、実数や極限を扱えないなどという馬鹿な話は無い

それは、CPUが整数値しか扱えないからプログラミングで文字列を扱えないと言ってるのと同じ
2024/11/18(月) 16:52:09.17ID:IQFlTfLo
馬鹿乙
2024/11/18(月) 16:53:49.78ID:IQFlTfLo
お前が思ってる仕様のプログラム作るんだろ?
676デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:26:51.96ID:cmnYUiAb
>>671
うちの主張したいことは、イプシロンデルタ論法はいくらでも数値の誤差をイプシロン以下に抑えられるのを保証することを証明しているのだが、プログラミングではそのイプシロン以下に抑えられない程誤差が大きくなるってのが、数学を厳密にプログラミング出来ない理由として挙げてる。

プログラミングのは、極限値だけ決め打ちで答えが出るようにしてるだけなので、100とかでイプシロン以下に抑えられない誤差が現れる例としてだした。

添え字集合が実数や複素数というのも、その実数の連続性・比可算無限が根本にある。

無限次元の空間は整数の話だが、多倍長整数使ってもメモリ以上の空間は扱えない。

どれも事実上問題になるわけではないが、>1のいう「近似ではなく厳密に」なら不可能と言わざるを得ない。
677デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:29:55.61ID:cmnYUiAb
x比可算
o非可算
678デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:37:30.06ID:uqz705Or
>>676
何度同じことを言えば理解できるのだろうこの馬鹿は
679デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:42:40.18ID:cmnYUiAb
>>678
プログラミング可能なことをコードで示したら理解します。
680デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:42:42.62ID:uqz705Or
「実数εを任意に選べる文脈で、項と極限値の差をε未満に抑えるNを選ぶことができる」ことを示すのがイプシロンデルタ論法

それを記号論理で扱える処理系を実装すればいいだけ

εは「正の実数である」という情報しか持っていない
浮動小数点数や多倍長整数の誤差なんか全く無関係
681デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:43:14.48ID:uqz705Or
>>679
>>655
682デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:47:34.77ID:uqz705Or
>>679
それはお前の理解力が低すぎるだけ

コンピュータで文字列を扱うのに文字コードの実装をすべて見せなくたって
「たとえば文字の'0'に整数48を割り当てる」のように説明すれば、ふつうの理解力があれば理解できる

自分の知性の問題を責任転嫁しないでくれ
683デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:47:39.20ID:cmnYUiAb
>>681
verify()の中身。
あと、決め打ちって書いてるでしょ。

その100での具体的な近似値求められないと「厳密」にならない。

なので私からの宿題は100の時の具体的な近似値を求めるコードを示すこと。
684デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:51:22.47ID:uqz705Or
>>683
二進法で一の位以下に1が101個並んだ数だよ

こんなんプログラミングしなきゃわからんの?
685デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:53:44.06ID:uqz705Or
s = "1.";
for(int = 0; i < 100; i++) s += "1";
print(s);

以上
686デフォルトの名無しさん
垢版 |
2024/11/18(月) 19:58:41.23ID:uqz705Or
print("2 - (1/2)^100");
687デフォルトの名無しさん
垢版 |
2024/11/18(月) 20:05:19.56ID:cmnYUiAb
>>680
ε自体はな。
でも、真の値aに対して a + ε, a - εって使うのがイプシロンデルタ論法。
数学ではそれで限りなく無限に近くεを小さくしてもその範囲内に真の値が存在することを証明しているが、
プログラミングでは一定の大きさのεまでしか保証されない。

こういえばいいか?
真の値は確かにあるが、プログラミングでは間違った値を返す場合がある。

極限が正しければ厳密じゃない。
途中もすべて正しくないなら、それは厳密ではない。
688デフォルトの名無しさん
垢版 |
2024/11/18(月) 20:12:54.11ID:cmnYUiAb
>>685,686

御大層なこと言っておいてそれで数学を厳密にプログラミング出来ましたってか?
そういうのを決め打ちっていうんだよ。

どんなコードが出るか期待してたら…。
689デフォルトの名無しさん
垢版 |
2024/11/18(月) 20:13:02.34ID:uqz705Or
>>687
こいついつまで同じ間違いを主張し続けるんだろう
わざとなのかな
2024/11/18(月) 20:24:40.45ID:IQFlTfLo
>>687
それは組み込み関数、ライブリライのせいだよ、アホ
2024/11/18(月) 22:59:54.21ID:IQFlTfLo
素人の爺には困ったもんだ
2024/11/19(火) 06:48:48.49ID:EzNMoOuG
>>687
そんなことは70年代には解決されている
2024/11/19(火) 12:52:15.23ID:+rLs2eZU
なんか擬似問題臭くて良くわからんが、非可算無限と可算無限を同列に扱っている?

ε-δ論法の話をしているけど、「対象」が可算集合ならコンピュータでもε-δ論法を扱えるけど、「対象」が実数とかの無限列相当のものは扱えないよね。

ここは同意できているの?
694デフォルトの名無しさん
垢版 |
2024/11/19(火) 14:24:36.15ID:vPThvbnG
>>693
扱えるが
2024/11/19(火) 14:49:59.72ID:BjXbrgPI
発明したな
>「対象」が可算集合ならコンピュータでもε-δ論法
696デフォルトの名無しさん
垢版 |
2024/11/19(火) 15:02:31.77ID:9IpsHqjo
イプシロンデルタは
「正の数εが任意に与えられた文脈で、極限値と第N項の差をε未満にできるNが存在する」
ということを示すもの
浮動小数点数の精度は全く関係ない
697デフォルトの名無しさん
垢版 |
2024/11/19(火) 15:20:30.96ID:Mq7l08eX
数学で証明できることはすべてコンピュータでできる
2024/11/19(火) 16:02:28.14ID:BjXbrgPI
イキル
2024/11/19(火) 16:07:04.25ID:BjXbrgPI
主語でかすぎ
700デフォルトの名無しさん
垢版 |
2024/11/19(火) 16:14:08.96ID:qPVKwQq9
数学の定義や命題は有限の記号列で書ける
数学の証明はその記号列をべつの記号列に変形する操作
よって、数学で証明可能なことはすべてコンピュータにも証明可能
2024/11/19(火) 16:24:25.57ID:I/l9JBha
結局それをやる意味ってないよね
効率よくプログラミングできるようになるわけでもないし
2024/11/19(火) 16:28:44.30ID:BjXbrgPI
ZFCを書いて、それらで定理を書けばできそうな気もするけど、意味あるのwww
703デフォルトの名無しさん
垢版 |
2024/11/19(火) 16:35:45.33ID:j14Rc69f
自分の無知や誤解を認めずに「それ意味あるの」と話をそらすのはみっともない
704デフォルトの名無しさん
垢版 |
2024/11/19(火) 16:37:54.51ID:H/KRjD7N
>>701
プログラムの性質が型として記述されていれば実行前にチェック可能
2024/11/19(火) 16:43:49.56ID:BjXbrgPI
>>703
自己紹介乙
2024/11/19(火) 16:44:50.16ID:BjXbrgPI
物理、化学もプログラミングできるんじゃね、知らんけど
2024/11/19(火) 16:45:42.08ID:BjXbrgPI
結局素人爺さんのポエム
2024/11/19(火) 16:46:56.61ID:BjXbrgPI
コンピュータをプログラムするのはできるのかな
709デフォルトの名無しさん
垢版 |
2024/11/19(火) 16:47:12.61ID:coO1UiYz
チューリングやノイマンにも「それ意味あるの?」とか言ってそう
710デフォルトの名無しさん
垢版 |
2024/11/19(火) 16:58:19.92ID:lK7OkAw4
>>708
仮想マシンやエミュレータって聞いたことない?
2024/11/19(火) 17:21:27.90ID:BjXbrgPI
>>710
そんな限定した話をしてるんじゃないよ
2024/11/19(火) 17:29:21.81ID:+UtMc6V6
プログラムするw
お前らあほだろ
2024/11/19(火) 17:57:15.98ID:BjXbrgPI
数学ができるんならできるだろw
2024/11/20(水) 17:27:58.52ID:MYLVUJ4i
記号の変換はスマホの機種変更と同じぐらい無駄が多いので
原始的な紙とか鉛筆とかから最も新しい機種へ
一手でチェックメイトするのが理想
2024/11/20(水) 17:30:31.90ID:bfGgzFod
だめだ幼稚すぎる
716デフォルトの名無しさん
垢版 |
2024/11/21(木) 12:45:49.55ID:SUxxkxcm
AIで数学するのか数学でAIするのかどっち
2024/11/22(金) 12:28:17.99ID:Bq3Ptvn8
手書き最高

手書き
8πG/c⁴μ₀

プログラム
> (8.0 * std::numbers::pi * G) / (c * c * c * c * mu0)よりも
> divide(multiply(multiply(8.0, std::number::pi), G), multiply(c, multiply(c, multiply(c, multiply(c, mu0)))))の方がずっと分かりやすいもんな
> 8.0 pi mul G mul c c mul c mul c mul mu0 mul div
2024/11/22(金) 12:48:39.18ID:TfAmaEiY
頭が弱い子は黙ってなさい
719デフォルトの名無しさん
垢版 |
2024/12/04(水) 21:39:55.37ID:8KpdelDL
とにかく実装をしたくない
性質だけ記述したらそのとおり動くものを
2024/12/04(水) 21:54:53.60ID:mVwJzDam
つ chatGPT
2024/12/04(水) 23:24:59.54ID:zvOMcMQ4
>>719
理論的には可能だけど
結局複雑さが仕様記述に移るだけ
2024/12/04(水) 23:33:29.55ID:mntkUkKP
>>721
理論的に不可能と言わないと学のレベルが知れちゃうよ
2024/12/04(水) 23:53:24.41ID:zvOMcMQ4
>>722
は?自動証明機の原理と同じって習ってないの?
学がないね
724デフォルトの名無しさん
垢版 |
2024/12/05(木) 06:54:57.03ID:Rf9rE6qz
O(n logn)のソートアルゴリズムいくつあると思ってんだ(笑)
2024/12/05(木) 06:57:10.89ID:C6AEg4kD
>>721
馬鹿が触れなくなるだけでも意味がある
2024/12/05(木) 08:52:35.44ID:xTrv11hP
>>724
やっぱり何もわかってないし
CSと数学基礎論を修めてないの自白してるぞ
それは算法でいくつもあるならどれでもいいって話だバカ
2024/12/05(木) 12:44:08.13ID:tdblRVHA
じゃあ実装スキップできないじゃん(笑)
2024/12/05(木) 14:18:22.51ID:sS2Eeasw
無理です
TypeScriptのような強力な型システムを備えていれば、
2つの型が等しいことを確かめることは原理的にできません
2024/12/05(木) 15:12:42.19ID:xTrv11hP
>>727
な?不思議だよなw
学べば別に魔法じゃないことがわかる
730デフォルトの名無しさん
垢版 |
2024/12/05(木) 16:32:01.05ID:2LNpfkRJ
test
・・・・・・・・・・・・・・・
・■■■■■・・・■■■■■・
・■・・・■・・・■・・・■・
・■・■・■・・・■・■・■・
・■・・・■・・・■・・・■・
・■■■■■・・・■■■■■・
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
・・・・・・・・■■■・・・・
・■■■■■・・■・■・・・・
・■・・・■・・■■■・・・・
・■・■・■・・・・・・・・・
・■・・・■・・・・・・・・・
・■■■■■・・・・・・・・・
・・・・・・・・・・・・・・・
2024/12/05(木) 16:55:56.65ID:7Nw3563u
     ∧_∧
 ピュー (  ^^ ) <これからも山崎を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
2024/12/05(木) 18:38:56.09ID:0lWk1Gz/
>>728
TypeScriptの型システムは強くない
ザルのJavaScriptに比べればマシという程度
それでも実用的な型システムは強ければ強いほど開発効率が上がる
気付いた人たちはもっと強力なプログラミング言語へ移行する
一方で数学的な各種概念などを型システムに採り入れただけの言語は実用には遠い
2024/12/05(木) 19:14:20.85ID:2vtwGPgw
こんな過疎地で持論書き込んで楽しいか?
2024/12/05(木) 19:41:07.77ID:0lWk1Gz/
事実のみを指摘した
2024/12/05(木) 20:22:08.32ID:wt4vQ/2p
Haskell厨かな
妄想も大概に
2024/12/05(木) 22:23:42.65ID:nFy0adPc
効率って短時間という意味だよな
たとえば疑わしきを3秒くらいで罰するとか
2024/12/06(金) 11:22:43.20ID:x1xEzr8K
>>1
プログラムでかすぎw
2024/12/07(土) 20:49:06.54ID:tbnxnovb
>>1
この数式の意味がわからん
2024/12/08(日) 04:36:47.48ID:hBOt4r+U
>>738
https://ja.wikipedia.org/wiki/ライプニッツの公式
2024/12/08(日) 06:34:59.65ID:X+KuZzcS
>>738
高卒がプログラミングなんかすんなよ
2024/12/08(日) 18:25:16.09ID:BmTfINn6
>>740
こんなのプログラミングに使わないけどw
中高生がプログラミングするのは今や当たり前だけどw
2024/12/09(月) 18:37:31.14ID:URePCLgA
グレゴリー・ライプニッツ級数の2通りの証明
https://manabitimes.jp/math/775
2024/12/10(火) 17:38:45.30ID:r/rGR6/m
Coq/SSReflect/MathCompで解析入門の1章の命題を全て証明
https://mathlog.info/articles/1405
2024/12/10(火) 21:35:24.14ID:r/rGR6/m
グレゴリー・ライプニッツ級数の収束をCoqで証明する際には、Realsライブラリを用いて実数の扱いを行い、級数の定義を元に収束の証明を組み立てます。証明の詳細は、数列の部分和の収束を示すために必要な補題や定理を適宜導入し、論理的に証明を進めていく必要があります。
2024/12/10(火) 23:33:12.40ID:v+7nHz1f
いくらなんでもめんどくさすぎる
2024/12/11(水) 09:58:45.55ID:9ebR4E1i
数学とはそういうもんだ
2024/12/11(水) 11:46:13.42ID:9ebR4E1i
馬鹿でもケチは付けられる
2024/12/11(水) 12:01:24.20ID:/aZNYiYX
聞こえるな高卒の声が!
2024/12/11(水) 12:05:21.25ID:DIyj35fU
誰でもできることには価値がないと判断しなかった者だけが
コタツでできる数学をやっている
2024/12/11(水) 12:53:19.83ID:9ebR4E1i
ポエム爺さんの代わりに考えてあげたのに酷い(笑)
2024/12/11(水) 16:48:22.68ID:CTc5DRpT
証明の正確さを検証するためのツールなのに、わかり切った証明(項の交換など)を明示的に書かなければいけない
なんつーか、退化してるよな
2024/12/11(水) 16:58:43.02ID:9ebR4E1i
>>1に言えよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況