Symbolic mathで微分演算子っぽいものを作ることができる。なんの役に立つか不明だが、面白い機能なので覚書。
[問題の定式化]
2回微分可能な関数について以下の簡単な常微分方程式を考える。
微分演算子を使えば、常微分方程式は以下のように簡単に表記できる。
関数の定義:
function [DD] = diffOperator(funcArray, vars, params)
rho = params.rho;
xx = vars.xx;
DD = diff(funcArray, xx, 2) + rho * funcArray;
end
使い方:
% 関数を特定した場合の使い方
syms xx;
params.rho = 1.5;
vars.xx = xx;
uu(xx) = xx^2;
func = symfun(uu(xx), xx);
diffOperator(func, vars, params)
% 関数が一般形の場合の使い方
clear uu;
syms uu(xx);
func = symfun(uu(xx), xx);
diffOperator(func, vars, params)