如何修复大当处理符号var和疯狂的分数

26日视图(30天)
嗨,伙计们,
我经常面临这个,正如您将在下面看到的,因为(φ),因为(psi)是不错的实体,但当他们使用符号变量(kn),它显示了巨大的分数。有一个简单的方法使系数k1, k2和k3短格式或一些体面的分数。
甚至琐事的k1 * cos(π/ 2)不是评估为0,如下所示。我担心这将导致截断误差。
提前谢谢。
因为(π/ 2)
ans = 6.1232 e-17
信谊一个
* cos(π/ 2)
ans =
4评论
穆罕默德Aaquib汗
穆罕默德Aaquib汗 2022年9月18日
下面我固定它,这是我的意思
因为(π/ 2)
ans = 6.1232 e-17
信谊一个
* cos(π/ 2)
ans =

登录置评。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2022年9月19日
你正在寻找的答案
数字(4)
sympref (“FloatingPointOutput”,真正的);
然而,我不推荐。
1评论
穆罕默德Aaquib汗
穆罕默德Aaquib汗 2022年9月19日
是的谢谢你,vpa()也对同样的结果很不错。
φ=(50,25岁,90)';
信谊一个
vpa (cosd(φ)* 4)
ans =
数字(4)
sympref (“FloatingPointOutput”,真正的);
φ=(50,25岁,90)';
cosd(φ)*
ans =

登录置评。

更多的答案(2)

史蒂文的主
史蒂文的主 2022年9月18日
象征性地,使用 vpa 或使用 sympref 函数来改变 FloatingPointOutput 偏好。
数字,如果你想计算一个角的正弦或余弦表示为π的倍数,使用 sinpi cospi 分别。
格式longg
(罪(0.5 *π),因为(0.5 *π);cospi sinpi (0.5), (0.5)]
ans = 2×2
1 6.12323399573677 e-17 1 0

保罗
保罗 2022年9月18日
在这个表达式
信谊一个
* cos(π/ 2)
ans =
cos()是数值求解和结果转换为符号乘用。数值cos(π/ 2)不为零。
因为要象征性地评估力
* cos(π/信谊(2))
ans =
0
* cos(信谊(pi) / 2)
ans =
0
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年9月19日
永远不要eval()符号表达式。eval()的一个象征性的表达不是由Mathworks记录。在实践中它被视为eval (char())的表达式。然而,char()的符号表达式写在MATLAB的混合,英语,和内部MuPAD编程语言,不是一般的东西可以计算。

登录置评。

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!