[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 20:18 / Filesize : 259 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングの為の数学と算数 vol.2



1 名前:デフォルトの名無しさん [04/09/05 16:22]
プログラムに必要な数学、算数に関する話題について
語りましょう。TIPS/Q&Aスレです。

615 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 21:05:18 ]
山登り法

616 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 22:14:53 ]
>>615
いいヒントをありがとうございました。
「山登り法」というキーワードでいろいろ探せそうです。

617 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 22:14:23 ]
多次元の最大値、最小値問題か

618 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 23:02:49 ]
最大最小というより極値やね

619 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 11:29:24 ]
z = f(x, y)

∂z
----
∂x


∂z
----
∂y


620 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 11:36:15 ]
www.heisei-u.ac.jp/mi/fukui/pdf/mathtext8.pdf

621 名前:デフォルトの名無しさん [2007/01/19(金) 14:01:03 ]
リードソロモン符号でこんなことってできますか?
例えば1MB固定のデータファイルが n個あります。
これに任意の m個のエラー訂正用のファイルを作ります(エラー訂正というより、補完をしたい)。
たとえば、n=8、m=2 で、全部で 10個のファイルを作ります。
この 10個のファイルのうち、どれか n個だけ揃えば元の n個のファイルを復元できる、
みたいなことをやりたいのです。

ここで、n や m の取り方に、なにか制限はあったりするでしょうか?
例えば n は偶数じゃないといけないとか、m は 2のn乗じゃないといけないとか、
そういうなんらかの制限です。
できれば n も m も、その都度自由に設定したいのです。
あと、元データを復元するために必要なファイルの数は、n個だけで充分なのでしょうか。
それとも、n個よりも少し多く必要だったりするでしょうか。

今こんなことをやりたいがためにリードソロモン符号についての勉強を始めたのですが、
今結論だけを端的に知りたいです。
あるいは、他の符号化についての候補などあったら知りたいです。
よろしくです。

622 名前:デフォルトの名無しさん [2007/01/19(金) 15:31:54 ]
おれは学生時代、数学をきちんと勉強してなかったので後悔してる…
やっぱりプログラム、コンピュータの基盤となるのは数学だから
数学的な知識があるとないじゃ、雲泥の差だという事を、つくづく思い知らされたよ。
とりあえず、ちょっとでもスキルアップ出来る様に、勉強し直そうと思うよ…

623 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:56:36 ]
最近、分数の割り算をググった事は秘密だ orz



624 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:04:45 ]
>>623
最近は分数が出来ない文系の大学生も多いらしいからねぇ。
書く言うおれも、中学レベルの数学が既にあやしい…orz

625 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:49:25 ]
>624
にほんごもあやしいようだね

626 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 19:49:50 ]
>>621
Luigi Rizzo氏のHPにReed-Solomon符号を使ったデータ復元プログラムのソースが置いてあったような...
確か、制限はn+m<2^8 またはn+m<2^16。
復元もn+m個中n個を受信すれば大丈夫だったはず。検索して調べてみてください。

627 名前:624 mailto:sage [2007/01/19(金) 21:30:15 ]
>>625
全てを基本からやり直す必要がありそうだ…orz

628 名前:621 mailto:sage [2007/01/20(土) 12:46:41 ]
>>626
情報ありがとうございます。
検索の結果それっぽいページにたどり着いたものの、いかんせん英語が不得手でして・・・
実装例は自分が行き詰ったときに見ることにして、とりあえずやりたいことはできるのだろうということはわかりました。
n+m<2^8 とか n+m<2^16 とかの制限は、多項式の係数を何ビットで計算するかによるのでしょうね。
8bit で計算すればエンディアンの問題が無くて都合が良さそうですが、できるだけ多ビットで計算した方が計算回数が
少なくて高速になりそうですね。
# 実は 8bit しか念頭に置いていませんでしたが、実験として 32bit くらいでやってみようかと思いました

629 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:08:41 ]
当方受験生なのですが、数学出来ません。物理できません。化学の計算できません。
国語や英語はできます。論理性はある方だとは思います。理系の教科は勉強し
ても全然伸びませんでした。理系の科目が出来ないのは、恐らく、数学的思考が出来ていない
為だと思われます。
やってるうちに色々自分の欠点に気づき、その欠点を克服したいと思っています。
プログラミングが数学のスキルアップによいと聞き、それが欠点の克服に繋がると、
思い、やってみたいのですが、なにから始めたら良いでしょうか?
何か他にもアドバイスがあったら教えて下さいませ。

