matlab求助:符号常数和double型常数的区别做了两个测试如下:1.a=pi+sqrt(5);sa=sym('pi+sqrt(5)');vpa(sa-a)结果是ans=0.138223*exp(-16),不相等2.a=pi;sa=sym('pi')vpa(sa-a)结果ans=0.居然是相等的?a又不是符号常

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 09:15:18
matlab求助:符号常数和double型常数的区别做了两个测试如下:1.a=pi+sqrt(5);sa=sym('pi+sqrt(5)');vpa(sa-a)结果是ans=0.138223*exp(-16),不相等2.a=pi;sa=sym('pi')vpa(sa-a)结果ans=0.居然是相等的?a又不是符号常

matlab求助:符号常数和double型常数的区别做了两个测试如下:1.a=pi+sqrt(5);sa=sym('pi+sqrt(5)');vpa(sa-a)结果是ans=0.138223*exp(-16),不相等2.a=pi;sa=sym('pi')vpa(sa-a)结果ans=0.居然是相等的?a又不是符号常
matlab求助:符号常数和double型常数的区别
做了两个测试如下:
1.a=pi+sqrt(5);
sa=sym('pi+sqrt(5)');
vpa(sa-a)
结果是ans=0.138223*exp(-16),不相等
2.a=pi;
sa=sym('pi')
vpa(sa-a)
结果ans=0.居然是相等的?a又不是符号常数,应该没有sa精确啊,怎么会相等呢?

matlab求助:符号常数和double型常数的区别做了两个测试如下:1.a=pi+sqrt(5);sa=sym('pi+sqrt(5)');vpa(sa-a)结果是ans=0.138223*exp(-16),不相等2.a=pi;sa=sym('pi')vpa(sa-a)结果ans=0.居然是相等的?a又不是符号常
第2个等于0,是因为sa=sym('pi') 表达式的含义是:创建pi的符号变量,将结果保存在sa中,与精度没有关系!
第1个不相等是因为 a = pi+sqrt(5) 这个表达式里面的pi+sqrt(5) 和 sa=sym('pi+sqrt(5)') 里面的这个符号变量'pi+sqrt(5)' 不是同一个对象了,所以结果二者不相等!
造成这个结果就在于 sym()函数的用法:创建和转换符号对象
形式:s = sym('x') 创建名称为x的符号变量度将结果保存在s中.