• 締切済み

Voigt関数について

Voigt関数というのはGauss関数g(x)とLorentz関数f(x)の畳み込みを行ったものですが、 どの本を見ても、h(x)=∫(-∞,∞)g(ξ)・f(x-ξ)dξ としか書いてません。 h(x)の具体的な中身(積分計算を行った後の表記)を知りたいのですが、 ご存知の方いませんか? 文献でも、webサイトでもいいので載っていれば教えてほしいのですが。 それともやっぱ自分で計算しなきゃだめですか?

  • barao
  • お礼率62% (39/62)

みんなの回答

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

関連するQ&A

  • 関数の掛け算を返す関数

    いま関数の積分を行おうとしています. この積分を行う関数が double integral(double (*func)(double), double a, double b ) {    double ans;    .....    return ans; } となっていて,aからbまでfuncが指す関数を積分して結果を返します. 積分をさせる関数は double f1(double x) { return 3.0*x; } double f2(double x) { return x*x; } となっていて,同じようにg1, g2も用意します.(本当は関数が3つ4つあります.) 例えばf1を積分したいとき, int main() {    double ans = integral(f1, a, b);    printf("%f\n", ans); } ですよね. 自分で積分する関数を選ぶときは,ここに配列で場合分けをして double (*func_f[])(double)={f1, f2}; scanf("%d", &flag); /* flagに0~1を代入 */ ans = integral(func_f[flag], a, b); でいいと思います. さて,そこで本題なのですが, double (*func_f[])(double)={f1, f2}; double (*func_g[])(double)={g1, g2}; としておいて, scanf("%d", flag1); scanf("%d", flag2); func_f[flag1], func_g[flag2]; として関数を入力側から決定して, (例えばflag1=1, flag2=1,であったとして *func_f[1]=x*x *func_g[1]=5.0*x ならば) h(x)=(x*x)*(5.0*x)=5.0*x*x*x という関数を作って, h(x)を指すポインタを double (*h_ptr)(double) とすれば ans = integral(h_ptr, a, b); としたいのです. (f1*g2)を一つの関数としてh(x)=(f1*g2)(x)というように扱うことができればいいと思うのですが. integralの引数で,関数のポインタを2個にすると,汎用性が失われてしまうと思うので,できればそこは変えたくないです. どのようにすればよいのでしょうか? また,「考え方を変えればよい」などの意見も頂きたいです. 皆様,どうぞよろしくお願いします.

  • 畳み込み積分をする和の密度関数の問題に困ってます。。。

    畳み込み積分をする和の密度関数の問題に困ってます。。。 aを正の定数とする。実数値をとる確率変数X、Yが独立に密度関数 f(x)=ae^(-ax)(x≧0),0(x<0), g(y)=(a+1)e^(-(a+1)y)(y≧0),0(y<0), に従うとき、その和の密度関数U=X+Yを求めよ という問題です。。。 畳み込みの公式にいれてみたのですが、最後まで計算ができない(eが発散してしまいました) お願いします

  • δ関数を含む畳み込み積分

    こんばんは。わからない問題があるので、考え方だけでも教えていただけると嬉しいです。 問題はδ関数を含む畳み込み積分 f(t)*δ(t-a)=f(a)が成り立つことを証明せよ というものです。 とりあえず公式にあてはめて∫(-∞→∞)f(τ)δ(t-a-τ)dτ として考えてみたのですが、 いつも通りf(t)*g(t)の畳み込み積分と同様に考えると、 ∫(-∞→∞)f(τ)g(t-τ)dτ=f(t)なので、 ∫(-∞→∞)f(τ)δ(t-a-τ)dτ=f(t+a)となってしまい、 証明に近づくことができません; まったく間違った考え方をしているのだろうなとは思うのですが、 他に方法も思いつかず・・ どなたか教えてください。 よろしくお願いします。

  • インパルス応答は、入力信号をf(t)、出力信号をg(t)、インパルス応

    インパルス応答は、入力信号をf(t)、出力信号をg(t)、インパルス応答関数をh(t)とすると、畳み込み積分∫[0→t]f(τ)h(t-τ)dτで表されると思うのですが、この積分に従うとすれば、g(t)やh(t)がどんな関数であってもg(0)=0となると思います。 一方で、g(0)=f(0)h(0)=f(0)なので、f(0)もh(0)もゼロではないとすると、g(0)≠0となるような気がします。 何か勘違いをしていると思うのですが、どこが間違っているのかわからないので、教えて頂けないでしょうか。よろしくお願いします。

  • デルタ関数について

    デルタ関数δ(x)を-∞~∞まで積分すると1になるというのは分かるのですが、 デルタ関数の2乗を-∞~∞まで積分するとどうなるのでしょうか? 私の考えでは、δ関数はx≠0のとき0の値を持ち、x=0のとき∞の値を持つのですから、 δ関数を2乗しても∞の∞乗=∞で積分値は1のままなんじゃないかと考えました。 友人の考えは、x=0付近に幅h、縦1/hの長方形を考え、h→0としたのが δ関数であるから、δ関数を2乗すると縦の長さが(1/h)^2=∞^2になり、 積分値も∞倍されるのではないかというものでした。 定義できない、計算できないのではないか、という友人もいましたが、 実際はどうなのでしょうか? 分かりにくい説明で申し訳ありませんが、ご存知の方ご教授下さい。

  • 畳み込み積分の数値計算方法

    y(t)=∫f(τ)h(t-τ)dτ, 積分区間 0≦τ≦t. この畳み込み積分のfとhの関数形が具体的にわかっているときに、y(t)の値を求めるにはどうすればいいのでしょうか。積分が解析的な式で表される場合はその式にtの値を代入すれば済むと思いますが、解析的な式でかけない場合は数値計算しないといけないと思います。数値計算はどのようにするのでしょうか? ラプラス変換とかフーリエ変換とか使うのでしょうか? 数値積分をするのでしょうか? 常套手段があると思うので、教えて下さい。

  • 関数方程式 恒等式型

    関数f(x)はすべての実数x,yに対してf(x+y)=f(x)e^y+f(y)e^xを満たし、さらにx=0では微分可能でf'(0)=1とする。 (1)f(0)を求めよ。 (2)lim【h→0】f(h)/hを求めよ。 (3)関数f(x)はすべてのxで微分可能であることを、微分の定義にしたがって示せ。さらにf'(x)をf(x)を用いて 表せ。 (4)関数g(x)をg(x)=f(x)e^(-x)で定める。g'(x)を計算して関数f(x)を求めよ。 すみませんが、お願いします。

  • 合成関数の積分

    こんにちは。積分法に関する質問です。 gが(a,b)において連続[a,b]において微分可能とし、g´(x)>0で、fもgの値域においては連続とするとき ∫f(g(x))g´(x)dx(積分範囲はaからb)=∫f(y)dy(積分範囲はg(a)からg(b))が成り立つことを示し、(Fоg)´(x)を計算せよという問題です。((Fоg)は合成関数) 今ヒントが与えられていて g(a)≦y≦g(b)において F(y)= ∫f(t)dt(積分範囲はg(a)からy)と置く。とあるのですが、このヒントをどう使うのかが分かりません。 それと(Fоg)´(x)の計算もお手上げです。 どなたかヒントよろしくお願いします。

  • 被積分関数に作用する関数

    ある関数f(x)の定積分∫[a→b] f(x)dxがあるとします.このときにある関数g(x)を被積分関数に作用させるような写像,つまり ∫[a→b] f(x) dx → ∫[a → b] g(x) f(x) dx のような働きをする関数?は存在しますか?定積分なので別の関数を中に入れるなど不可能なように思うのですが,私が知らないだけで数学的には何かそのような働きをするものがあるのではないかと思い質問させていただきました.よろしくおねがいします.

  • 複数の関数からなる関数

    教えてください。 化学系卒なので数学の知識は深くありません。 [A]と[B]からなる[C]という要素があったとします。 [A]は、[A]を構成する「x」により、A=f(x)で表されるとします。 同じく [B]も、[B]を構成する「y」により、B=g(y)で表されるとします。 さて、ここで[C]ですが [C]は[A]と[B]より表現できる(はず)ので、 「C=h(f(x),g(y))」の形で表したいのですが、やり方、手順等々がわかりません。 C=h(f(x),g(y)) と抽象的?に書くのではなくて、 具体的中身のある関数形で表現できるようにしたいです。 f(x)とg(y)が互いに独立であれば、【 C=a*f(x)+b*g(y)+c 】でよいかと思いますが 「a」と「b」の数値の出し方がわかりません。 [a*f(x)]*[b*g(y)]や、[a*f(x)]^[b*g(y)],[a*f(x)]*e^[b*g(y)]だったりすると もうお手上げ状態です。 これら複数の関数がどう位置づけられるか、 このようなことを得意とするツールがあればご教授ください。 (フリーであればなお助かります。) また、上記のf(x)やg(x)を出すのに、エクセルの近似式を使っていますが 限界を感じています。 カーブフィッティングや近似式を計算してくれるツール等があれば 併せてご教授くださいますようお願いいたします。 以上、よろしくお願いいたします。3