- ベストアンサー
C言語でsin2.212xという関数を定義にしたがって微分したいのです
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あちらのサイトにもありましたが http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1249712017 Cでは #define プリプロセッサを使うと見通しが良くなりますよ。 説明は簡単なので、見ればわかるでしょう。 /* source file: final29.c * compile: gcc final29.c -lm * execution: ./a.out */ #include <stdio.h> // printf() #include <math.h> // sin(), cos() #define f(x) sin(2.212*x) // 方程式 #define f1(x) cos(2.212*x) // 微分方程式 int main(void) { double x0, dx; double fx1, f_dx, gosa; // 各パラメータ設定 printf("微分する関数f(x)=sin(2.212x)について(f(x)のx,dx)に数値を代入してください。: "); fflush(stdout); scanf("%lf %lf", &x0, &dx); printf("point x= %f, \tdx= %f\n", x0, dx); // 微分値とその誤差を求める f_dx = (f(x0 + dx) - f(x0)) / dx; fx1 = f1(x0); printf("df(%.3f)/%.3f= %f, \t", x0, dx, f_dx); printf("f'(%.3f)= %f, \tgosa= %f\n", x0, fx1, f_dx - fx1); return 0; }
その他の回答 (1)
- k_kota
- ベストアンサー率19% (434/2186)
関数を微分すると言うのは普通のCプログラムでは実現できません。 近似的な方法であればたくさんありますし、微分した結果を表示するだけであれば手でやってから出せばいいです。 いずれにせよ、ここに書ききれるソースでは無いです。 >また、df(x)/dxのdxを0.1,0.01としてそれぞれでの誤差を判定したいので >dxは自分で好きな値を入力できるようにしたいです。 前半もそうですが、やりたいことをもうちょっと具体的に表現しないと意図しない回答が来ると思います。
関連するQ&A
- 極限をつかった定義式からの関数の微分がうまくいきません。
極限をつかった定義式からの関数の微分がうまくいきません。 log(2x) sin2x sinx^2 ain(1/x) これらの関数の極限をつかった定義式からの微分がなんともうまくいきません。どなたか分かる方がいらっしゃいましたら解説をよろしくお願いいたします。
- ベストアンサー
- 数学・算数
- 逆関数の微分と全微分の違い
「y=1+x*c^yで定まる陰関数yについてdy/dxを求めよ」という問題の 解き方で、逆関数の微分と全微分のどちらで解けばよいのか分かりません。 私は、f(x,y)=1+x*c^y-y=0とおき、dy/dx=df(x,y)/dx*1/{df(x,y)/dy}で解き dy/dx=c^y/{x*c^y-1}となったのですが、 全微分の解き方をすると、c^y*dx+{x*c^y-1}*dy=0より dy/dx=-c^y/{x*c^y-1}となり、私が出した答えと符合が逆になってしまいます。 この場合どちらの解き方で解けばよいのでしょうか? 見づらいとは思いますが、どうかよろしくお願いいたします。
- 締切済み
- 数学・算数
- yがxの関数でない時の微分の定義
y=f(x)のときdy/dxの定義は, dy/dx=lim[Δx→0]{f(x+Δx)-f(x)}/Δx ですよね? これは,yがxの関数(一つのxに対してyが一つ)だから定義できます. では,yがxの関数でないとき(一つのxに対してyが二つ以上のとき),例えばx=y^2のとき,dy/dxの定義はどうなるんですか?
- ベストアンサー
- 数学・算数
- c言語の関数定義について
次の関数定義を考える. int f(int x) {if (x > 0) {return x * f(x-1);} else {return 1;} } この関数f と働き(すなわち,引数と戻り値の関係)が同じで再帰呼出(recursive call) を使わない関数g をC で定義せよ.ただし,オーバーフロー(overflow) については考慮しなくてよい. ”この関数f と働き(すなわち,引数と戻り値の関係)が同じで再帰呼出(recursive call) を使わない関数g をC で定義せよ”って理解できません、どのように定義したいいか、ご教授お願いします。
- ベストアンサー
- C・C++・C#
- 陰関数の微分について
陰関数の微分についてよくわからないところがあるので質問します。 R^2の開集合U上で陰関数f(x,y)=0 (f:R^2→RでfはU上C^1級)が与えられているとする。 両辺の微分を取ると、(∂f/∂x)dx+(∂f/∂y)dy=0となる。という記述がありますが、いまいち理解できません。なぜなら、f(x,y)はU上定義されている関数で微分を取ることはわかりますが、右辺の0はここでは U上恒等的に0、すなわち関数として0という意味ではないので, 右辺の微分を取って等式とするのは変だと思ったからです。 ここを納得するにはどう考えればよいのでしょうか。
- ベストアンサー
- 数学・算数
- 三角関数の微分
IIICをやってて少し気になったので 質問させてください “y=sin(3x) と表されるとき(dy/dx)を求めよ” という問題で私は2つの解答例が思い浮かびました [解答例1] u=3xと置くと (dy/du)=3 (du/dx)=u*cos(u) となり、合成関数の微分法の公式から (dy/dx)=(dy/du)*(du/dx) =(3)*{u*cos(u)} =3*3x*cos(3x) =9x*cos(3x) (答) [解答例2] 3倍角の公式から sin(3x) =3sin(x)-4{sin(x)}^3 よって (dy/dx) =[3sin(x)]'-[4{sin(x)}^3]' =3cos(x)-12[{sin(x)}^2]*[cos(x)] (答) となってしまい、同じ式を微分したのに 異なる解答が出てきます。 この場合どちらが正しいのでしょうか。 あるいはどちらも正しいのでしょうか。 回答をお願いします
- ベストアンサー
- 数学・算数