欢迎光临散文网 会员登陆 & 注册

Matlab-基础篇(五)

2021-02-14 17:28 作者:Berton9407  | 我要投稿

关于误差,主要有模型误差(数学模型与实际问题之差)、观测误差(观测值和对应观测量的真值之差,可以分为偶然误差、系统误差、粗差)、舍入误差(计算机有限位数的浮点数来表示实数产生的误差,末尾是5可舍可入,一般取偶结果)和截断误差(从无穷到有限过程的截断)。《计算方法》中主要关心后两种误差。

在计算积分迭代的过程中,如果迭代公式选择不合适,往往容易致使结果与实际值偏离地特别大,即“误差淹没真值”。关于误差、误差线和有效数字:

  • x:准确值;x*:近似值;

  • 绝对误差(有量纲,可正可负):e=x*-x(e无法确定,只能确定上限)

  • 若|e|<%5Cvarepsilon%20,则成%5Cvarepsilon%20为绝对误差限或精度,显然误差限是不唯一的;若满足,则说明x=x*关于精度%5Cvarepsilon%20是精确的;

  • 有效数字位:x%3D%5Cpm%200.a_1a_2...a_n...a_m%C3%9710%5Ep,如果|e|%3C10%5E%7Bp-n%7D%2F2,则称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的表达也不是准确的,相应的要给出斜率和截距各自的误差范围,这也是最容易犯错的“基本功”,在科学研究中心一定要仔细、仔细再仔细,很多时候不要得到一串“无意义”的数字。

讲到这里,基础篇的内容也接近尾声了,之后将主要以时间序列分析出发,讲解其时域和频域的不同展现。

Matlab-基础篇(五)的评论 (共 条)

分享到微博请遵守国家法律