質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

2回答

6595閲覧

【エクセル積分計算】難易度★★☆☆☆

退会済みユーザー

退会済みユーザー

総合スコア0

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2017/10/06 16:18

編集2017/10/08 02:43

積分計算を行う方法
http://www.signalysis.co.jp/teihei/aop/integral.pdf

こちらのページを参考にしながら、任意の数値で行いたいと考えております。
加速する部分と速度を保つ部分は、なんとか作ったつもりです。

今回の条件なのですが、下にある画像の通りでございます。

"D3"【初速度(km/h)】 0km
"D4"【最高速度(km/h)】 40km
"D5"【移動距離(m)】 270m
"D6"【加速係数】 0.2

"D9"【加速度(m/s²)】
=($D$4/3.6-$D$3/3.6)/$D$11

"D10"【40kmに到達した時の走行距離(m)】
=(($D$4/3.6)^2/(2*$D$6*9.8))

"D11"【40kmに到達した時の所要時間(s)】
=2*$D$10/($D$4/3.6)

"C17"【0.01秒時点での速度(m/s)】
=IF($C$16+$D$9*$B17>=$D$4/3.6,$D$4/3.6,$C$16+$D$9*$B17)

いまのところ、以上のような状態です。
この式をC列に引っ張っています。

さらにこの後、減速する部分まで自動で入力したいと考えており、自分で考えた式が以下です。

"C17"
=IF($D17>=($D$5-$D$10),$D$4/3.6-$D$9B17,IF($C$16+$D$9$B17>=$D$4/3.6,$D$4/3.6,$C$16+$D$9*$B17))

※解説
"C17"
=IF(270m(目的地までの距離)-31.49m(最高速度まで加速するための距離)がD列の値を超えた場合,11.111(初速度)+マイナス1.96(加速度)*時間,元の関数)

といった内容のつもりです。
しかし、この式を"C17"に入力しようとしたら、循環関数になってしまいます。

どなたか解決できる式を教えて頂けましたら幸いです。

■補足

yahoo!ボックスというサービスを利用して、画像が見えるようにしました。

以下のURLから、今回の画像を確認して頂けます。
https://yahoo.jp/box/yAGRSe

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

ご想定の内容がどのようなものか理解しきれていないかもしれませんが、下記のように考えてみました。
MS Excelではなく LibreOffice Calcを使用していますが、数式等は同じものが使えると思います。

計算シートのキャプチャ

上記のシートでは下記のような運動を考えるものとしています。

  • 初速度から等加速度で速度が上昇するが、最高速度に到達するとそれ以上は速度は上昇しない
  • 移動距離の位置では速度が0となるように等加速度での減速を行う
  • 減速が行われるまでは等速運動を行う
  • 加速時、減速時の加速度は同じである

質問に記載の数式に出てくる9.8というのは地球の重力加速度定数と認識しましたが、
どのような想定でこの値が出てくるのかは、ご質問の内容からは把握できませんでした。
そのため、加速係数から加速度を算出する部分については考慮していません。

Excelでもそうですが、セルやセル範囲には名前をつけることができます。
その機能を用いて上記のシートでは計算結果として参照するセルに名前をつけています。
赤く塗りつぶしているセルの名前で、2つ右のセルの値が参照できるようにして数式を組み立てています。

また、画像だとコピペがしづらいため、速度Aと距離Aを求める数式を下記に記載します。

  • 速度A (C16)
=IF($B16<減速開始時間,IF((初速度+加速度*$B16)<最高速度,初速度+加速度*$B16,最高速度),IF(0<(最高速度-(加速度*($B16-減速開始時間))), 最高速度-(加速度*($B16-減速開始時間)),0))
  • 距離A (D16)
=IF($B16<所要時間,IF($B16<最高速度到達時間,(初速度*$B16)+SUMPRODUCT(1/2,加速度,POWER($B16,2)),IF($B16<減速開始時間,最高速度到達距離+(最高速度 *($B16-最高速度到達時間)),移動距離-SUMPRODUCT(1/2,加速度,POWER(所要時間-$B16,2)))),移動距離)

