matlab多项式拟合体会,matlab多项式拟合

polyfit函数

Descriptionp = polyfit(x,y,n) finds the coefficients

of a polynomial p(x) of degree n that

fits the data, p(x(i)) to y(i), in a

least squares sense. The result p is a row vector of length n+1 containing

the polynomial coefficients in descending powers

[p,S] = polyfit(x,y,n) returns

the polynomial coefficients p and a structure S for

use with polyval to obtain error estimates or predictions.

Structure S contains fields R, df,

and normr, for the triangular factor from a QR decomposition

of the Vandermonde matrix of X, the degrees of freedom,

and the norm of the residuals, respectively. If the data Y are

random, an estimate of the covariance matrix of P is (Rinv*Rinv')*normr^2/df,

where Rinv is the inverse of R. If the

errors in the data y are independent normal with constant

variance, polyval produces error bounds that contain

at least 50% of the predictions.[p,S,mu] = polyfit(x,y,n) finds

the coefficients of a polynomial in

where

and

. mu is

the two-element vector

. This centering

and scaling transformation improves the numerical properties of both the polynomial

and the fitting algorithm.ExamplesThis example involves fitting the error function, erf(x),

by a polynomial in x. This is a risky project because erf(x) is

a bounded function, while polynomials are unbounded, so the fit might not

be very good. First generate a vector of x points, equally spaced

in the interval

; then evaluate erf(x) at

those points. x = (0: 0.1: 2.5)';

y = erf(x); The coefficients in the approximating polynomial of degree 6 are p = polyfit(x,y,6)

p =

0.0084  -0.0983   0.4217   -0.7435  0.1471   1.1064  0.0004There are seven coefficients and the polynomial is

To see how good the fit is, evaluate the polynomial at the data points

withf = polyval(p,x); A table showing the data, fit, and error is  table = [x y f y-f]

table =

0          0          0.0004    -0.0004

0.1000     0.1125     0.1119     0.0006

0.2000     0.2227     0.2223     0.0004

0.3000     0.3286     0.3287    -0.0001

0.4000     0.4284     0.4288    -0.0004

...

2.1000     0.9970     0.9969     0.0001

2.2000     0.9981     0.9982    -0.0001

2.3000     0.9989     0.9991    -0.0003

2.4000     0.9993     0.9995    -0.0002

2.5000     0.9996     0.9994     0.0002So, on this interval, the fit is good to between three and four digits.

Beyond this interval the graph shows that the polynomial behavior takes over

and the approximation quickly deteriorates. x = (0: 0.1: 5)';

y = erf(x);

f = polyval(p,x);

plot(x,y,'o',x,f,'-')

axis([0  5  0  2])

AlgorithmThe polyfit M-file forms the Vandermonde matrix,

, whose elements are powers

of

.

It then uses the backslash operator, \,

to solve the least squares problem

You can modify the M-file to use other functions of

as the basis functions.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值