630 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 23:20:09 ]
LOGO でタートルグラフィックでもやってみてはどうだろう

631 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 07:54:17 ]
>>629
今受験生ってことは、もう残り1,2ヶ月?
プログラミングに費やす時間あったら、他のことにまわしたほうがいいぞ
長い目で見ればプログラミングに手を出すのも悪いことではないけど、一朝一夕ではどうかなぁ

632 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 08:05:35 ]
プログラミング自体は文系のひとでもかなり出来るひとはいる

文系か理系かで分けるんじゃなくて
論理的に考えられるかどうかが重要
それが出来ないと何やってもだめ


633 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 08:17:07 ]
現代のプログラミングは数学のスキルアップにはならない
何を作ろうとしてもライブラリ。
六法全書以上に分厚い資料との格闘。 記憶力や事務処理能力の方が要求される分野かもね

上で出たLOGOやpascalレベルなら別だろうけど、実用プログラミングはね



634 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 09:46:34 ]
Mathematicaとかならともかく
現代とかどうとか関係なくそもそもプログラミングと数学は全然別物だと思うが

635 名前:629 mailto:sage [2007/01/22(月) 15:01:04 ]
今年は無理なんで、来年受けようと思っています。

このスレの上の方でBASiC等が数学のスキルアップに良い。と書かれてますが、
実際どうなんでしょう?
英語は外人と喋ったり、チャット・メールをして上達しています。
数学も、こんな感じで実用面からアプローチすれば上達するかな?
と、思っています。

>>630  一度調べてみます。有難う御座います。

636 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 15:17:21 ]
プログラマと数学者との関係をほかのもので例えるとしたら、作家と言語学者は別物というのが近い感じだと思う。
それにいくら外人と話してしても、日常会話は上達するだろうが、英語学者にはなれないだろう。
これも近い例だと思う。

637 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 15:17:47 ]
>このスレの上の方でBASiC等が数学のスキルアップに良い。と書かれてますが、
どこのこと?
>>135ならセンター試験のプログラムの問題の話だが。

>数学も、こんな感じで実用面からアプローチすれば上達するかな?
プログラミング(の大部分)は高校数学の応用ではない。
確かに数学とプログラミングは関連しているし、考え方も共通性がない訳じゃないけど、
受験勉強としてやるには効率が悪すぎると思う。
現代国語の対策として小説の書き方を勉強するようなものじゃなかろうか。

638 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:20:20 ]
今年のセンター試験のプログラミングは難化したな
片手間でやろうとした奴はそうとう焦っただろ

二分法がどういうものか分かってないと話にならない
まあ数値計算の章では普通に教科書にも出てるから
本当にやってる人ならなんでもなかったのだろうけど

統計の問題もそうだけど今年は「冷やかしお断り」っていう
センターの意図がすごい感じられたよ

639 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 23:28:19 ]
へー

640 名前:629 mailto:sage [2007/01/23(火) 00:02:36 ]
LOGOやpascalを肯定してる人も居ますが、これはどうなんでしょう?
やはり地道にがんばるのがいいんでしょうか?
何とかして数学的思考を出来る様にならなきゃいけないんですが・・・

641 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:13:28 ]
今の世の中、数学のためにコンピュータがあるのではなく、
コンピュータのために数学を学ばせているような気がする。

642 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 00:13:44 ]

「数学的思考」についてお前の思うところを述べよ




643 名前:629 mailto:sage [2007/01/23(火) 00:34:40 ]
数学的思考とは、物事を順序立てて考える事であり、具体的な文字を使わず、抽象的な文字を用いる
思考です。又、余計な言葉は入れず必要な事だけを述べて行く・書き下して
行く様にする思考です。



644 名前:629 mailto:sage [2007/01/23(火) 00:36:24 ]
この思考が出来ない事が、数学・物理・化学の計算を出来なくしている大きな要因
だと思っています。

645 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 01:50:51 ]
具体的なものを使わず、じゃない。
数字や記号や式を具体的なものとして捉える力のほうが大事。
俺の持論だけど。

646 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 02:41:21 ]
F = ma

なんのことか分からん罠


647 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 06:25:56 ]
>>643
おまいさんは 脚の総本数 = 4 * 亀の個体数 + 2 * 鶴の個体数 から遣り直した方がいい。

