在某一点使用限制值

时间:2013-06-19 07:21:10

标签: matlab limit

我有以下代码行

arg1 = ( x<=a ).*(log(x)) + ( x>a).*(log(2*a-x));
num = sinh(arg1);
den = const + cosh(arg1);
re = num./den + const2;
re1 = ;

re未在x = 0处定义,因为log在0处爆炸。但是re的限制值为0,定义为const3。

当x = 0时,我希望re1const3,当x> 0时,我想要为re1:= piecewise([x = 0, const3],[ x>0, re]); 。 我尝试使用分段作为

re1

但这不起作用。 对于char类型的输入参数,我收到错误“未定义函数或方法{{1}}。

我应该如何获得理想的结果?

2 个答案:

答案 0 :(得分:0)

您将需要符号数学工具箱。 通常,如果将f(x)定义为函数并想要在x = a处计算限制,则执行以下操作,

sym x
const3 = limit (sym (f),x,a)

这可能会有所帮助:http://www.mathworks.in/help/symbolic/limit.html

答案 1 :(得分:0)

只需使用逻辑索引:

re1 = re;
re1(x == 0) = const3;

并且,即使它可能“不可能”,我的经验告诉我这样做也是个好主意:

re1(x >= 2*a) = const3;