Matlab 符号计算和变精度计算

             

预备知识 Matlab 的程序调试及其他功能

   Matlab 的符号计算需要符号计算工具箱,取决于你的证书类型,可能需要额外购买.另外需要提醒的是,虽然 Matlab 和 Python 都有符号计算功能,但在符号计算领域 Mathemtica 才更为主流,其默认界面也更适合符号计算.

1. 符号变量和符号表达式

符号替换

2. 变精度计算

   注意变精度计算功能往往和符号计算一同使用,但该功能本身却可以独立使用.变精度计算本质上还是数值浮点计算,计算过程存在数值误差.只不过我们可以规定每个变量的有效数字为任意多,而不是统一使用双精度类型的 15-16 位有效数字.

3. 特殊函数

   由于一些特殊函数若用双精度计算,往往在一些区间产生较大误差.所以 Matlab 决定只使用任意精度来计算.以复数域的 $\Gamma$ 函数 为例,若直接输入 gamma(1+1i) 则会出错,因为 Matlab 中非符号计算版本的 gamma 函数只支持 double 类型的实数输入.所以要调用符号计算工具箱提供的 gamma(),就输入一个 sym 类型的变量即可.例如 gamma(vpa(1+1i)) 返回 0.49801... - 0.15494...i,又例如 gamma(sym(1+1i)) 返回表达式 gamma(1 + 1i).这是因为 vpa(1+1i) 是变精度浮点数,可以显示为小数,而 sym(1+1i) 不存在误差,不能显示为小数.当然,我们也可以用例如 vpa(gamma(sym(1+1i)), 50) 来求任意位有效数字.相比之下即使使用 gamma(vpa(1+1i, 50)) 结果也只有 digits() 位有效数字.

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利