648 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:19:32 ]
ツルとカメと、あわせて8ひきいます。
足の数はぜんぶで、26本。
ツルは何匹、カメは何匹?

649 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:21:05 ]
ttp://www.morinogakko.com/classroom/sansu/bunsyoumondai/turukame/kiso.html


650 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 07:30:39 ]
pc10.2ch.net/test/read.cgi/tech/1169300052/10

【 課題 】プログラミング演習
1)N桁の数字を各桁毎に分解し、その数字の並びの組み合わせで得られる
最大の数から最小の数を引くという演算を、結果が収束または循環するまで繰り返す。

例:
a)1111 のとき 1111 - 1111 = 0 収束
b)2006 のとき 6200 - 0026 = 6174 さらに 7641 - 1467 = 6174 収束

2)上の演算をN桁で構成される全ての数字について行い、
その桁数における収束パターンの一覧を結果として表示する。

例:
N = 4 のとき 1000 〜 9999 までの数字で確認

3)Nを1〜10程度まで可変にしてそれぞれの結果を出力。

【 形態 】Javaアプリケーション
【 GUI  】Swing(CUIでも可)
【 Ver  】1.5以上
【 期限 】月曜17:00
【 補足 】
できれば数字の組み合わせが重複するケースや
計算の途中で既知の値(系列)に到達した場合は
それ以降の計算を省略する等して高速化を図ること


651 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 23:26:57 ]
>629
受験数学が駄目なのか、微積分とか代数幾何とかの
教科書レベルの基本的概念を掴むところから駄目なのか

想定している大学のレベルはどれくらいか

たとえば、物理の物体の運動を数式の暗記ではなくて、
微積分の概念を用いて理解するなら数値積分の結果を
グラフにしたりするのがよくあるパターンかと思うが、
それならプログラミングなんてする必要はなく、excelで
も十分な罠。


652 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 02:21:07 ]
>>650
でかい配列作って計算結果の一覧表を作ればおk

653 名前:629 mailto:sage [2007/01/24(水) 22:15:45 ]
>>650 これは私宛てでしょうか?これはいったい何なんでしょうか?

>>651  受験数学は駄目ですね。これは基本概念が掴めていない所為だと
思います。志望は阪大・大阪市立の医学部です。
excelですか。一度調べてみます。有難う御座います。




654 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 10:38:57 ]
>629
>論理性はある方だとは思います。
>数学的思考が出来ていない
矛盾してないか?

655 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 03:07:02 ]
国語における論理(≒常識的論理)と、数学やプログラムのそれとは、
若干のズレがあるからな。

たとえば、「明日の花見は、雨ならば中止します。」と幹事が言ったとして、
「では晴れたらどうするんですか?」なんて質問をしたら、馬鹿呼ばわりされること必至。
(日常会話の「ならば」は、必要十分条件を意図して使われていることが多い。)

数学(プログラム)的には、この質問は至極自然かつ妥当なものなのだが。

656 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 10:25:47 ]
>653
基本概念が掴めていなければ,応用もできんわな
そんなヤツに医者になってほしくない・・・

657 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 11:03:26 ]
>>655
でも、その国語と数学のずれを認識できない奴のことを、
はたして論理性があるといえるのか?

658 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 22:47:39 ]
それを論理の違いとして捉えているところがすでにダメダメだろ
「数学では論理を正確にするが,日常ではルーズにする」とかな

そうじゃなくて言葉の意味が違うだけ
力学で言う「仕事」が普通に言う「仕事」と違うっていうようなもの

659 名前:629 mailto:sage [2007/01/26(金) 23:54:56 ]
>>654 いえ、私は、

数学的思考とは、物事を順序立てて考える事であり、具体的な文字を使わず、
抽象的な文字を用いる 思考です。又、余計な言葉は入れず必要な事だけを述べて行く・書き下して
行く様にする思考です。

こう言いました。
この私が呼んでる数学的思考という能力が劣っていても、論理性が高いという事は
ありえます。
先ず、具体的な文字を使わず、抽象的な文字を使う。という事と論理性とは
なんの関係もありません。(まぁ、厳密に調べて言ったら、多少なりとも関係
しているでしょうが)
次に、余計なことを述べず必要な物だけを述べる。と言うのも、関係有りません。
別に不必要な物を付け足しても、論理的な展開はでき、論理力が高いという事はあります。
最後に、物事を順序立てて考える。と言うことですが、これは正直よく反論出来ません。
別に物事を順序だてて考えなくても、論理力が高いと言う事はある。脳みそは複雑でバラバラな
事でも統合的に処理できている。というぐらいしか言えません。

