新しく発言する EXIT インデックスへ
微分の仕方

  微分の仕方 jiro 2004/07/01 13:59:34 
  数式を微分して式にすることは数学の問題で...2004/07/01 14:59:52 
  │└哲さん、こんにちは。 jiro 2004/07/02 17:10:19 
  │ └微分の定義のところをそのままです。2004/07/02 18:57:26 
  関数の数式を与えると、その微分である導関... 青木太一 2004/07/01 23:15:01 
  │└青木さん、こんにちは。 jiro 2004/07/02 17:22:33 
  見当違いな答えだったらごめんなさい。 滝沢 2004/08/21 03:12:01 

  微分の仕方 jiro 2004/07/01 13:59:34  ツリーへ

微分の仕方 返事を書く
jiro 2004/07/01 13:59:34
はじめまして、こんにちは。
高校2年生です。
えっと、ベーシックで微分をしてみようと思うのですが、数式を微分してしまうプログラムの方法というのはあるのでしょうか?
ヘルプを読んでみたのですが、ちょっと見あたりませんでした(調べ方が悪かったらすいません)。
数学Vで出てくる複雑な関数の微分をプログラムでして、グラフに表示してみたいなあと思っています。
どうぞアドバイスお願いします。

  数式を微分して式にすることは数学の問題で...2004/07/01 14:59:52  ツリーへ

Re: 微分の仕方 返事を書く
2004/07/01 14:59:52
数式を微分して式にすることは数学の問題ですからプログラムの方法は無いと思います。

関数を微分した値を求めることはコンピュタの得意とする部分です。
微分するとは関数のある点の近くの傾きを求めることですから、
xとx+dx(たとえばdxは0.001)のyの値を求めて差をdxで割れば良い。
これをxを少しづつ増やして計算してグラフに書けば複雑な関数の微分のグラフとなります。

  │└哲さん、こんにちは。 jiro 2004/07/02 17:10:19  ツリーへ

Re: 数式を微分して式にすることは数学の問題で... 返事を書く
jiro 2004/07/02 17:10:19
哲さん、こんにちは。
お返事どうもありがとうございました。
微分を一発でする命令文はないのですね。
残念・・・・・・・・・。
しかし、ヒントを教えてくれてありがとうございます。
哲さんの方法は数学Uの微分の定義のところをそのままプログラムで表現すると言うことなんですね。
とっても勉強になりました。
この考え方って、他のことにも応用できそうな気がしてます(間違えてるかもしれませんが・・・)。
どうもありがとうございました。

PS。何故か私の高校はプログラムの授業が全然ないんです。他の高校がうらやましいです。

  │ └微分の定義のところをそのままです。2004/07/02 18:57:26  ツリーへ

Re: 哲さん、こんにちは。 返事を書く
2004/07/02 18:57:26
微分の定義のところをそのままです。
良く理解してますね、大抵のことは基本を基に考えると解決できるようです。

高校でプログラムの授業が全然ないとは珍しい学校のようですが、
でも学校でほんの少しプログラムをやってもあまり役に立たないようです。
興味のある人は、ほとんど自分でいろいろ難しいプログラムに挑戦して進歩しているようです。
私のプログラムも最初から趣味のようなものです。楽しみながら遊んでください。

  関数の数式を与えると、その微分である導関... 青木太一 2004/07/01 23:15:01  ツリーへ

Re: 微分の仕方 返事を書く
青木太一 2004/07/01 23:15:01
関数の数式を与えると、その微分である導関数を出力するような機能は
十進BASICにはありません。

ここらへんを参考にして
http://freebbs.around.ne.jp/article/b/basic/38/yshwzo/index.html
がんばればそういうプログラムもつくれるでしょうが、私には無理そうです。

十進BASICではありませんが、jiroさんの求めている機能は数式処理ソフトにあります。
数式処理ソフトとしてはMathematica,Maple,Mupadなどが有名です。
これらは微分だけでなく因数分解、連立方程式を解く、積分などなど
様々な数式処理ができるようです。
たとえばここなど参照されてはいかがでしょう?
「高校生のためのMuPAD」
http://www5a.biglobe.ne.jp/~ogose/mirror/mupad/

また、哲さんの言っている方法を使えば、導関数を数式としては表示できなくてもグラフとしては表示することができるので、
自分が求めた数式のグラフと対比して、一致しているかどうかでいいかげんな検算とすることができます。
(「いいかげん」というのは、
・グラフの表示している範囲でしか一致しているかどうかわからない。
・dxを無限に小さくできなかったり計算誤差があるので正解でも完全には一致しない
などの問題点があるからです。この検算方法はあくまで参考のためです)

たとえばこのように使います
f(x)=sin(sin((x^2)/3))
の微分を計算したところ
g(x)=cos(sin((x^2)/3))*cos((x^2)/3)*2*x/3
だと思うけど自信がない。よし下のプログラムを実行しよう
set window -10,10,-10,10
draw grid
!ここに微分したい関数f(x)を書く
def f(x)=sin(sin((x^2)/3))
!g(x)=f(x)'
!ここにその微分だと思う関数g(x)を書く
def g(x)=cos(sin((x^2)/3))*cos((x^2)/3)*2*x/3
!表示されるグラフの赤と青が一致すれば正解の可能性がある

LET dx=20/500

plot text ,at -9,9:"f(x)"
plot lines:-10,9.5;-9,9.5
for x=-10 to 10 step dx
plot x,f(x);
next x
plot lines

set line color 2
plot text ,at -9,8:"(f(x+dx)-f(x)) / dx"
plot lines:-10,8.5;-9,8.5
for x=-10 to 10 step dx
plot x,(f(x+dx)-f(x))/dx;
next x
plot lines

set line color 4
plot text ,at -9,7:"g(x) (=f(x)')"
plot lines:-10,7.5;-9,7.5
for x=-10 to 10 step dx
plot x,g(x);
next x

END


  │└青木さん、こんにちは。 jiro 2004/07/02 17:22:33  ツリーへ

Re: 関数の数式を与えると、その微分である導関... 返事を書く
jiro 2004/07/02 17:22:33
青木さん、こんにちは。
詳しいお返事をどうもありがとうございました。

早速コードを作ってくれたのですね。
感謝感謝です。
後で、私もいろいろ微分してみようと思います。

それから、一番目のリンクはまだ私には難しくてよくわからなかったです。
もっと勉強が進んでからチャレンジしようとおもいます。
ごめんなさい。

2番目のリンクは、すごかったです!!。
こんなソフトがあるんですね。
学校でも教えてくれればいいのになあと思いました。
お金がかかるようなのですが、とりあえずフリー版をインストールしてみようと思いました。
でも、私としては、basicでプログラムできるようになりたいです。(友人と競争しているんです)

いろいろ教えてくれてありがとうございました。
私は、すごい低いレベルでしかbasicができないのですが、こつこつと勉強しようと思っています。
高校でも教えて欲しいです・・・・。

  見当違いな答えだったらごめんなさい。 滝沢 2004/08/21 03:12:01  ツリーへ

Re: 微分の仕方 返事を書く
滝沢 2004/08/21 03:12:01
見当違いな答えだったらごめんなさい。
マセマティカ というソフトなら関数を入力すればかってに微分してくれます。過去に、田舎ものの僕はこのソフトを買おうと思い、秋葉原まで電車で上京したのですが、約20万円すると言われてあきらめました。その代わり カルキング というソフトでも同じような事ができるのを知り、こちらを買いました。今でも使ってますが、かなり便利です。
だから、プログラムを作ることは可能だと思いますが、僕はできません。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。