No.1
- 回答日時:
y= f(x) の形で,曲線の関数形がわかっているんでしょうか?
わかっているなら,x1~x2 の間の長さは
(1) ∫_{x1}^{x2} √{ 1 + (dy/dx)^2 } dx
ですが....
円のように同じ x の値に対して y が2つ以上あるなら,
部分部分に分けて別々に長さを計算する必要があります.
早速の回答ありがとうございます。
しかしながら・・それじゃダメなのです・・・・・
何故かと言うとその式は結局、直線近似を積分しているのでベジェの式を展開してその式にあてはめると、答えが出なくなってしまうのです。
やはり直線近似しか方法はないのですかね・・
No.2ベストアンサー
- 回答日時:
例えば2次元ユークリッド平面上の三次ベジェ曲線上の点の座標(x,y)は、パラメータt∈[0,1]を用いて
x(t) = Px[1] ((1-t)^3) + 3Px[2] ((1-t)^2) + 3 Px[3] (1-t)(t^2) + Px[4] (t^3)
y(t) = Py[1] ((1-t)^3) + 3Py[2] ((1-t)^2) + 3 Py[3] (1-t)(t^2) + Py[4] (t^3)
と表せます。ここに(Px[1],Py[1]),....,(Px[4],Py[4])は「アンカー」の座標です。
で、この曲線のながさ(「みちのり」と言います)は
L=∫{t=0~1} √((dx/dt)^2 + (dy/dt)^2) dt
で与えられます。
dx/dt = -3 Px[1] ((1-t)^2) - 6Px[2] (1-t) + 3 Px[3] (2- 3t) + 3Px[4] (t^2)
dy/dtもおんなじことですね。
結局
L=∫{t=0~1} √(At^4+Bt^3+Ct^2+Dt+E) dt
という形に整理できます。数値計算をするのなら、∫dtの代わりにΣΔtを使った区分求積法をやるだけの事ですから、特に問題はない。「答えが出なくなってしまう」なんてこと、全然ありません。
するってえと、この積分を解析的に解こうとすると一筋縄ではいかない、ということが問題なんでしょうか?
この回答への補足
確かに出ますよね(苦笑)
この式「L=∫{t=0~1} √(At^4+Bt^3+Ct^2+Dt+E) dt」
は結局「t」の値を細分化して積分してるんですよね?
この式で計算すると直線近似とどのくらいの精度が違うものなんでしょうか?
No.3
- 回答日時:
状況がよくつかめないんですが...
フラクタル曲線みたいなものは別にして,
解析的な式で書けている限り,y = f(x) 型なら私が書いた式,
あるいはパラメーター表示なら stomachman さんが書かれた式で
曲線の長さが厳密に表現できます.
確かに微小範囲 x~x+Δx 間で直線近似していますが,
Δx→0 の極限をとっていますので,積分形にした表現は厳密です.
積分が解析的にできなければ,数値積分で必要なだけ精度を上げられます.
本質的に stomachman さんの趣旨と同じことです.
状況をもっと具体的に書かれた方が,回答しやすいと思いますよ.
所詮専門外ですので,私がわかるとは限りませんが...
回答ありがとうございます。
プログラムの中で使うベジェの式なのです。
近似で答えは出るのですが「細分化」しない方法を要求されておりまして・・
色々調べてみましたが「直線近似」以外では求められないようでした。
ありがとうございました。
No.4
- 回答日時:
> 確かに出ますよね(苦笑)
どういう意味でしょうね。
どうやら数値計算をやりたいだけのようですから、あとは区分求積法の意味をご理解になれば解決だと思うんですがね。
「直線近似」なる方法(どんな数学者に訊いたって知らんと言うと思いますけど)が区分求積法と違うと仰るのなら、その内容を補足してくださいな、苦笑する前にね。
最初に答えが出ないと書いたのは・・
計算上では「答え」は出るのですが、それをプログラムとして組み込むと使えないものもあります。
曲線を分割して弧の長さを求めた場合、プログラムの中で使うと桁落ちしてしまう可能性があるのです。
「区分求積法」をそのようなやり方だと思っていまして・・なにせ専門外なので・・妙な質問の仕方しかできず
気を悪くされたようですいません。
No.5
- 回答日時:
桁落ち?それはまともに端から累計していく場合に起こり得ますね。
A+B (|A|>|B|)という足し算において桁揃えをする際に、もし|B|がAの丸め誤差以下であると、答はA+B=Aになってしまって、Bが無視される。この現象のことですね。
それを避けるには、部分和を作りながら足していくのが有効です。
どの部分和もだいたい同じ位の大きさの値になるようにするのが理想的ですが、簡単にやるなら、区間の数Kを2の冪乗にしておき(つまりK=2^M)
S=Σ{k=1,...,2^P} a[k]
を求めるのに
a[1,n]=a[2n-1]+a[2n] (n=1,2,...,2^(M-1))
a[m,n]=a[m-1,2n-1]+a[m-1,2n] (n=1,2,...,2^(M-m))
とすればm=Mになると
a[M,n] = a[M-1,2n-1]+a[M-1,2n] (n=1)
となって、
S=a[M,1]
ですね。こういう風にやると、足し算する二つの数の絶対値は大体同じ位の大きさになるので、桁落ちが生じにくくなります。
丸め誤差を避けるためには、もう一つ重要なポイントがあります。
必ず計算精度(有効桁数)を変えて2度計算して、両者の答が(予想される誤差の範囲内で)合うことを確認して下さい。
もし答が合えば、有効桁数の少ない方の計算で既に丸め誤差が問題になっていないことが分かります。
しかしもし合わない場合には、有効桁数の少ない方が誤っていることは勿論、有効桁数の多い方だってまだ桁数が足りない可能性がある訳です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 曲線y= f(x)上の任意の点Pで引いた法線とx軸の交点をN、Pからx軸に下ろした垂線の足をHとする 3 2022/12/25 10:45
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- 数学 1より大きい実数からなる数列{a[n]}がlim[n→∞]a[n]=1をみたしています。 xy平面上 2 2023/06/10 11:47
- 数学 3次元実ベクトル空間において, 平面 P:x-y+z+1=0 と直線 L:2(x-1)=-y=-z 3 2022/10/29 14:39
- 数学 数学の問題について 1 2023/02/13 18:40
- 数学 数学『積分』 2つの曲線の間の面積 公式は 「y=f(x)−y=g(x)」 ここでいう曲線は直線も入 3 2023/03/25 00:13
- 経済学 均衡価格の求め方について教えてください 10 2022/12/23 13:25
- 電車・路線・地下鉄 琴電の路線の最小曲線半径について 1 2023/05/05 07:41
- 経済学 総需要曲線は、物価上昇が利子率上昇をもたらし、投資を減少させるため右下がりの曲線になると聞きました。 3 2022/09/16 22:24
- 事故 前方でウーバーの配達員みたいでアプリスマホ見ながら運転のノロノロ原付がゆっくり迷った運転していて自分 6 2022/08/02 08:00
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
合同式について
-
2進数の割り算が分かりません...
-
エクセル:6E-05という表現は?
-
数字3桁の組み合わせの何通り...
-
60進法と10進法
-
NUMBER(N,M) としたときの、格...
-
数値とアルファベットに分ける...
-
電話番号のハイフンの入れ方
-
3÷7のあまりは「3」ですか?
-
√2の値はなぜ1.414…になるんで...
-
関数電卓の表示方法を変更したい
-
EXCELで10万未満切捨ての...
-
3分の1とは何パーセントでしょ...
-
エクセル関数で桁数指定し数値...
-
【場合の数】 2桁の自然数で、2...
-
Excelでの有効数字の合わせ方に...
-
5個の数字0、1、2、3、4を使っ...
-
アナログの電力量計を見たとき ...
-
10進数で123を2進数で表わすと...
-
次のような関数が作りたく、ど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2進数の割り算が分かりません...
-
エクセル:6E-05という表現は?
-
数字3桁の組み合わせの何通り...
-
数値とアルファベットに分ける...
-
60進法と10進法
-
3÷7のあまりは「3」ですか?
-
NUMBER(N,M) としたときの、格...
-
電話番号のハイフンの入れ方
-
EXCELで10万未満切捨ての...
-
数学の階乗はどんな時に使うの...
-
エクセル関数で桁数指定し数値...
-
です。 0.008020 の有効数字は...
-
関数電卓の表示方法を変更したい
-
3分の1とは何パーセントでしょ...
-
0以下の数字は何桁?
-
10進法の数を60進法の数に...
-
エクセルのsumifの検索値
-
【場合の数】 2桁の自然数で、2...
-
0.120は有効数字何桁ですか? ...
-
10進数で123を2進数で表わすと...
おすすめ情報