また、頭の良い人から論理性が高い。と言われますし、実際国語の点数も良いです。
なので、私の論理性が高くない、と言う事はあまり考えるべきでないと思います。




660 名前:629 mailto:sage [2007/01/27(土) 00:04:12 ]
>>655 国語における論理(≒常識的論理)と、数学やプログラムの論理は別に
考えているつもりです。

>>657 >>658 何処でどう私の事を、その国語と数学のずれを認識できない奴と、
思ったのですか?
もし、論理性の欠如から来る、ミスなら気をつけて下さい。
話がいらん、何も有益が無い方向に曲がってしまいます。



661 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:11:08 ]
論理がどうこうよりも、急がば回れで、小中学生レベルの算数・数学の問題を解きまくったほうが、計算はできるようになると思う。

662 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:18:26 ]
数板かどっかに行って欲しいなあ。
本人は論理的なつもりなのかも知らんが、誤った前提を元に論理も糞も無いだろうに。

663 名前:629 mailto:sage [2007/01/27(土) 02:19:15 ]
>>662 うだうだ文句垂れるだけならサルでも出来る。

>>661 演算は出来ます。というか誰も演算できないなんて言ってません。

まぁ、大体このスレでの有益な意見は出たので、これで失礼します。
一部の人が怒りっぽく、荒れてきましたし。
私が言ってないことを言ったかの様に述べたり、確定してない事を確
定してると思い込むのは、恐らく、頭脳から来る頭の悪さでは無く、
人格の欠陥から来る頭の悪さでしょう。

人格の欠陥から来る頭の悪さは大概自己愛の欠落からきています。
自己が自分や他人(特に両親)から肯定されていないんですよ。
一度両親の元へ行って、愛を与えて貰いに行くのがいいと思います。
もしくは、両親との不仲を直し、互いに愛し合う関係になったほうが
良いです。それで、もしかしたら直ると思いますよ。ではノシ



664 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:30:09 ]
怒りっぽくなったり荒れたりしてるのは、お前さんだけのように見えるが。

論理性があって計算もできる奴が、どうして
>数学出来ません。物理できません。化学の計算できません。
なんてなるのかが不思議でしょうがない。

665 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 03:07:16 ]
663見りゃ分かるとおり、コイツは勝手に論理飛躍した上で他人の人格欠陥を指摘するタイプだ。
どこも論理的じゃないから、不思議でもなんでもない。

666 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 10:23:34 ]
>659
「数学的思考=抽象化」ということか
オレは「数学的思考=論理的思考」だと思ってたんだが
そもそも,抽象化は考える前の「単純作業」だと思ってたし
その辺,みんなはどうよ?

>別に物事を順序だてて考えなくても、論理力が高いと言う事はある
これはさすがに違うんじゃねえか?

もう見てないのかな

667 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 10:26:52 ]
自分の考えが否定されたり,お望みの回答が得られなかったら人格攻撃をするなんてのは
アレな人の典型のようにも思える

668 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:53:01 ]
>>666
呼びたいのか?w
俺はもう帰ってきて欲しくないが

669 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:25:34 ]
>>659
日本語の勉強を、中学校辺りから遣り直してください。
仮令国語の点数がよくても、このような文章としてなっていないものを書いているようではお郷が知れます。

670 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:30:12 ]
>>668
大丈夫、この手の香具師は自意識過剰だから自分の話が出ないか気になって必ずヲチしている。
プライドが充分に低いか高いかしなければ二度と書き込まないでくれるはずなのだが……

671 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:05:37 ]
最初は普通の受験生かと思ってたのに、こんな奴だったのかよw

672 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 21:17:51 ]
それが論理的かどうかは別だけど、
物事をシンプルにまとめる力がないと、プログラムでは苦労するだろうな、
と、経験的に思う。

673 名前:629 mailto:sage [2007/01/27(土) 21:19:32 ]
呼ばれたんで出て来ました!w
>>670さんは中々鋭いですね。私はナルシストです。

では本題に、

