• 締切済み

差分近似の示し方

次のように導関数を差分近似できることを示すめさなければならないのですが、よく分かりません。どなたかご存知の方はいませんか? du/dx=(u_(i+1)-u_(i-1))/2∆x (d^2 u)/(dx^2 )=(u_(i+1)-〖2u〗_i+u_(i-1))/〖(∆x)〗^2 よろしくお願いします!!

noname#134406
noname#134406

みんなの回答

  • spring135
  • ベストアンサー率44% (1487/3332)
回答No.1

ありきたりの差分近似です。 http://ja.wikipedia.org/wiki/%E5%B7%AE%E5%88%86%E6%B3%95

noname#134406
質問者

お礼

返事が遅れて申し訳ありません。 最初からWikipediaで検索するべきでしたね 大変ありがとうございました。

関連するQ&A

  • 差分法

    dx/du=2△x/Ui+1-Ui-1 dx^2/d^2u=Ui+1-2Ui+Ui-1/(△x)^2 を差分近似できることを示したらどのようになるんですか? 全くわからなくて・・・お願いします。

  • 二階導関数の差分近似について

    二階導関数の差分近似について 下記のように空間的に変化する係数を含む二階の微分項を点xrで近似することを考えた時、差分定式化すると下記のようになるのですが、前進差分、後退差分をそれぞれ用いること、またa(x)の項だけ何故±1/2の間で差分をとるのかが分かりません。差分についての参考書を見ると、xrの前後に二つの傾きをまず考え、二階導関数はいわば”傾きの傾き”を表わすので・・・から即この式が出ているのですが、その考えもよく分かりません・・。どなたか説明していただけませんでしょうか?

  • 偏微分方程式、差分法

    Fitzhugh-Nagumo方程式 dU/dt = d/dx(dU/dx) + (a-U)(U-1)U-V (d/dx(dU/dx)はUのxに対する二回微分) dV/dt =e(bU-gV) a=0.1, b=0.5, g=1.0, e=0.01 初期条件 (U,V)=(1,0) if x=0 (U,V)=(0,0) if x>0 境界条件 dU/dx=0 at x=0 dV/dx=0 at x=0 を差分して陽解法で解くと添付の答えになるらしいのですが、自分で解いたところ添付の結果のようになりました。答えと一致しないため、プログラム上で何を間違えているのかご指摘頂けると助かります。 #include <stdio.h> #include <stdlib.h> //exsit()で必要 #include <math.h> int main(){ double a,b,g,e; double dt,dx; int x,t; double **u,**v; int i,j,k; a=0.1;b=0.5;g=1.0;e=0.01; x=100;t=5000.; dt=0.001;dx=0.1; FILE *fp; if((fp = fopen("ResultNagumo.txt","w"))==NULL){ printf("Can't open file\n"); exit(2); } u = (double**)malloc(sizeof(double*)*t); v = (double**)malloc(sizeof(double*)*t); for(i=0;i<t;i++){ u[i]=(double*)malloc(sizeof(double)*x); v[i]=(double*)malloc(sizeof(double)*x); } //初期値 u[0][0]=1.0; v[0][0]=0.0; for(i=1;i<x;i++){ u[0][i]=0.0; v[0][i]=0.0; }    //差分計算 for(i=0;i<t-1;i++){ for(j=1;j<x-1;j++){ u[i+1][j] = u[i][j] + dt*((u[i][j+1]-2*u[i][j]+u[i][j-1])/pow(dx,2)+(a-u[i][j])*(u[i][j]-1)*u[i][j]-v[i][j]); v[i+1][j] = v[i][j] + dt*(e*(b*u[i][j]-g*v[i][j])); } //境界条件 u[i+1][0]=u[i+1][1]; v[i+1][0]=v[i+1][1]; u[i+1][x-1]=u[i+1][x-2]; v[i+1][x-1]=v[i+1][x-2]; }   //結果の出力 for(i=0;i<t;i++){ if((i%100)==0){ fprintf(fp,"%d\n",i); for(j=0;j<x;j++){ fprintf(fp,"%2.4e,",u[i][j]); } } } for(i=0;i<t;i++){ free(u[i]); free(v[i]); } free(u);free(v); fclose(fp); getchar(); return 0; }

  • 数値計算の差分の取り方について

    1回の偏微分∂f / ∂x→( f(i+1,j) - f(i,j) )/dx というような差分近似したとします。とにかく差をとって距離で割るということですね。これもいくつかバリエーションがありますが、だいたい同じ意味だと思います。 2回微分∂^2f / ∂x^2 → ( f(i+1,j) + f(i-1) -2*f(i,j) ) / dx^2 となります。1回微分のさらにもう1回微分ということでこれも分かりやすいです。y方向の微分は同じです。 では、∂^2 f / ∂x∂y はどうやって差分をとるものでしょうか。言葉で説明すると、x方向の差分をy方向の違う点で2つとってそれのy方向で差分をとればいいという考え方がありますが、y方向の微分をx方向の違う点で2つとってそのx方向の差分をとるということもできると思います。考え方が2つあるわけですが、どちらかを採用するとx,y方向に不平等が生じてしまいます。なのでこの方法はダメなのではないかと思いますが。有限要素法みたいに内挿関数を使ってそれを使ってやるということもあるのかなと思いますが。一応差分でやると決めたことは決めたわけですが。よろしくお願いします。

  • 関数の導関数を求める方法(合成関数の微分を用いる方法)

    次の関数の導関数を求める問題なのですが、 以下の解き方であってるでしょうか? (1) f(x) = (2x+1)^3 f(x)=u^3, u=2x+1とおき、合成関数の微分を用いる。 公式 (dy/dx)=(dy/du)・(du/dx)より、 f'(x)=(dy/du)=3u^2 (du/dx)=2 ∴(dy/dx) = (dy/du)・(du/dx) = 3u^2・2 = 6u^2 = 5(2x+1)^2 (2) g(x)=1/(x^2+x+1) f(x)=u^(-1), u=x^2+x+1とおき、合成関数の微分を用いる。 公式 (dy/dx)=(dy/du)・(du/dx)より、 g'(x)=(dy/du)=u^(-1) (du/dx)=2x+1 ∴(dy/dx) = (dy/du)・(du/dx) = u^(-1)・(2x+1) = (x^2+x+1)^(-1)・(2x+1) = (2x+1)/(x^2+x+1)

  • 固有値問題 微分方程式

    固有値問題です。 (d^2/dx^2)*u(x)=λ*u(x) 境界条件 du(0)/dx-u(0)=0 du(1)/dx-u(1)=0 (d^2u(x)/dx^2)→u(x)をxで二階微分 u(x)→xを変数とする関数(固有関数) λ→固有値 という問題をλが正の時、0の時、負の時にわけて解きたいのですが解き方がわかりません。 よろしければ教えて下さい。

  • 微分方程式の解について

    すべての点で微分可能な関数u(x)が次の条件を満たしている。   u(x)=u(-x)+2x …(1) かつ u(x)u'(x)+u(-x)u'(-x)=6x^2+2 …(2) このとき、関数u(x)を求めよ。 という問題に次のように解答したのですが、答えに自信がありません。合っているのでしょうか。 [解答1] (2)より [{u(x)}^2]'+[{u(-x)}^2]'=12x^2+4 {u(x)}^2+{u(-x)}^2=4x^3+4x+C (1)より、u(-x)=u(x)-2x、これを上の式に代入して {u(x)}^2+{u(x)-2x}^2=4x^3+4x+C 2{u(x)}^2-4xu(x)-4x^3+4x^2-4x+D=0 {u(x)}^2-2xu(x)-2x^3+2x^2-2x+E=0 u(x)=x±√(2x^3-x^2+2x+E) [解答2] (1)より、u(-x)=u(x)-2x、これと(2)式より u(du/dx)+(u-2x){(du/dx)-2}=6x^2+2 2(u-x)(du/dx)-2u+4x=6x^2+2 (u-x)(du/dx)-u+2x=3x^2+1 u-x=tとおくと (du/dx)-1=(dt/dx)より、(du/dx)=1+(dt/dx) t{1+(dt/dx)}-t=3x^2-x+1 t(dt/dx)=3x^2-x+1 tdt=(3x^2-x+1)dx (1/2)t^2=x^3-(1/2)x^2+x+C t^2=2x^3-x^2+2x+D u-x=±√(2x^3-x^2+2x+D) u(x)=x±√(2x^3-x^2+2x+D)

  • 積分:∫(x^2+1)^50*2x dx

    x^2=1=uとして、d/dx[F(x)]=d/du[F(u)]du/dx=f(u)du/dxの公式を使って求めるのですが、 教科書の解説ではこうなっています。 u=x^2+1とする。 du/dx=2xなので、 ∫(x^2+1)^50*2x dx=∫[u^50 du/dx] dx=∫u^50 du=u^51/51+C=(x^2 + 1)^51/51+C ∫(x^2+1)^50*2x dxから∫[u^50 du/dx] dx=∫u^50 duに移行する間に2xが消えてしまったように思います。 どこに行ってしまったのでしょうか? duを使った積分の基本問題だと思いますが、教科書の解説が分からずすいませんが、教えてもらえますか? よろしくお願いします。

  • 微分方程式 1階線形

    y’-2y/x = xy^3 は y’/y^3-2/x*1/y^2と変形できる。 ここで、1/y^2 = uとおくと、この微分方程式はx、uに関する1階線形になることを示せ。 次にそれを解くことにより、この微分方程式の一般解を求めよ。 という問題なのですが一応解いてみたのですが合っているのかいまいち分かりません。 間違っている箇所があれば教えてください。 よろしくお願いします。 ↓ y’/y^3-2/x・1/y^2=x 1/y^2=uとおくと、 du/dx=du/dy・dy/dx du/dx=(-2/y^3)・y’ du/dx=-2y’/y^3 となりますから、 y’/y^3=-1/2 du/dx よって、元式に代入すると、 -1/2 du/dx-2/x u=x …(1) 定数変化法を用いる。斉次形の解をまず求める -1/2 du/dx-2/x u=0 du/dx=-4u/x ∫du/u=-4∫dx/x ln|u|=-4ln|x|+C1 u=±e^(-4ln|x|+C1) u=Cx^(-4) Cがxの関数であったものとして、非斉次形の解を求める。 C=p(pはxの関数)とおくと、 du/dx=p’x^(-4)-4px^(-5) ですから、(1)にそれぞれ代入して、 -1/2 {p’x^(-4)-4px^(-5)}-2/x px^(-4)=x -1/2 p’x^(-4)+2px^(-5)-2px^(-5)=x -1/2 dp/dx=x^5 ∫dp=-2∫x^5 dx p=-1/3 x^6+C 従って、 u=(-1/3 x^6+C)x^(-4) u=-1/3 x^2+Cx^(-4) となるから、1/y^2=uより、 1/y^2=-1/3 x^2+Cx^(-4)

  • 合成関数の微分法により,d/dx * y^2 =

    合成関数の微分法により,d/dx * y^2 = d/dy * y^2 * dy/dxと書いてあったのですが、何故こうなるかが分かりません 関数 y = f(g(x)) を y = f(t) と u = g(x) の合成関数と考えるとき, dy/dx = dy/du * du/dx が合成関数の説明ですが、ここの説明のyとuは、上の式(d/dx * y^2 = d/dy * y^2 * dy/dx)では何になっていますか?