Matlab:在限制中使用sym

时间:2016-03-18 01:20:08

标签: matlab symbolic-math

说我有以下符号功能:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="hdr">Header goes here</div>
<div id="body">body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body body </div>
<div id="ftr">Footer this is the Footer</div>
<button>Change</button>

我想使用另一个符号函数来获取限制。我试过了:

syms f(t)
f(t)=sin(t)/t

但是当我尝试使用syms lim(x) lim(x)=limit(f(t),t,x) 时,我收到了这个错误:

  

使用symengine时出错(第59行)   除以零。

可以修复吗?

2 个答案:

答案 0 :(得分:1)

看看lim(x)。出于某种原因limit消失了。我真的不明白那里出了什么问题。如果您使用匿名函数而不是函数句柄,limit的评估将被推迟,直到x有一个值并且它有效。

>> lim=@(x)limit(f(t),t,x)

lim = 

    @(x)limit(f(t),t,x)

>> lim(0)

ans =

1

答案 1 :(得分:1)

Matlab没有discussed here的延迟分配。因此,在创建lim时,会立即使用limit替换x来评估对t的调用:

>> syms t x f(t) lim(x)
>> f(t) = sin(t)/t
f(t) =
sin(t)/t

>> lim(x) = limit(f(t),t,x)
lim(x) =
sin(x)/x

当您评估lim(0)时,会得到sin(0)/0,这会引发错误。