>>666  実際、多くの受験生が苦手としている科目が数学と物理です。
これは人が抽象的な思考をするのが苦手だからだと思います。
より具体的に説明された方が理解しやすいのは経験からも判ると思います。
ので、抽象化を'単なる'単純作業と捕らえるのは違うと思います。
しかし、出来る人からすると、単なる単純作業なんでしょうね。

>別に物事を順序だてて考えなくても、論理力が高いと言う事はある
これはさすがに違うんじゃねえか?

これについては、一例を出しますと、

ある繋がった1〜10迄の事があるとします。順序だてて考えて行くとは、
1.2.3.4.5.6.7.8.9.10と一から十迄規則的に考えて行く思考法の事です。

一方の私がそうでなくてもいける、と言ったのは、
2.5.1.4.6.3.7.9.10.8.と不規則ながらもこれを頭の中で正確に関連づける思考法が
人には出来るという事です。不規則な順序で進めても、それらを正確に関連づけて
最終的に上手く統合出来る。そしてそれは確固とした論理性であり論理力である。
と言うことが言いたかった訳です。




674 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:01:54 ]
>>673
>670によると、プライドが高いか低いかどっちかだそうだけどどっち?

675 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:05:17 ]
>多くの受験生が苦手としている科目が数学と物理です。
これは非常に簡単な理由がある。
こららは所謂理数系と言われる教科なのに、教えている教師は
所謂文系と言う数学物理を苦手とする傾向のある連中が多いからだ。

676 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:17:17 ]
>>673
×ナルシスト
○ナルシシスト

677 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:52:52 ]
高校数学物理で抽象化して捉える能力が重要だと思ったことはないなぁ
大学以降は抽象化されたものを扱う機会が増えたが、どちらかというとそういう考え方は苦手だった。
そんな自分でも高校のときは数学や物理には苦労しなかったので、
受験レベルの内容に抽象的な思考はそれほど必要ないと考えている。

>>629には数学や物理ができない原因が本当に抽象的な思考の部分にあるのかを考えてみてほしいな。
あと元々はプログラミングが役に立つかという話だったけど、
プログラミングに手を出したコストに対して得られる対価が小さいかなと思う。
もっと楽にスキルを上げる方法はありそう。
少しでも興味を持ったのなら、受験は抜きにして趣味でやってみるのもいいかもしれない。
嫌だったら辞めればいいだけの話だし。

678 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 22:57:28 ]
青チャートやれよ
それが終わったら赤に行け

679 名前:661 mailto:sage [2007/01/27(土) 23:40:15 ]
>>663
そうか、すまん。
お前が論理性があるというので、学校の数学から論理性を取り除いて残るものと言ったら計算しか思いつかなかった。
それだけのことだ。

680 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:10:15 ]
ナルシス
→ナルシシズム、ナルシシスト

ナルス
→ナルシズム、ナルシスト
ja.wikipedia.org/wiki/%E3%83%8A%E3%83%AB%E3%82%B9
お前同郷かw 頑張れよw

抽象化じゃなくて一般化という用語を使えばもっと楽だろうに。
〜ist の用法を一般化したらナルシシストになりそうなことは想像できるだろう。
ナルシスを知らなければしょうがないが。

681 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 14:02:55 ]
誤用とはいえ広く浸透してる言葉の揚げ足取っても仕方ないやね

682 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 15:52:17 ]
-istの一般的用法だと、人名の後ろにはistでなくてianをつけないか?

○machiavellian
×machiavellist

683 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 15:56:56 ]
暮らし安心ナルシアン



684 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 05:08:18 ]
大学の時に数値計算法の本をたくさん勉強した。
かなり役に立った。特に微積に関してはかなり深く勉強できたと思う。


でも今はCOBOLのプログラマだ・・・orz
全く数値計算法なんて役に立たねえっす。

685 名前:629 mailto:sage [2007/01/31(水) 05:51:03 ]
数値計算法の本って具体的にどんなですか?
良かったら教えてくださいまし。

686 名前:デフォルトの名無しさん [2007/01/31(水) 10:30:54 ]
最小二乗法ライブラリはどこにありまつか?

687 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:03:43 ]
>>686
ttp://www.netlib.org/lapack/index.html

688 名前:686 mailto:sage [2007/01/31(水) 11:13:39 ]
サンクス>>687

LAPACKでググったら、直線のサンプルもすぐ見つかりました。
ttp://www.sip.eee.yamaguchi-u.ac.jp/kou/lapack.html