ご参考になれば幸いです。

投稿2017/10/07 03:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/08 02:37

とてもご丁寧な回答ありがとうございます。 ここまでのグラフを作って頂けるとは思っておりませんでしたので、驚いております。 >> 上記のシートでは下記のような運動を考えるものとしています。 この認識の通りでございます。 >> 質問に記載の数式に出てくる9.8というのは地球の重力加速度定数と認識しましたが、 どのような想定でこの値が出てくるのかは、ご質問の内容からは把握できませんでした。 こちらのサイト様を参考にしました。 【ゼロ発進加速した自動車が一定速度に達するまでの走行距離と所要時間】 http://www5d.biglobe.ne.jp/Jusl/Keisanki/JTSL/SokudoKasoku.html 加速係数という数値を0.2としたうえで、したに公式がありましたので、こちらの式を参考にしています。 早速、作成して頂いたシートをエクセルにて再現してみました。 ※以下画像ファイルです。 https://yahoo.jp/box/cbbgYq 正直なところ、まだ理解できていない部分がいくつかありますので、1つずつ調べながら研究していこうと考えております。 D9セルとD11セルのSUMPRODUCT関数を使った式はどのような内容の計算が行われておりますでしょうか? 普段使ったことのない関数だったので、教えて頂ければ助かります。
退会済みユーザー

退会済みユーザー

2017/10/08 22:52 編集

参考にされたページでは、加速度の算出に際して質量を考慮した計算を行っているものと思われます。 F=maですね。 その場合、地球上の物体の運動を考えるのであれば9.8が値に出てくるのは納得できます。 > D9セルとD11セルのSUMPRODUCT関数を使った式はどのような内容の計算が行われておりますでしょうか? SUMPRODUCT関数はSUM関数の拡張版として掛け算も行うものと考えて頂ければよいかと思います。 D9では、等加速度直線運動での、ある時間に到達する距離を公式から求めていますが、 X(t) = v0t + 1/2at^2 の "1/2", "a", "t^2" の3つの掛け算をSUMPRODUCT関数で計算しています。 ただ、ここでは単に引数の値で掛け算を行っているだけなので、PRODUCT関数の方が適切であったように思います。
退会済みユーザー

退会済みユーザー

2017/10/08 06:24 編集

よくよく考えると、時間の2乗をPOWER関数で計算していますが、PRODUCT(1/2, a, t, t)でそのまま計算させてもよかったかもしれません。 あと、1点訂正があります。加速度の単位変換式が間違っていたようです。km/h^2なので、m/s^2に変換する場合は3600でもう1度割る必要があります。 なんだか大きいような気がするとは思っていたのですが、気づけていませんでした。失礼しました。
退会済みユーザー

退会済みユーザー

2017/10/09 01:51

ご返信ありがとうございます。 >> PRODUCT(1/2, a, t, t)でそのまま計算させてもよかったかもしれません。 そうだったんですね。 せっかく覚えることができたので、SUMPRODUCT関数で計算してみますね。 >> 1点訂正があります。 やってみます。 ありがとうございます。
guest

0

速度の場合はsuyamaさんのような場合分けをするしかなさそうですが、
距離は場合分けが面倒そうなので、リンク先にある台形法か中点法で数値計算で積分したほうがいいと思います。
距離の初期値
D16 = 0
距離初期値以外D17をドラッグ&ドロップでコピー
D17 = D16 + (C16 + C17)/2*(B17 - B16)

http://www.sci.kagoshima-u.ac.jp/~shigeta/AC-NumericalDiffAndInt-Basic.pdf

投稿2017/10/07 11:37

編集2017/10/07 23:23
GOTA77

総合スコア160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/08 02:40

ご返信ありがとうございます。 URL確認しました。 台形法か中点法という方法があるのですね。 少々理解が難しい内容だったのですが、読み解きながら参考にさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問