Matlab-基础篇(五)

关于误差,主要有模型误差(数学模型与实际问题之差)、观测误差(观测值和对应观测量的真值之差,可以分为偶然误差、系统误差、粗差)、舍入误差(计算机有限位数的浮点数来表示实数产生的误差,末尾是5可舍可入,一般取偶结果)和截断误差(从无穷到有限过程的截断)。《计算方法》中主要关心后两种误差。
在计算积分迭代的过程中,如果迭代公式选择不合适,往往容易致使结果与实际值偏离地特别大,即“误差淹没真值”。关于误差、误差线和有效数字:
x:准确值;x*:近似值;
绝对误差(有量纲,可正可负):e=x*-x(e无法确定,只能确定上限)
若|e|<
,则成
为绝对误差限或精度,显然误差限是不唯一的;若满足,则说明x=x*关于精度
是精确的;
有效数字位:
,如果|e|
,则称x*有n位有效数字。
举个例子(摘自《计算方法》课后习题):

首先,对直观选择的迭代公式进行分析,见图二:

再者,转换思路,讨论此迭代带来的问题和转变迭代方式,如图三:

由上,体会迭代方式的不同带来的误差发散或收敛性是有很大的区别,在实际应用中应该要讨论相关误差迭代的问题。
当然,拿到的观测数据或者数据在计算机读取中都有相应的误差产生,那如果给出一组样本(x,y)的同时给定对应的误差(errx,erry),从而用模型(如:线性拟合y=a+bx)来确定对应的模型参数,又该如何进行处理呢?一般有以下步骤及步骤中涉及的内部函数:
利用原始的(x,y)利用polyfit或左除\得到一组参数的值;
分别根据errx和erry,结合normrnd函数产生大量(如:2000组)的样本数据,等待拟合;
对每一组都可以得到新的参数结果;
利用hist画出参数的分布图;
用sort进行排序,找出居中68.3%(1σ)、95.4%(2σ)或99.7%(3σ)的区间,再结合第一次得到的拟合值当成中心数给出拟合参数及其误差。
在这里,切忌拟合参数和误差不是所有数字位都是有效数字位,不是数字的位数越长就说明得到的结果越好,而应该是利用拟合参数的误差去限制参数的有效位数,达到两者一致。例如:1.904±0.782、32.4±9.02、443.21±0.6、45.12±0.06011都是不规范的表达;0.5,0.50,0.500虽然都是一个数,但是代表的误差限可不一样。学到这里,拟合的结果y=1.051x+2.434的表达也不是准确的,相应的要给出斜率和截距各自的误差范围,这也是最容易犯错的“基本功”,在科学研究中心一定要仔细、仔细再仔细,很多时候不要得到一串“无意义”的数字。
讲到这里,基础篇的内容也接近尾声了,之后将主要以时间序列分析出发,讲解其时域和频域的不同展现。