実際にやりたいのは真円のフィッティングだから、もうちょっと調査しないと。

689 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:33:59 ]
円だと最小2乗では普通にやったら直線のように解けないよ。
数値解を繰り返しで求めるか

ttp://www.tensyo.com/urame/prog/linealgo.htm
中心からの距離の2乗の誤差の2乗で代用すれば解けるそうだ

690 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 11:40:36 ]
>>685
ニューメリカルレシピ・イン・シー

691 名前:686 mailto:sage [2007/01/31(水) 11:42:04 ]
あ、そうですか。では、そのやり方でやります。

やりたいのは4点(真円になるか”?”)から円の中心と半径を決めたいです。

>中心からの距離の2乗の誤差の2乗で代用

ちょっと難?






関係ないけど今回の場合、
ttp://okwave.jp/qa1812202.html
は参考にならないような気がしました。

692 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:02:12 ]
円は3点で求まる。  >>689にも ”3点を通る円” で公式が書かれているね

4点なら最小2乗を使うほどにはデータ量が多くない。

4点から3点を取り出しては公式で中心を求めて
4つ求まった中心の平均を出したらどうだろ?

その中心から4点への平均距離を求めて、それを半径の代用としたら?

693 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:09:42 ]
>>中心からの距離の2乗の誤差の2乗で代用
>ちょっと難?

これはデータの特性にもよるだろな。 使った感じでは十分だよ。
もっとも画像からのデータでデータ量は十分あったが

何より式一発で求まるのは非常にありがたい



694 名前:691 mailto:sage [2007/01/31(水) 12:19:57 ]
>>693
ごめんなさい、書き方が悪かったです。
そのやり方が悪いという意味じゃなくて、文章難しくて、
その文章どおりにするには何をどうすれば良いのか考えなきゃという意味です。

>>692
その通りやってみたんですが、トンデモない円が出来て(3点だと上手く行く)。。。

どういう算数でやろう?
最小二乗法は?
「中心からの距離の2乗の誤差の2乗で代用」ってどういう意味? ← 今ここ
といった感じです。

695 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 12:22:31 ]
>>692の方法でとんでもない円になるようなデータなら
最小2乗を使ってもとんでもない結果しか出ないよ

これがデータ100点あって1個だけ飛び離れてるような状態ならマシだけどさ

696 名前:691 mailto:sage [2007/01/31(水) 12:29:27 ]
>>695
その通りなんですが、
未知データの解析なので、
「最小二乗法を使っても円にならない」ならそれもひとつの結論、
みたいな。

697 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:38:16 ]
何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
もし論文なんかで出したら一笑されるぞ。

少数観測点からデータを復元する話は GPS などの位置計測で
よくある話で、そういう場合にまともな推定をしようとすれば
観測点の状態が分かってることが必要になる。
たとえば、真の値からのずれがある確率分布に従うと仮定を
置けば、最尤推定などによって最もそれっぽい場所が出る。

正規分布に従うと仮定してよい場合は最尤推定は最小自乗法に
一致するため、多くの GPS ではこの仮定を(知ってか知らずか)置いている。
多量のデータで最小自乗法が有効なのは、中心極限定理によって
分布が正規分布に漸近するため。

698 名前:691 mailto:sage [2007/01/31(水) 13:40:21 ]
あ、このページ
>★最小2乗法による円弧推定
ってそのまんまのタイトルがあった。

3点から円を求めるのもこのページから見つけたのに気付かなかったOTL

699 名前:691 mailto:sage [2007/01/31(水) 13:43:33 ]
>>697
>何も考えずにたった4点で最小二乗法をやるのは馬鹿げてる。
>もし論文なんかで出したら一笑されるぞ。

了解、納得でつ。

必ずしも円になるのか分からないデータの解析なので、
逆にデータ解析結果から観測点が円にならないという結論を出しますが。

ある部分は円、ある部分は円にならず従って応力受けてる、みたいな。


700 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 13:48:36 ]
>逆にデータ解析結果から観測点が円にならないという結論を出しますが。
これはいえない。最小自乗法では円にならなくても、ほかの方法では
円になる場合があるかもしれない。

701 名前:699 mailto:sage [2007/01/31(水) 13:57:36 ]
>>700
じゃあ、ほかの方法教えて。


