1.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗?

a2=sin(sym(pi/4)+exp(sym(0.7))*exp(sym(pi/3)))

a3=sin(sym('pi/4')+exp(sym('0.7'))*exp(sym('pi/3')))

a4=sin(sym('pi/4')+exp(sym('0.7+pi/3')))

a5=sin(sym(pi/4)+exp(sym(0.7+pi/3)))

a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)))

a7=sin(sym(pi/4+exp(0.7+pi/3)))

a8=sym(sin(pi/4+exp(0.7+pi/3)))

(提示:可用vpa观察误差;注意数位的设置)。

解答:

这里首先介绍一个函数vpa:

 1 %{
 2 一、要修改运算的精度,需要digits()函数和vpa()函数同时执行,单独使用digits函数不会改变运算精度!
 3 二、vpa()函数对函数内部的变量运算过程不修改精度
 4 %}
 5 clear,clc;
 6 format long; 
 7 %digits(m)  ,这里设置的vpa会使用digits设定的精度位数m
 8 digits(2),vpa(pi),vpa(2*pi)
 9 
10 %vpa(pi,n)  n>=m才可以   
11 vpa(pi,30)
View Code

相关文章: