MATLAB控制运算精度 matlab提高运算精度

先来看一段MATLAB代码


clear;

theta = 264.3783;
t1 = [cos(theta); cos(2*theta);cos(3*theta); cos(4*theta); sin(theta); sin(2*theta); sin(3*theta);sin(4*theta); 1];
t2 =[0.88490.56610.1170-0.35910.46580.82430.99310.93331.0000]';

Ximage = [7.8013 -10.5825 -12.7495 4.806716.3082 7.2674 1.5018 0.0946-12.8618]';

result1 = t1'*Ximage;

result2 = t2'*Ximage;


在MATLAB控制台下查看t1与t2的值是一样的,但是结果却相差很多:

result1与result2的值符号都变了,这是为什么呢?

原来MATLAB显示数据时,默认现实小数点后面4位,但实际运算所使用的精度并不是这样。
所以上述的t1和t2在计算时候,值并不相等;之所以result1和result2符号都发生改变,是因为Ximage里某些值比较大的缘故。
其实这两个值,都是非常靠近原点0的两个值。

MATLAB中控制运算精度

format long 只能设置显示精度,并不能控制运算精度。
在MATLAB中,控制运算精度一般使用 digits和 vpa。示例:

digits %显示当前运算精度

digits(n) %设定默认的精度
vpa(x,n) %表示将s表示为n位有效数的符号对象
MATLAB控制运算精度 matlab提高运算精度
如果不设定digits(n),系统默认为32位

需要注意:

1,vpa算出的值为符号变量,可以进行初等运算,但不能进行关系运算等;

2,vpa的运算速度比MATLAB标准函数要慢

MATLAB中四舍五入

采用函数 roundn(x,y) 例子

a=123.4567890;
a=roundn(a,-4)

% 返回 123.4568

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/213392.html

更多阅读

Win7/8如何关闭UAC win7 彻底关闭uac

Win7/8如何关闭UAC——简介UAC(User Account Control,用户帐户控制)是微软为提高系统安全而引入的功能,虽然它能保护系统的安全,但有些时候会过度提示,从而影响系统使用Win7/8如何关闭UAC——工具/原料Win7/8操作系统Win7/8如何关闭UA

怎么关闭 UAC? win7 uac怎么关闭

怎么关闭 UAC?——简介先来说说什么是UAC,据百度百科的资料介绍,UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设

总装车间岗位职责 车间主任岗位职责

总装车间管理文件编制人:总装车间办公室:2013年4月08日车间主任岗位职责总装车间20130408-01(1)组织实施公司下达的生产计划,保证公司的名项决策能顺利执行,保质保量地完成生产任务;(2)贯彻、执行公司的成本控制目标,加强对车间原材料使用的控

电磁阀及电磁阀工作原理 二位五通电磁阀原理

科技名词定义中文名称:电磁阀英文名称:solenoid valve定义:用电磁铁操纵阀芯移动的阀。所属学科:机械工程(一级学科);传动(二级学科);液压传动(三级学科)电磁阀是用电磁控制的工业设备,用在工业控制系统中调整介质的方向、流量、速度和其他的参数

甘肃省计划生育条例(90.1.1-02.9.26) 甘肃省城乡规划条例

甘肃省计划生育条例(1997年修正版执行时期1990.1.1-2002.9.26)(1989年11月 28日甘肃省第七届人民代表大会常务委员会第十一次会议通过根据1997年9月29日甘肃省第八届人民代表大会常务委员会第二十九次会议通过的《关于修改《甘肃省计

声明:《MATLAB控制运算精度 matlab提高运算精度》为网友习惯寂寞乄分享!如侵犯到您的合法权益请联系我们删除