利用最小二乘法拟合求非线性度数据:x 1 2 3 5 6y 2.2 4.00 5.98 10.10

发布时间:2021-02-26 04:03:24

利用最小二乘法拟合求非线性度数据:x 1 2 3 5 6y 2.2 4.00 5.98 10.10 12.05

网友回答

这个问题的计算量很大.
各点的(xi,yi) (i=1,2,3,4,5) 坐标大致成线形关系.可利用最小二乘法求出斜率、截距 以及非线性度.
首先约定 用小写的x和y表示各点坐标.而大写字母表示平均值.例如 (X)表示横坐标的平均值、(Y^2) 表示纵坐标平方的平均值、(Y)^2表示纵坐标平均值的平方、(XY)表示横纵坐标乘积的平均值 等等.
设 (xi,yi)之间的程线形关系.直线方程为 y=kx+b.k为斜率,b为截距.
按照最小二乘法:
k=[(X)(Y)-(XY)]/[(X)^2-(X^2)]
其中(X)= (1/n)(∑xi)=(1/5)×(1+2+3+5+6)=3.4
(Y)= (1/n)(∑yi)=(1/5)×(2.20+4.00+5.98+10.10+12.05)= 6.866
(XY)=(1/n)(∑xiyi)
=(1/5)×(1×2.20+2×4.00+3×5.98+5×10.10+6×12.05)=30.188
(X^2)=(1/n)(∑xi^2)=(1/5)×(1×1+2×2+3×3+5×5+6×6)=15
(X)^2=3.4×3.4=11.56
k=(3.4×6.866-30.188)/(11.56-15)=1.99
以上关于直线的斜率,楼主没有要求计算.如果不需要算,可以忽略不看.另外,请楼主自己决定是否需要遵循有效数字的位数运算规则.
--------------------
关于非线性度γ:
γ=[(XY)-(X)(Y)]/SQRT{[(X^2)-(X)^2][(Y^2)-(Y)^2]}
SQRT表示开平方运算.
(X)= 3.4
(Y)= 6.866
(XY)=30.188
(X^2)=15
(X)^2=11.56
(Y^2)=(1/5)[2.20×2.20+4.00×4.00+5.98×5.98+10.10×10.10+12.05×12.05]
= 60.76
(Y)^2= 6.866×6.866=47.14
γ=[30.188-3.4×6.866]/SQRT[(15-11.56)(60.76-47.14)
=6.8436/SQRT(46.8528)
=6.8436/6.8449
≈1.00非线性度参数γ总是在0和1之间.越接近于1,数据的线形越好.本题目中,γ已经很接近于1,这表明各数据点很好地在一条直线上.
======以下答案可供参考======
供参考答案1:
呵呵,是啊。。。麻烦死了
供参考答案2:
如果你有商业统计/数学软件SAS, SPSS, MatLab, S-Plus (或 R System, 这是免费版的S Plus), 你可用其中的非线性回归分析(Nonlinear Regression)模块来解决这个问题, 其中有些模块会在结果中给出非线性性(nonlinearity or curvature),如果自己计算,非常麻烦,要用到一次和二次导数.我的理解你是想求出非线性性(度).
而关于求最小二乘曲线拟合见https://genial.yculblog./post.405645.html
供参考答案3:
用matlab来做吧,可以达到你的要求,程序如下:
/***************************************************************
* 本算法用最小二乘法依据指定的M个基函数及N个已知数据进行曲线拟和
* 输入: m--已知数据点的个数M
* f--M维基函数向量
* n--已知数据点的个数N-1* x--已知数据点第一坐标的N维列向量* y--已知数据点第二坐标的N维列向量* a--无用* 输出: 函数返回值为曲线拟和的均方误差* a为用基函数进行曲线拟和的系数,
以上问题属网友观点,不代表本站立场,仅供参考!