関数内の変数を制限する方法はMATLABにありますか
たとえば、私は機能を持っています
function S0 = S0Func(obj, c, delta, xT, sigma)
beta = obj.betaFunc(sigma);
xb = obj.xbFunc(c, delta, sigma);
S0 = (1-obj.tau).*(obj.x0./(obj.r-obj.mu)-c./obj.r-(xb./(obj.r-obj.mu)-c./obj.r).*((obj.x0./xb).^beta)-((delta-1).*c./obj.r).*((obj.x0./xT).^beta-((obj.x0./xb).^beta)));
end
制限が必要な場合(objはクラスのオブジェクトです)
0<xb<xT<1
0<c
1<delta
私がやりたいのは、上記の制限付きで、次の3Dグラフを描くことです。
S0Func(2.7, 1, 1, 0.3)-S0Func(c,delta,xT,0.2)<0;
編集 私は等値面を使用してみました
optimalStraightCoupon = fminbnd(@(c) -(S0Function(c,1,1)+D0Function(c,1,1)), 0, 4);
[xT, delta, c] = meshgrid(0.8:.01:1, 1:.1:3, 0:.1:4);
values = S0Function(optimalStraightCoupon,1, 1)- S0Function(c,delta, xT);
patch(isosurface(xT, c, delta, values, 1), 'FaceColor', 'red');
view(3);
いくつかの出力が得られますが、xTの制限に違反しているため、正しくありません。
どんな助けでも大歓迎です。ありがとうございました。