02/07/19 03:38
例題6.6
波動方程式
diff(u(x,y),x,2)+2*cos(x)*diff(u(x,y),x,1,y,1)-sin(x)^2*diff(u(x,y),x,2)-sin(x)*diff(u(x,y),y)=0
の 一般解はf、gを任意関数を
u(x,y)=f(x+sin(x)-y)+g(x-sin(x)+y)で 与えられるこれを確かめよ。
元の方程式は線形だからf(x+sin(x)-y) とf(x-sin(x)+y)を別々に確かめれば
よい。
================================================================================
微分のchainルールが 関数f(x,y)が具体的に与えられないときでも使えるのが
maximaの売りのひとつなのだが あくまで名詞的にすべてが 抽象的な変数の場
合に限るのであって 動詞的(つまり具体的)に与えられたものと混在するとき
は面倒な手順を踏む必要があり初心者向きではない。diff(f(x^2),x,1)などで
もx^2が具体形であるために スムーズに計算できない。このへんは私も
Clifford algebra での微分の計算のために調べているのだが 、なんとかBUG
ありながら MLのWillisb さんが pdiff.lispとして 提供してくださったのを
利用する。ほぼ正しく動作するようだが既存のものとのかみ合わせがもうひと
つか?
URLリンク(www.math.utexas.edu)
これのlispのコードだけを1つのファイルにいれてpdiff.lispとする。
(C1) load("pdiff.lisp")$
(C2) qput(f,true,pderiv)$
(C3) display2d:false$
(C4) diff(f(x),x);
(D5) PDERIVOP(f,1)(x)
これでは 判りにくいので
(C6) display2d:true$
(C7) diff(f(x),x);
(D7) f(x)
; (1)
これでまあ意味は判るだろう。念のため
(C8) diff(f(x^2),x);
(D8) 2xf (x^2)
; (1)