[過去ログ] 「数学」をプログラミングするには (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
653: デフォルトの名無しさん [] 2024/11/18(月) 01:57:22.41 ID:cmnYUiAb(1/8) AAS
>>652
652(1): デフォルトの名無しさん [] 2024/11/18(月) 01:35:40.76 ID:XvHL8b4e(1) AAS
>>651
何を言ってんだお前は
>644
644(3): デフォルトの名無しさん [] 2024/11/16(土) 21:13:01.66 ID:ZAMRkSMG(1/2) AAS
>>641
Σ(n = 0, 100) 2^(-n) ≠2 -- 100の部分が∞になった時(2^(-∞))、初めて 2 になる。

数学だと真(True)になるが、Haskellプログラムは-53乗から答えが2になって、この式は偽(False)になる。
sum [2^^(-n) | n <- [0..53]] /= 2 = False -- 間違った答えを表示。

グラフアプリ(Webアプリ)のDesmosでも確認したので、専用のアプリや言語でも間違ってる可能性が高い。
こういう精度の問題がプログラムはメモリが有限である限り、必ず存在する。

(√2)^2 = 2

が正しく真になるかどうかもプログラム次第。
(こちらはグラフアプリの様な専用のものは対応してることが多い)
を数学にしかできない方法として極限を出したらイプシロン-デルタ論法出してきたでしょ?
プログラミングでイプシロン-デルタ論法使えば、数学と同じことができるって主張じゃないの?
654
(5): デフォルトの名無しさん [] 2024/11/18(月) 02:18:05.70 ID:cmnYUiAb(2/8) AAS
というか、私の主張は

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

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

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

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

リストや配列のインデックスが実数や複素数とかプログラミングじゃ出来ない。
676
(1): デフォルトの名無しさん [] 2024/11/18(月) 19:26:51.96 ID:cmnYUiAb(3/8) AAS
>>671
671(1): デフォルトの名無しさん [] 2024/11/18(月) 14:09:15.00 ID:q1fjBomZ(1) AAS
Σ_{k=0 to N} 2^(-k)が2に収束することを証明するには、N = 100や1000を代入しようが駄目で、極限を扱わなければならない
>>654のやってることは何の意味も無い

で、イプシロンデルタ論法を使えば厳密に証明できるとこちらは何度も言っているのに、聞く耳を持たない
うちの主張したいことは、イプシロンデルタ論法はいくらでも数値の誤差をイプシロン以下に抑えられるのを保証することを証明しているのだが、プログラミングではそのイプシロン以下に抑えられない程誤差が大きくなるってのが、数学を厳密にプログラミング出来ない理由として挙げてる。

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

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

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

どれも事実上問題になるわけではないが、>1
1(16): デフォルトの名無しさん [] 2024/03/16(土) 19:41:45.98 ID:nuwGv9us(1) AAS
たとえば、プログラミングで

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

を近似ではなく厳密に確かめるにはどうしたらいいの
人間が証明できるってことは、有限なアルゴリズムに書き換えられると思うんだけど
のいう「近似ではなく厳密に」なら不可能と言わざるを得ない。
677: デフォルトの名無しさん [] 2024/11/18(月) 19:29:55.61 ID:cmnYUiAb(4/8) AAS
x比可算
o非可算
679
(2): デフォルトの名無しさん [] 2024/11/18(月) 19:42:40.18 ID:cmnYUiAb(5/8) AAS
>>678
678(1): デフォルトの名無しさん [] 2024/11/18(月) 19:37:30.06 ID:uqz705Or(1/8) AAS
>>676
何度同じことを言えば理解できるのだろうこの馬鹿は
プログラミング可能なことをコードで示したら理解します。
683
(1): デフォルトの名無しさん [] 2024/11/18(月) 19:47:39.20 ID:cmnYUiAb(6/8) AAS
>>681
681(1): デフォルトの名無しさん [] 2024/11/18(月) 19:43:14.48 ID:uqz705Or(3/8) AAS
>>679
>>655
verify()の中身。
あと、決め打ちって書いてるでしょ。

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

なので私からの宿題は100の時の具体的な近似値を求めるコードを示すこと。
687
(3): デフォルトの名無しさん [] 2024/11/18(月) 20:05:19.56 ID:cmnYUiAb(7/8) AAS
>>680
680(1): デフォルトの名無しさん [] 2024/11/18(月) 19:42:42.62 ID:uqz705Or(2/8) AAS
「実数εを任意に選べる文脈で、項と極限値の差をε未満に抑えるNを選ぶことができる」ことを示すのがイプシロンデルタ論法

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

εは「正の実数である」という情報しか持っていない
浮動小数点数や多倍長整数の誤差なんか全く無関係
ε自体はな。
でも、真の値aに対して a + ε, a - εって使うのがイプシロンデルタ論法。
数学ではそれで限りなく無限に近くεを小さくしてもその範囲内に真の値が存在することを証明しているが、
プログラミングでは一定の大きさのεまでしか保証されない。

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

極限が正しければ厳密じゃない。
途中もすべて正しくないなら、それは厳密ではない。
688: デフォルトの名無しさん [] 2024/11/18(月) 20:12:54.11 ID:cmnYUiAb(8/8) AAS
>>685,686
685(2): デフォルトの名無しさん [] 2024/11/18(月) 19:53:44.06 ID:uqz705Or(6/8) AAS
s = "1.";
for(int = 0; i < 100; i++) s += "1";
print(s);

以上
686(2): デフォルトの名無しさん [] 2024/11/18(月) 19:58:41.23 ID:uqz705Or(7/8) AAS
print("2 - (1/2)^100");

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

どんなコードが出るか期待してたら…。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s