- ベストアンサー
距離と加速度の公式の時間について
私は中学校しかでておらず、 趣味で数学を、勉強しているのですが、 X=1/2*加速度*時間^2 +初期速度*時間+ 初期位置 の時間の事なのですが、 もし、運動の途中で、 反対方向に加速したとすれば、マイナスの加速で速度は落ちるはずなのに、 時間は増えつづけているので、 速度は上がるばかりになると思うのですが 実際はどうなるのでしょうか。 簡単なプログラムでキャラクターの移動に 加速度の公式を使ったらやはり、加速の仕方 はどんどんあがっていきました。 往復の動きをして反対方向に変わる時は、 速度は減少しますが、その後の加速のしかたが すごく増えているようです。 調べようとしても、数学や物理はおくが 深すぎて、なかなか、疑問が解決せず、 質問させていただきました。 何かご存知の方がおりましたら、 是非、教えて下さい。 よろしくお願いします。
- みんなの回答 (13)
- 専門家の回答
質問者が選んだベストアンサー
>> 0.5にちかずいている様にみえました。計算限界まで数字を大きくしてみましたがどのばあいも0.5…になっていました。 << ご苦労様でした、実験して得る結果は、事実であるから宝で重みがあります。 間が空いてしまいましたが、要約すると キャラを動かしたプログラム V = V+AT Tは微小な時間 X = X+VT 上記を延々と繰り返す。 の X は N 回くり返すと X = (1+2+3+4+5+ ‥‥ +N)AT^2 となり、 時間経過 t = NT で書き換えると X = (1からNまでの総和/N^2)At^2 と書ける。 そしてあなたが実験した結果によれば、カッコの中は N が大きくなると 0.5 にちかずいている様にみえました。つまり X = 0.5At^2 に近付く様にみえました、という結果を得たわけですね。 で、 >> 趣味で数学を、勉強しているのですが、 >> X=1/2*加速度*時間^2+初期速度*時間+初期位置 >> の時間の事なのですが、‥‥ この式は初期速度や初期位置がゼロだと、 X=1/2*加速度*経過時間^2 ですよね。あなたが実験で得た結果と較べてみましょう。いかがですか。 この式の正体は、キャラを動かすプログラムの足し込み計算を莫大な数こなすと、近付いて行く究極の形だったのでしょうか。 こんなことは公式?をパッと見ただけでは想像付かないですよね、普通。 以上が、No7の補足にお書きになった >> T=0.01と固定して、なぜ加速した時間 >> の経過を知ることができるのか >> 不思議ですが >> プログラムはうまく成功しました。 の、 不思議ですがの所の裏事情です、、と、いきなり言われても消化不良なのが普通ですね。 プログラムは、加速度を時間で積分すれば速度になる、速度を時間で積分すれば移動距離になる、この積分を(紙の上での数式いじりでなく)実際に行為してるのです。例え話などのお茶にごしは全く無い、正真正銘です。 「積分とは細かく分けたのを足すこと」とか数学の本にあると思いますが、V=V+ATやX=X+VTがその実例です。 キャラ動かしプログラムは積分を理解することに通底してます。
その他の回答 (12)
- Teleskope
- ベストアンサー率61% (302/489)
N = 10 以下を10回ほど繰り返す。 S = 0 I = 1からMまで S=S+I を繰り返す。 S/(N*N) を表示。 N = N*10 にして S=0の所に戻って繰り返す。 こんな感じです。
お礼
計算できる範囲で見たところ 0.5にちかずいている様に みえました。 教えていただいた方法で試したところ 数字が大きくなりすぎると 計算できず パソコンが止まってしまったので (1+2+3…N)をΣkとして N*(N+1)/2で計算し、 それを、N*Nでわりました 正しく計算できる限界まで数字を大きく してみましたがどのばあいも 0.5…になっていました。 教えていただいた方法の結果をみても 増えたり減ったりしており もともとそういう結果なのか パソコンが計算しきれていないのか 判断できないため中止し、 Σkを使った手動による計算にしました。 やはり違いますでしょうか。 たびたび申し訳ありません。
- Teleskope
- ベストアンサー率61% (302/489)
N = N+10 では増え方がのんびりすぎるので、 N = N*10 がいいと思います。 Nを莫大な数にしたいのです。
- Teleskope
- ベストアンサー率61% (302/489)
素早い実行ありがとうございます! ゼロになってしまうのですか、いかがでしょうか、例えばN=3なら (1+2+3)/3^2 = 6/9 ≠ 0 というふうにですね。 ちょっとプログラムの見直しを。 これの目的は; キャラを動かすプログラムを走らせて 画面の動きを眺めてる状態では、演算の繰り返し数 N が莫大な数になっていますよね。その莫大な数では、 (1+2+3+…+N)/N^2 が何に近付くのか? という予想です。
お礼
0になるというのは私がかってに考えた事でして 実際に確認したわけではないです。 もしかしたら0に限りなく近づくという ことかもしれません。 プログラムは下のようにしました。 ’印はプログラム内容の説明文です ---------------------------------------- 母艦最大化。 ’ウインドウの大きさ 白色で、画面クリア。 1000回( ’繰り返し命令 T=T+1 ’表示してる行数カウント もし、T=30 ならば 白色で、画面クリア。 ’画面いっぱいに もし、T=30 ならば、T=0 ’なったら消して ’1行目から書き出す N=N+100000000 ’計算 S=S+N S=S/(N^2) Sを、表示 0.0005秒、待つ ’スピード調節 ) ’繰り返しおわり ------------------------------------------- N=N*10としてしまうと答えがすべて0 になってしまいます。 だから足しこむ数を大きくしています。 何に近づくということでしたら 0に近づくけれど 0にはならないのではないでしょうか。 要領を得ずすいません。
- Teleskope
- ベストアンサー率61% (302/489)
>> プログラムはうまく成功しました。 << お疲れさまでした! >> X=X+VT の総和と (1/2)At^2 が同じものだという事、 T=0.01秒と固定して、なぜ加速した時間の経過Tを知ることができるのか、 不思議ですが << ぜひ、この不透明部分を制覇しておきましょう、謎のまま残したのではもったいないです、体験すれば良い筋肉が付きます。 なお、T と t の記号を貴方に合わせます。(No4,5を読み返すと合ってないので読みづらかったですね、失礼しました。) T は演算1回の小さな時間。 t はプログラムが走ってる時間経過です。 X も V も初期値ぜんぶゼロだとします。 プログラムでは先ず、 V = V+AT という計算の繰り返しでした。Vの変化を追ってみると、 回 数 0 V = 0 1 V = 0+AT = AT 2 V = 0+AT+AT = 2AT 3 V = 0+AT+AT+AT = 3AT 4 V = 0+AT+AT+AT+AT = 4AT ‥‥‥ という単純明快な増え方ですね。 続いてこれを、Xの式に足し込むのを 繰り返しました。 X = X+VT でしたね。 このXの変化を追ってみると、 回 数 0 X = 0 1 X = ATT 2 X = ATT+2ATT 3 X = ATT+2ATT+3ATT 4 X = ATT+2ATT+3ATT+4ATT ‥‥‥ N X = ATT+2ATT+3ATT+4ATT+‥‥+NATT ‥‥‥ となっていたんですね。 これを ATT でくくっておきます。 X = (1+2+3+4+5+ ‥‥ +N)ATT X = (1+2+3+4+5+ ‥‥ +N)AT^2 話が変わって、 プログラムでは計算しなかったけど、演算の時間きざみT と時間経過t の関係は t = t+T ですよね? 演算をN回くり返すと時間経過は t = T+T+T+T+T+… = NT t = NT です。 これを逆にT=の形に書くと T = t/N ですね。 このTを上記の Xの式の T^2 に入れると、 X = (1+2+3+4+5+ ‥‥ +N)A(t^2/N^2) となりました。 なんだか At^2 の姿が見えてきましたね、はっきり分けて書くと、 X = (1からNまでの総和/N^2)At^2 です。 これが肝です; 1からNまでの総和/N^2 これは何者なのか? プログラムで力づくで計算して正体を見てみましょう。 分子の「1からNまでの総和」はループ計算の練習問題でよくありますよね。それを計算して、Nの2乗で割る。たったそれだけですから、実際やってみてください。 プログラムは↓こんなです。 Nを例えば10だとする。 ↓ 総和の変数を例えば実数Sとして、初期値 S=0とし、そこに1からNまで足し込む。 ↓ 結果のSをN^2で割る。 それを画面1行に表示して改行する。表示は小数点以下20桁ほど、たっぷり表示。 ↓ Nを増してみて、結果の表示がどう変わっていくかを自分の目で見て、「…だ、…じゃないか」と、結論なり推理を出す! そうするために例えばNを10 倍 ずつ増してループさせる。(Nが溢れない程度の回数でループさせる。) 結果は‥
お礼
再度にわたるご指導ありがとうございます。 1からNまでの総和/N^2のプログラム 試してみました。 いろいろな数字でやってみたところ 最初の数字から小数点単位で数字が減少して 本当に少しづつですが、0にちかづいている ように思えました N=N+10とした時、Sが最小の値になるのに かかる繰り返し回数は1000で、 N=N+100とした時は、100 1000なら10でした いずれの場合も0にすごく近づいているのですが それ以上はパソコンが計算しきれないようでした 最後には0になるのだろうと思いますが 1からNまでの総和/N^2とは何か という結論をだすことはできませんでした。
- Silicagel
- ベストアンサー率20% (15/73)
その勉強熱心さに敬服します.すばらしいですね. 思うに考えるのが好きな方と見受けましたので, あまりズバリの回答は望まれていないような気がします. 式については皆さん色々書いておられるので,現象の理解ということについて. そのあたりは微分積分の話がわかると理解しやすいと思いますが,中学ではでてきません. 微積を使わないで速度・加速度の話を理解するとなれば, 式を使ってどうこうよりはグラフを描いてみるのがいいかと思います. 速度vを縦軸,時刻tを横軸とするグラフを見たことがあると思いますが, その場合のグラフの傾きが加速度a,グラフと横軸に囲まれた部分が移動距離になります. 位置xを縦軸,時刻tを横軸とするグラフだと,傾きが速度vになります. なぜそうなるかは微積の話ですが,先人は便利なものを発明したものです. これを利用しない手はありません. 件のプログラムですが,速度vと時刻tのグラフと位置xと時刻tのグラフを描いてみてはいかがでしょう. ジェットでの加減速なら加速度aは一定ですからv-tのグラフは直線になります(傾きaが一定) そしてグラフと横軸に囲まれた部分の面積(移動距離=位置x)は, 三角形ですからat(縦)×t(横)÷2で X=X+(1/2)*A*T^2+V*T の (1/2)*A*T^2 の部分が出てきます. これがこの式のでてくる理由です. 往復する場合はx-tのグラフが横軸を中心にギザギザと波打つようなグラフになると思いますが, x-tのグラフを描けばその傾きからvがわかり, v-tのグラフも描けます. いろいろやってみてください.できたときはきっと相当うれしいと思います. ちなみに X=X+(1/2)*A*T^2+V*T のVは初期速度なので定数で V=V+A*T のVを代入してしまうとおかしくなりますよ. プログラム上でそんな計算をしていないかもチェックしてみてください. あと,ある点での時を表す場合は時刻といいます. 時間は時刻と時刻の間の長さのことです.
- Teleskope
- ベストアンサー率61% (302/489)
>> V = V+A*t X = X+(1/2)*A*t^2+V*t T = T+0.01 キーボードの矢印キー右左で加速度Aの+-を変更しています。 キーを押さない場合Aの値は0になります。 時間左右どちらかに加速した時のみカウントしています。 キーボードを離すと加速度は0なので等速直線運動になってます。 << なるほど。加速度が二重に足し込まれてますね。(Xの式にです。) これではTが増すと檄速く動いてしまいますね。 Aは、先にVの式に足し込まれてますよね、その結果のVを使ってXを計算してますから、そこにAは潜り込んで参加してるのです。 だから (1/2)*A*t^2 の項が余計でした。(*下記余談) 時間の足し込みは要りません、0.01秒一定のままで計算を繰り返します。加減速キーを押す押さないに関係なく、常に、毎画面に1回、計算を続けましょう。 矢印キー上下でAの数値を増減、とかもやるんですよね、たぶん。DELキーでゼロにリセットとか。 画面のどこかにA,V,Xの数値を表示しておけばどうでしょう。 Xはキャラの位置そのもので表示されてますから、 AとVも、値を画面座標にして、何かキャラを1個ずつ表示させると、運動の理解の参考になりますよ 画面中央がゼロになるように表示すればプラスマイナスの変化がわかりやすいです。ゼロとプラスとマイナスでキャラの色とかを3種類変えると一層見やすくなります。 学校で、教師が図を板書して、最初に 加速度 ⇔ 速度 ⇔ 距離 の関係を教わるとき、誰でも頭かかえます。これを慣れるのは時間かかるんです。ところが、キャラを動かすプログラムを体験すると とても分かりやすいんです。 (*)余談 余談ですから気楽に。小難しい話ですが、じつは X に Vt を毎回足し込むと、その総和が (1/2)AT^2 になるのです。 この T は T = T+t と足し込んだもの、つまり経過時間、現実の時間です。 参考までに、計算時間キザミ t の方は技術屋は「ティック tick」とか言うこともあります。時計が時を刻む音=ティックタック の ティク が語源のようです。
お礼
やっと意味がわかりました 最初 (1/2)*A*t^2はどこへいったんだろう と思い、それでは加速度運動にならないんじゃ ないかと悩みましたが、 X=X+VTの総和と(1/2)*A*t^2が同じものだ という事で納得できました。 T=0.01と固定して、なぜ加速した時間 の経過を知ることができるのか 不思議ですが プログラムはうまく成功しました。 本当にありがとうございました。
- hitokotonusi
- ベストアンサー率52% (571/1086)
in #3 comment >時間を掛けると答えの絶対値はどんどん大きくなってしまうとおもうのです。 #2で書きましたとおり、初速の向きと加速度の向きが逆ならば、『答えの絶対値』は一旦小さくなり、ゼロを通過して速度が逆向きになります。それ以後は、加速度が一定であるかぎり『答えの絶対値はどんどん大きく』なりますが、現実には何かにぶつかってとまります。 >往復すればする程、速度はあがりやすく >なるとおもうのですが、それが疑問 >だったのです。 ここで言う『往復』がどういう過程かよくつかめませんが、一次元運動で、ある時刻(たとえば真上にジャンプしたキャラクターが地面に着地した時刻)で“むりやり”キャラクターの移動方向を変える(再び真上にジャンプする)のだとしたら、その時刻を時間原点にする必要があります。その時刻をt1とすると、 z' = z'0 + v'0 * (t-t1) - (1/2)g * (t-t1)^2 v' = v'0 -g * (t-t1) です。加速度g以外は変わる可能性がありますから'をつけました。
お礼
たびたび申し訳ありません。 おっしゃる通りまちがいなかったのですが 私の公式の使い方が間違っていたため 誤解していました。 加速し続ければ、速度上昇のしかたは はやくなるのはあたりまえでした。 失礼致しました。
- mii-japan
- ベストアンサー率30% (874/2820)
>速度や加速度の+-はわかるのですが、時間は増える一方なので時間を掛けると答えの絶対値はどんどん大きくなってしまうとおもうのです。 加速度が一定ならば、無限に速度が上昇します(相対性理論からの制約はありますが) 往復運動をする場合、加速度が時間や位置や速度によって変化します 振り子の場合、錘の位置によって加速度が変化します、(正確には加速度の速度の分力、空気の抵抗も考えれば速度によっても変化します) 加速度が変化すると速度の変化が変化します(ちょっと判りにくいですね) 加速度は変化しないと思い込んでいませんか(加速度はいろいろの要因から与えられます、その中には一定のものも変化するものもあります)
お礼
往復運動は等加速度運動ではなかったんですね F=MAなので 加える力を一定にして抵抗や摩擦などが なければ加速度は一定だと思っていました。 もっとよく調べてみようと思います ありがとうございました。
- Teleskope
- ベストアンサー率61% (302/489)
>> 位置 X = (1/2)at^2+Vot+Xo 速度や加速度の+-はわかるが、時間は増える一方なので時間を掛けると答えの絶対値はどんどん大きくなってしまうとおもう、 簡単なプログラムでキャラクターの移動にこの公式を使ったらやはり、動きがどんどん速くなって何か変、<< という質問だと受け取っていいでしょうか?その前提でお答えします。 キャラを動かすプログラムに X = (1/2)at^2+Vot+Xo の式そのままは使えません。この式が出てくる元を使うのです。そう作ったプログラムを繰り返し動かすと、キャラの位置が上式になる、という意味です。 そのプログラムは、 (1) まず初期条件を設定 位置の変数 X; 値をゼロにするとか、画面の特定のスタート位置の座標を代入ですね。これが上式の Xo です。 速度の変数 V; 値をゼロとか、初速の値を入れます。これが上式の Vo です。 加速度の変数 a; これもゼロとか初期値ですね。 (2) キャラを動かすには、1画面時間に一回実行させますよね。この時間をtとします。例えば 0.01秒とか、非常に小さくて目には分らない短い時間です。 毎回やる計算は、 X に V*t を足し込む。つまり X=X+V*t V に a*t を足し込む。つまり V=V+a*t a を 必要に応じて新しい値に変える。例えばジョイスティックから読み込むとか、数値テーブル(表)から順々に値を拾う。 以上です。 毎画面ごとに(2)を実行する、つまり延々と繰り返す。 こんな構成でしょうか? 「往復させる」というのは具体的にどうやってますか?
お礼
そのままは使えないんですね 最初、この式の説明を見たときに 初期位置と初期速度さえわかれば T秒後の位置と速度がわかると 書いてあったので、プログラムには V=V+A*T X=X+(1/2)*A*T^2+V*T としていました。 キーボードの矢印キーの右左で加速度変数Aの +-を変更しています。 ボタンを押さない場合のAの値は0になります。 時間はT=T+0.01としており、 左右どちらかに加速した時のみ カウントしています。 時間の進み方は時計の秒針とあまりかわりません。 動かしてみたところ、加速のしかたもうまく いっていましたし、矢印キーで反対に加速すると じょじょに速度は減少し0となり反対方向へ加速していきます。 キーボードを離すと加速度は0なので等速直線運動 になってます。 抵抗が無いの時の慣性力、加速、減速の様子はうまく 表現できていると思いますし、矢印キー操作で 左右自由に行き来できるのですが、 時間Tの値だけは動くほどに増え続けるので T=1で速度0からの速度上昇とT=50の時では 同じ速度まで上昇するのにかかる時間は 後者のほうが短くなっていました プログラムのイメージとしては キャラを宇宙船とみたてた時 左右のジェット推進による一直線上の運動だと 思います(Aの絶対値は一定) ちなみにこの式で重力加速度を使った 上から下への移動では物がポトリと落ちる様子 がよくできました。 ご紹介いただいた方法でやってみます。 ありがとうございました。
- piricara
- ベストアンサー率30% (42/140)
点Aから点Bまでの往復運動 1回 について考えて見ます。 Aから出発したら、等加速運動によって、速度を上げます。 AとBの中間地点で、それまでの加速度と同じ加速度で、符号が逆の加速度で加速(つまり減速)します。 B点で速度0になり、移動方向も反転して、Aに向かって移動します。 また、AとBの中間点で、さらに逆向きに加速し(減速)、A点で速度0になった時、加速を終了します。 これは、単純なモデルですが、実際には、人や車などの移動はこのような加速を行っていませんので、この通りに動かしたら、ちょっと奇妙に感じられるかもしれません。 ボールを上に投げた時に似ていますが、この場合は、落ちてくるとき、地面直前の速度は、打ち上げ速度まで加速されていますが、地面に衝突した瞬間、無限大の加速度で減速され、瞬間的に速度0になるところが違います。 実際に人や車が停止するときは、加速を徐々に弱くしながら停止しているため、もっと複雑な計算を行わないと、停止したい点で止まる事ができません。
お礼
詳しい解答ありがとうございます。 私が不思議に思うのは、式の中に含まれている 時間の事なのです。 速度や加速度の+-はわかるのですが、 時間は増える一方なので 時間を掛けると答えの絶対値はどんどん 大きくなってしまうとおもうのです。 往復すればする程、速度はあがりやすく なるとおもうのですが、それが疑問 だったのです。 言葉が足りず申し訳ありませんでした。
- 1
- 2
お礼
0.5は1/2のことだったんですね (1+2+3+4+5+ ‥‥ +N)/n^2のNが どんな数であっても答えは0.5になるから 公式として常に1/2を定義できるのですね 物理の運動に積分はかかせない とは聞いていましたが、これほど 直接的に関わっているとは思っていませんでした 加速度を時間で積分すれば速度 速度を時間で積分すれば移動距離が そのまま式に表現されているんですね。 これらの事を踏まえてもう一度積分にも 挑戦してみようと思います。 これからは、他の法則の公式を見たときにも 今回のような考え方でやっていこう と思います。 たくさんの指導と書き込み、本当に ありがとうございました。