ところで、
>★最小2乗法による円弧推定
を読んだら、
>この3つの方程式を解けば良い.
で終わってる。

解かないといけないのか。

702 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 14:12:46 ]
>>701
上で述べられていた任意の三点の中心の平均や重心は有力。
また、697 で述べたように、最尤推定はひとつの別の方法。
ほかにも最小自乗や最尤推定を部分に含むが、適当な
ペナルティ関数を設定して最小化問題として解く手もある。

最尤推定やペナルティ法は、円になるかどうか分からないものの
判定なら、おそらく最小自乗を用いるよりも良い結果が得られる。
(最小自乗では、一直線上のデータは半径が(ほぼ)無限大の円と
 判断されるが、通常の応用ではそれを弾きたいことが多い)

703 名前:701 mailto:sage [2007/01/31(水) 14:33:09 ]
>最尤推定やペナルティ法は

これらはライブラリにもなってなさそうだね。

実装難しそう...



704 名前:701 mailto:sage [2007/01/31(水) 18:42:23 ]
>2a( X*X/N -XX)+ 2b(X*Y/N -XY) =X(XX+YY)/N-XXX-XYY ----1)
>2a( X*Y/N -XY)+ 2b(Y*Y/N -YY) =Y(YY+XX)/N-YYY-XXY ----2)
>r*r=(XX+YY-2.0(a*X+b*Y) )/N+a*a+b*b; ----3)
>この3つの方程式を解けば良い.


やっぱこれ何度読んでも分からないんだけど、
4点をどうやって代入するわけでしょうか?

解答が目の前にありながら使いこなせないorz

705 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 12:41:01 ]
>>704
X → 肺i XX → 肺i*xi XXX → 肺i*xi*xi
Y → 輩i YY → 輩i*yi YYY → 輩i*yi*yi
以下略
の意じゃね? xi, yi が配列要素で直線上にない3点が最低限必要と。

706 名前:デフォルトの名無しさん mailto:sage [2007/02/05(月) 17:23:56 ]
>>704
後は、1) 2)式から a,b2変数の連立一次方程式を解けば中心が求まるでしょ?
それを3)に代入すれば半径も求まる


707 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 10:09:26 ]
たぶん、質問者の目的には、

 4点中 3点で求まる円から、 残った1点までの円からの距離2乗(|中心からの距離-半径|)を出して
 それを4つ加算した結果、
またはそれを半径で割って正規化したもの

でいいんじゃないのか?




708 名前:デフォルトの名無しさん [2007/02/28(水) 21:55:01 ]
保守アゲと質問募集

709 名前:デフォルトの名無しさん [2007/03/25(日) 15:02:16 ]
幅 W、高さ H の楕円上に N個の点を等間隔に打とうと思いました。

for(i = 0; i < N; i++) {
 int x = cx + sin(i * 2 * PI / N) * (W / 2);
 int y = cy + cos(i * 2 * PI / N) * (H / 2);
 plot(x, y);
}

ところがというか当然というか、これだと W = H の円の時にしか点が等間隔になりません。
どうしたら良いでしょうか?
知っていなくてはいけない公式などありましたら教えてくださいませ。


710 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 15:24:58 ]
少し上のほうにあった,放物線を速さ一定で進むというのと同じ話だよ

711 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 15:26:04 ]
あれ,と思ったけどそれは他スレか

712 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 15:44:51 ]
楕円の円周の長さは 楕円積分という厄介な分野で
それを等間隔に分割というのは、その厄介な問題に挑戦するという事になる

数式では基本的に解けないから、数値積分で頑張るしかないよ

713 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 15:46:43 ]
W > H > 0になるようにして
int x = cx + W * cos(i * 2 * PI / N);
int y = cy + H * sin(i * 2 * PI / N);
でどうでっしゃろ?





714 名前:713 mailto:sage [2007/03/25(日) 15:47:20 ]
あ、無理だったごめん

715 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 16:06:21 ]
楕円関数の近似式をkの値を適当に決めたルックアップテーブルみたいな形で用意しとけばいいんじゃね?
それつかって円周を求めた(ここではLとおく)として
始点(仮に中心からx軸方向に幅/2移動した点としよう)から
円周にそってl ( = n×L, nは適当な実数)分移動したときの座標(x,y)ってのは楽に求まるの?
精度気にしないのならこれでいけると思うんだけど、どうでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<259KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef