C言語による微分

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
けん

C言語による微分

#1

投稿記事 by けん » 10年前

C言語はじめてまだ初心者の者です。
C言語においての微分のやりかたを教えてください。

例えば
y=2x3+5x2+4x
を微分するコードを教えてください。
また、その微分した式のxについての解き方も教えてください。

経験者の方からすると簡単なものなのかもしれませんがお願いします。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: C言語による微分

#2

投稿記事 by usao » 10年前

>例えば
>y=2x3+5x2+4x
>を微分するコードを教えてください。
>また、その微分した式のxについての解き方も教えてください。

やりたいことがいまいち掴めません.

・ある決まった数式についてのみ何か計算するプログラムなのか,
 実行時にどうにかして扱いたい数式を指定するのか?
・処理結果は何になるのでしょう?
 「dy/dx = 6x2 + 10x + 4」という表示ができればよいのでしょうか?
 それとも,あるxの値についての,dy/dx の値を求めることができれば良いのでしょうか?

けん

Re: C言語による微分

#3

投稿記事 by けん » 10年前

usaoさん
dy/dx = 6x2+ 10x + 4
という結果は表示しなくていいですが、
最終的にはこの方程式の解を出力したいのです。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: C言語による微分

#4

投稿記事 by usao » 10年前

えっと,やりたいこと(プログラムの機能)というのが,

例えば,
「扱える数式の形は y = ax3+bx2+cx+d という3次の多項式だよ」という制約はあって
 係数{a,b,c,d}の値を実行時に入力すると,それに応じた答えが得られる

といった感じのことをしたいという話なのか? みたいなところから尋ねております.
扱う数式の形状がこの例のように ある程度しっかりと(?)決まっているならば,
dy/dx = 3ax2 + 2bx + c
だということもその時点で決まるので,
単にこの微分した結果の式をそのままインプリメントしてしまうのが手っ取り早いと思いますし,
「いやいや,そうではなくて,
 微分対象となる数式については y = f(x) という形だよというくらいしか制約がなくてf(x)の部分がどんなに複雑でも扱いたいのだよ」
みたいな話だとすれば,
じゃあ一体どうやってf(x)の内容をプログラムに入力するのだろう?とか,何か難しそうな話になりそうな気もしますし…

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: C言語による微分

#5

投稿記事 by usao » 10年前

とりあえずプログラムに

コード:

//(実際の式はよくわからないけど)xの値に対応する y=f(x) の値を返す
double f( double x )
{
   ...
}
みたいな関数が存在していて,その時に あるxの値に対する dy/dx の値を得たい,
という感じの話であれば,
「数値微分」みたいな言葉で検索してみると良いのかも?

けん

Re: C言語による微分

#6

投稿記事 by けん » 10年前

usaoさん
なんか難しく考えてました…

微分はわかったので、
dy/dx = 3ax2 + 2bx + cのように計算してその解(y=0となるxの値)を
求める方法を教えていただきたいです。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: C言語による微分

#7

投稿記事 by usao » 10年前

うーん,扱う数式の範囲に関する明瞭な回答を頂けないようですが…
dy/dx がxの2次式だ という限定された話で良いのであれば 単純に解の公式の式を実装すれば良いのではないでしょうか?
http://hooktail.sub.jp/mathInPhys/kainokoshiki/

けん

Re: C言語による微分

#8

投稿記事 by けん » 10年前

なるほど!
解の公式か!

すみません、解決しました!

ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る