いくつかのオプションがあります...
オプション#1:関数を自動的に生成する
Symbolic Toolboxのバージョン4.9(R2007b +)以降を使用している場合は、 matlabFunction関数を使用して、シンボリック式を無名関数または関数Mファイルに変換できます。ドキュメントからの例:
>> syms x y
>> r = sqrt(x^2 + y^2);
>> ht = matlabFunction(sin(r)/r)
ht =
@(x,y)sin(sqrt(x.^2+y.^2)).*1./sqrt(x.^2+y.^2)
オプション#2:手動で関数を生成する
シンボリック方程式のセットをすでに作成しているので、そのコードの一部を切り取って関数に貼り付けるだけです。上記の例は次のようになります。
function output = f(beta,n1,n2,m,aa)
u = sqrt(n2-beta.^2);
w = sqrt(beta.^2-n1);
a = tan(u)./w+tanh(w)./u;
b = tanh(u)./w;
output = (a+b).*cos(aa.*u+m.*pi)+(a-b).*sin(aa.*u+m.*pi);
end
この関数を呼び出すときは、と4つの定数f
の値を入力する必要がbeta
あり、主な式を評価した結果が返されます。
注:のゼロを見つけたいとも述べたので、シンボリック方程式でSOLVEf
関数を使用してみることができます。
zeroValues = solve(f,'beta');