Exact value of a result
10 次查看(过去 30 天)
显示 更早的评论
Hello, I am trying to get the exact values of the following lines :
b=[-1, 3];
a=[1, -3, -2];
[r,p,k]=residuez(b,a);
right now, I obtain something like : p=[3.5615;-0.5615] and r=[-0.1361;-0.8638] and k=1.
Is there a format that would allow me to get me to see it displayed like : p=[(3-sqrt(17))/2 ; (3+sqrt(17))/2] and same for r?
thanks
0 个评论
回答(2 个)
David Hill
2022-11-29
residuez requires doubles as input, but p is just the roots of polynomial a which you could use symbolic to produce.
a=sym([1, -3, -2]);
p=roots(a)
0 个评论
Walter Roberson
2022-11-29
No, the calculations are inherently carried out in floating point.
If you were to follow along in the source code you could strip out the checks for floating point, and you could convert the numeric roots() call to use poly2sym() and then solve for symbolic roots. But after that the code uses filter() to run an impulse through, and emulating that symbolically might take a bit of work.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!