Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
DESol - 微分方程式の解を表現するデータ構造
使い方
DESol(expr)
DESol(expr, y)
パラメータ
expr - y に関する微分方程式
y - 変数
説明
DESol は微分方程式の解を表現するデータ構造です。これは、 solve に対する RootOf のように、 dsolve に対応しています。
DESol データ構造は微分方程式を操作するのを容易にしてくれます。これによって、もっとも顕著なものを挙げただけでも diff, int, evalf, series, simplify などの Maple の他の操作の鍵となり得ます。
DESol は( D を使う)演算子あるいは( diff(...,x) を使う)式として使えます。以下は DESol によって実行されるいくつかの演算の実例です。
例
演算子型を持つ単純な DESol:
de1 := DESol( D(y)-y, y );
それ自身の式で(D を使って)検証できる:
D(de1)-de1;
同じ方程式だが、関数とする:
de2 := DESol( diff(y(x),x)-y(x), y(x) );
de1 を x に適用したものと同等:
de1(x)-de2;
(diff を使って) それ自身の方程式で検証できる
diff(de2,x)-de2;
unapply を使えば、関数から演算子へ変換できる
unapply(de2,x)-de1;
もう少しややこしい場合
alias( de3 = DESol( D(D(y))-a*x*D(y)+y, y )): D(x) := 1: D(a) := 0: D(D(D(de3)));
collect( D(D(D(D(de3)))), D(de3), factor);
int( de3(x), x);
積分は (ほとんど) 常に可能であることが判明する
int( 1/ln(de3(x)),x );
表現できるのは線形の DEs だけでない:
alias( de5 = DESol( D(D(y))/D(y)=y ) ): D(D(de5))/D(de5)-de5;
D(D(D(de5)));
初期条件を伴った、大きな振動振り子方程式:
D(x) := 'D(x)': de6 := DESol( diff(x(t),t,t) = g/l*sin(x(t)), x(t), {x(0)=0, D(x)(0)=v0} );
それを積分する
de7 := int(de6,t);
その導関数を検証
diff(de7,t,t,t)-g/l*sin(diff(de7,t));
他の自明でない積分
de8 := int(1/(de2+1),x);
それが実際に積分であることを検証
normal( diff(de8,x)-1/(de2+1));
DESols が微分を含んでない場合は、それらは RootOfs になる
DESol( y(x)^2-y(x)+1, y(x) );
DESol( y(x)-x, y(x));
ある場合を除いては微分は難しい
de9 := DESol( diff(y(x),x,x)*diff(y(x),x)-1, y(x) );
diff(de9,x);
de10 := unapply(de9,x);
D(de10);
参照
dsolve
Download Help Document