2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > matlab符号表达式vpa 对MATLAB中符号和数值型数据以及sym() sym('') sym( 'd'

matlab符号表达式vpa 对MATLAB中符号和数值型数据以及sym() sym('') sym( 'd'

时间:2019-09-28 23:31:08

相关推荐

matlab符号表达式vpa 对MATLAB中符号和数值型数据以及sym() sym('') sym( 'd'

对MATLAB中符号和数值型数据以及

sym(),sym(''),sym(,'d'),vpa()的理解

[说明:正文中命令部分可以直接在matlab中运行,作者用的是MA TLAB Ra(7.8.0.347)]

v73_64=vpa(7/3,64),vs73d_64=vpa(sym(7/3,'d'),64)

vs73d_v73_64=vs73d_64-v73_64

v73_32=vpa(7/3,32),vs73d_32=vpa(sym(7/3,'d'),32)

vs73d_v73_32=vs73d_32-v73_32

vs73d=vpa(sym(7/3,'d'))

%sym('7/3','d')是7/3的十进制浮点近似表达(默认32位显示)

%但从vs73d_64看来,实际有效位数只有16位

%从vs73d_64和vs73d_32对比可知:vpa()不改变sym(7/3,'d')的显示精度

u=7/3-sym('7/3')

uv=vpa(7/3-sym('7/3'))

v73=vpa(7/3),vs73=vpa(sym('7/3'))

uvv=vpa(7/3)-vpa(sym('7/3'))

vs73d_64=vpa(sym('7/3'),64)

%v73与vs73相等,但uvv不等于0,说明vpa()做差时精度和看到的不同

%经验证:uvv=vpa(7/3,32)-vpa(sym('7/3'),32)的值是为0的

%故:在形如vpa()-vpa()的表达式求解过程中,

%vpa()对不同的数据类型选取的精度不同,sym('')选得更精确

%且结果并非全在实际有效数位内的(uvv小数位上不全为3)

v73=vpa(7/3),s73d=sym(7/3,'d')

v73_s73=vpa(7/3)-sym('7/3')

s73d_s73=sym(7/3,'d')-sym('7/3')

%v73_s73不等于0

%这是由于vpa(7/3)只是7/3的32为浮点表达,二者不相等

p3=pi*3^(1/3),sp3=sym('pi*3^(1/3)')

p3_sp3=pi*3^(1/3)-sym('pi*3^(1/3)')

vp3=vpa(pi*3^(1/3)),vsp3=vpa(sym('pi*3^(1/3)'))

vp3_vsp3=vpa(pi*3^(1/3))-vpa(sym('pi*3^(1/3)'))

vp3_sp3=vpa(pi*3^(1/3))-sym('pi*3^(1/3)')

v_p3_sp3=vpa(pi*3^(1/3)-sym('pi*3^(1/3)'))

%注意到,p3_sp3其实是等于0的,但v_p3_sp3却不等于0

%经测试:vpa(pi*3^(1/3))只有前16位与vpa(sym('pi*3^(1/3)'))相同

%由于sym('pi*3^(1/3)')作为符号表达式,其值是完全准确的

matlab符号表达式vpa 对MATLAB中符号和数值型数据以及sym() sym(\) sym( d) vpa()的理解【更新版】...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。