• ベストアンサー

分点座標が±0.5のGauss-Legendre積分公式を知りませんか。

高精度化が必要な数値計算をやっています。 特に、数値積分の高精度化が必要なため、Gauss-Legendre積分公式の使用を考えています。 ただし、解く方程式が積分方程式であるなどの理由からそのままでは使用できません。 使用するためには、Gauss-Legendre積分公式の分点座標が区間の中心である必要があります。 例えば、分点数が2の場合、通常は座標x=±0.57735...重みw=1ですが、これを座標x=±0.5とできるような積分公式はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

ううむ。これだけじゃ回答しようがないと思うなあ。  ガウス・ルジャンドルの数値積分というのは、f(x)を-1~1の区間で積分するときに、n次ルジャンドル関数の零点にあたるxでf(x)をサンプリングして重み付きの和を取るんでした。無論、積分区間内に特異点があったりしたら使えません。一般に積分範囲が x=a~b である場合には x=((b-a)t+a+b)/2 と変数変換すれば、t=-1~1のtに関する積分になる。そしてdx/dt = (b-a)/2という因子を掛け算しておけば良いですね。n次のガウス・ルジャンドル法は、高々n次の多項式で近似できるf(x)を扱う場合に旨く行きます。  さて、ご質問は、おそらく積分範囲 x=-1~1に対してガウス・ルジャンドルの数値積分を使いたいけれど、次数を2にして、分点、すなわちサンプリングする点を±0.5だけにしたい、という注文です。たぶん、±0.5における被積分関数f(x)の値なら簡単に求められる、というのでしょう。  もちろん、適当な一次式ではない関数g(たとえば3次関数)を用いて x=g(t) という変数変換でx=±0.5をt=±0.57.... に移し同時にx=±1をt=±1に移す、ということ自体は簡単です。するとf(g(t))と dx/dt = g'(t) の積を被積分関数としてt=-1~1について積分することになります。この場合、被積分関数 f(g(t)) g'(t) がtの2次多項式で近似できるんでないと、2次のガウス・ルジャンドル法を使って精度が出るという保証はありません。  高精度の数値積分をやりたいと仰っている割に、f(x)が高々低次の多項式で近似してしまえるんだったら、何もガウス・ルジャンドル法に拘る必要はないんで、例えばニュートン・コーツ型の数値積分、すなわち分点を等間隔に取る方法でも十分じゃないの?と思うんですが、どうなんでしょうね。  或いは分点の数をもっと増やして良い、というのだったら、代わりに例えば-1~-0.5, -0.5~0.5, 0.5~1の3つの区間に分けてそれぞれ積分するのでも良い。被積分関数の傾きが急な部分でサンプリングを細かくしてやるというのも精度が出ますし、その代わりに適当な変数変換をして等間隔サンプリングしたり、ガウス・ルジャンドル法を使ったり…いろんな処方が考えられます。  ですから、「±0.5」と限定なさる理由をもう少し明確に補足して戴くか、具体的に被積分関数をupして戴かないと、ろくな回答にならないと思います。

DCSIMPC
質問者

お礼

回答が遅れました。謝罪します。 幾つかの提案を頂きましたが、 その中の変数変換を用いる方法が私が望んでいたものです。また、実際に適用し以下の結果を得ました。 変換関数は、こうなりました。 g(t)=at^3+bt,(a=0.200..., b=0.799...) 積分は、変換関数とGauss-Legendre公式(2次)により、こうなりました。 ∫f(x)dx≒cf(0.5)+cf(-0.5), (c=3a(0.577...)^2+b) これを用いてやってみます。 PS. ニュートン・コーツと分点数増の方法でなく、変数変換の方法を採用した理由は、1区間の分割数を2以上にできないため、2分割でより良い精度の積分公式が必要なためです。詳しく説明できなくてごめんなさい。 非常に有益な回答ありがとうございます。

関連するQ&A

  • 積分の公式について

    こんにちは。私はいま某国立の学生をしているものです。いま大学で微分積分学の授業があるのですが、積分についてみなさんの考え方をお聞きしたいと思います。 教科書や参考書では、積分ツールとして、「公式」を載せてあるのですが、それらは全部暗記する必要があるのでしょうか? たいていの公式は覚える必要があると思うのですが、一部で長すぎるものや複雑な式についてはどうしようかと、悩みます。たとえば・・ 1/√(x^2+α^2)や、√(x^2+α)や、√(a^2-x^2)や1/(x^2-a^2)などの積分公式です。これらの公式は全部長くてやっかいです・・。別にこんなに公式を知らなくてもt=asinθやt=tanθに置き換える、などような積分テクニックで回避できるものもたくさんあると思うのですが。。 高校数学では短い公式ばかりだったのに、大学いくと公式がやたらと増える(しかも教科書によって量が違う!)ので気に入らないですw みなさんはどういうふうにやってきたのかを知りたいです。この公式は別に覚えなくてもいいよ~とかそんな回答でも構いませんので・・。 多分、回答のなかで「イヤなら自分で導き出せられるようにすればいいじゃん」というような内容が予想されますが、わたしとしては「"公式"といえるかどうかの微妙な式の導き出し方」よりも、実際の計算において、知っている最低限の公式・テクを駆使して解きたいのが、理想です。(だって授業中に教授すら忘れていた公式もあったくらいですから) わかりにくい上に長文ですみません。体験談やアドバイスお待ちしております!!★

  • 積分

    ∫(0→1) x{ (e^x)^2 } dx 1,この積分式を求めたいです 2,1の定積分をマクローリン展開(5項まで展開)を利用して近似計算したいです。 3.,積分区間を5等分割(h=1/5)し、1を右端型区分求積法、台形公式、シンプソン法で、それぞれ数値積分したいです。 解法、解答、お願いします。

  • 積分方程式・・・

    「次の等式を満たす2次の整数f(x)を求めよ   x∫f(t)dt (定積分の区間は下端1、上端x)=f(x)+3x^4-4x^3-9 」という問題の解説で「この問いの積分方程式において両辺をxで微分すると(左辺では積の微分公式を用いる) ∫f(t)dt (定積分の区間は下端1、上端x)+xf(x)=f'(x)+12x^3-12x^2となり・・」とあったのですがどうして「∫f(t)dt (定積分の区間は下端1、上端x)+xf(x)  =f'(x)+12x^3-12x^2」となるのかわかりません・・ 教えてください!!

  • 社会基盤数理工学 演習

    1. 台形公式に基づく複合公式を用いて,次の定積分を計算せよ.なお,分点の刻み幅はh = 0.1 とする こと. J = (積分)Z 0から 1まで e^−x2 dx 2. 設問1. の定積分J を,Simpson の公式に基づく複合公式を用いて計算せよ.なお,小区間の数は n = 5 とすること. 3. 設問1. の定積分J を,Gauss の公式を用いて計算せよ.なお,積分点数はn = 2, 3 とすること.

  • 立体の体積 極座標 (二重積分)

    次の立体の体積を求めよ。 (1)曲面z=4-(x^2)-(y^2)とxy平面で囲まれた立体 (2)球(x^2)+(y^2)+(z^2)=4が、円柱(x^2)+(y^2)=2xで切り取られる部分。 二重積分と極座標を用いるってのはわかりましたが、半径をr,角度をθとすると、それらの積分区間がわかりません。よろしくお願いします。

  • 台形公式

    幅hの小区間上[xi+(h/2),xi-(h/2)]のf(x)の積分に対する台形公式を求めよ。すなわち h{af(xi-(h/2)+bf(xi+(h/2)))} の形の数値積分公式でもっとも次数が高くなるようにa,bを定めよ。 という問題の答えがわかりません。 どなたか教えて下さい。

  • 数値積分の使い方

    y=2x^2-4x^2+x+3のxの区間0~2までの積分を台形公式を使い計算するのですけど、 まずはy=2x^2-4x^2+x+3を積分するのですか? そしてその後の台形公式を使ってどのように求めるのですか?

  • 数値積分

    数値積分で e^(-x)/√xを[0,1]の範囲で数値積分するのですが、 f(0)の値が無限になり、台形公式やシンプソンの公式が使えません。 この場合どのように解けばよいんですか?

  • 極座標と輪郭曲線に関することです。

    ころがり接触をする輪郭を求めたいのですが、作図は簡単なので式(極座標による積分)によって求めたいのですが、公式を見てもまったくわかりません。 公式:r2=∫(r1)/(a-r1)dθ1+C aは回転中心からの距離。Cは積分定数。 とりあえず公式内の積分のやり方だけでも教えてもらえると助かります。

  • 台形公式について

    定積分I=∫(0→2) x(x-1)^2dxを数値積分の台形公式で解いてみましたが とき方がいまいちあってる気がしないので、審議お願いします。 条件は分割数は4で等区間の間隔0.5です 答え h=0.5 yo=0(0-1)^2=1, y1=1/2*(1/2)^2=1/8, y2=1*(1-1)^2=0, y3=3/2*(1/2)^2=3/8, y4=2*1^2=2 I=1/4(1+2*1/8+2*0+2*3/8+2)=1 です。 よろしくお願いします