Limit of a symbolic expression

4 次查看(过去 30 天)
Hi,
I am trying to use the limit(expr,x,a) function of MATLAB to find the limit of the ratio of two norms with symbolic variables in them. Like below (I want to get rid of the abs in the solution as well). This is my goal: limit(N,norm(x),0) I am getting this error "The limit variable must be a symbolic variable." I don't understand since N,norm(x) are all symbolic.
N = (abs((49*x3)/50 + (49*x5)/50 + (2000*sin(x3)*x4^2 + 1000*sin(x5)*x6^2 - u + 980*cos(x3)*sin(x3) + 980*cos(x5)*sin(x5))/(100*cos(x3)^2 + 100*cos(x5)^2 - 1200))^2 + abs((49*x3)/500 + (539*x5)/500 + (49*sin(x5))/100 - (cos(x5)*(2000*sin(x3)*x4^2 + 1000*sin(x5)*x6^2 - u + 980*cos(x3)*sin(x3) + 980*cos(x5)*sin(x5)))/(20*(100*cos(x3)^2 + 100*cos(x5)^2 - 1200)))^2 + abs((539*x3)/1000 + (49*x5)/1000 + (49*sin(x3))/100 - (cos(x3)*(2000*sin(x3)*x4^2 + 1000*sin(x5)*x6^2 - u + 980*cos(x3)*sin(x3) + 980*cos(x5)*sin(x5)))/(20*(100*cos(x3)^2 + 100*cos(x5)^2 - 1200)))^2)^(1/2)/(abs(x1)^2 + abs(x2)^2 + abs(x3)^2 + abs(x4)^2 + abs(x5)^2 + abs(x6)^2)^(1/2)

采纳的回答

John D'Errico
John D'Errico 2016-12-10
编辑:John D'Errico 2016-12-10
You want to do this:
limit(N,norm(x),0)
norm(x) is NOT a symbolic variable. It is a construct that contains symbolic variables, so it is a symbolic expression containing symbolic variables. But it is NOT a symbolic variable. The difference is important here.
x is what, a vector of length 6? Think about it like this: we can approach 0 with norm(x) along MANY paths in that 6 dimensional space. Infinitely many of them in fact. I'd not be amazed if some of those paths have different limits.
For example, consider the problem as you want to write it:
limit(x/y,norm([x,y]),0)
Thus take the limit of x/y, as the norm of the vector [x,y] approaches zero. If we fix x at zero, then vary y, allowing y to approach zero. Then the limit is equivalent to
syms y
limit(0/y,y,0)
ans =
0
But if we fix y to 0, then allow x to approach zero? MATLAB predicts this is essentially a NaN, undefined.
Or, we can follow the path where x==y. That reduces to
syms x
limit(x/x,x,0)
ans =
1
But what if we take the limit along the path x==2*y?
limit(x/(2*x),x,0)
ans =
1/2
The point is, your question is not well posed in general, since such a limit may well have infinitely many solutions.
  1 个评论
Deepayan Bhadra
Deepayan Bhadra 2016-12-10
Thanks for your comment. However, I found that MATLAB considers norm(x) as 1x1 sym as well. Else, if I wish to find the limit for each x1 to x6 = 0, is there any direct way to incorporate this into the command?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Numbers and Precision 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by