收藏 分享(赏)

Matlabpolyfit函数程序.doc

上传人:hskm5268 文档编号:7051235 上传时间:2019-05-04 格式:DOC 页数:2 大小:27.50KB
下载 相关 举报
Matlabpolyfit函数程序.doc_第1页
第1页 / 共2页
Matlabpolyfit函数程序.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、function p,S,mu = polyfit(x,y,n)%POLYFIT Fit polynomial to data.% P = POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of% degree N that fits the data Y best in a least-squares sense. P is a% row vector of length N+1 containing the polynomial coefficients in% descending powers, P(1)*XN + P

2、(2)*X(N-1) +.+ P(N)*X + P(N+1).% P,S = POLYFIT(X,Y,N) returns the polynomial coefficients P and a% structure S for use with POLYVAL to obtain error estimates for% predictions. S contains fields for the triangular factor (R) from a QR% decomposition of the Vandermonde matrix of X, the degrees of free

3、dom% (df), and the norm of the residuals (normr). If the data Y are random,% an estimate of the covariance matrix of P is (Rinv*Rinv)*normr2/df,% where Rinv is the inverse of R.% P,S,MU = POLYFIT(X,Y,N) finds the coefficients of a polynomial in% XHAT = (X-MU(1)/MU(2) where MU(1) = MEAN(X) and MU(2)

4、= STD(X). This% centering and scaling transformation improves the numerical properties% of both the polynomial and the fitting algorithm.% Warning messages result if N is = length(X), if X has repeated, or% nearly repeated, points, or if X might need centering and scaling.% Class support for inputs

5、X,Y:% float: double, single% See also POLY, POLYVAL, ROOTS.% Copyright 1984-2005 The MathWorks, Inc.% $Revision: 5.17.4.7 $ $Date: 2005/12/12 23:26:23 $% The regression problem is formulated in matrix format as:% y = V*p or% 3 2% y = x x x 1 p3% p2% p1% p0% where the vector p contains the coefficien

6、ts to be found. For a% 7th order polynomial, matrix V would be:% V = x.7 x.6 x.5 x.4 x.3 x.2 x ones(size(x);if isequal(size(x),size(y)error(MATLAB:polyfit:XYSizeMismatch,.X and Y vectors must be the same size.)endx = x(:);y = y(:);if nargout 2mu = mean(x); std(x);x = (x - mu(1)/mu(2);end% Construct

7、Vandermonde matrix.V(:,n+1) = ones(length(x),1,class(x);for j = n:-1:1V(:,j) = x.*V(:,j+1);end% Solve least squares problem.Q,R = qr(V,0);ws = warning(off,all); p = R(Q*y); % Same as p = Vy;warning(ws);if size(R,2) size(R,1)warning(MATLAB:polyfit:PolyNotUnique, .Polynomial is not unique; degree = nu

8、mber of data points.)elseif condest(R) 1.0e10if nargout 2warning(MATLAB:polyfit:RepeatedPoints, .Polynomial is badly conditioned. Add points with distinct Xn . values or reduce the degree of the polynomial.);elsewarning(MATLAB:polyfit:RepeatedPointsOrRescale, .Polynomial is badly conditioned. Add po

9、ints with distinct Xn . values, reduce the degree of the polynomial, or try centeringn . and scaling as described in HELP POLYFIT.);endendr = y - V*p;p = p.; % Polynomial coefficients are row vectors by convention.% S is a structure containing three elements: the triangular factor from a% QR decomposition of the Vandermonde matrix, the degrees of freedom and% the norm of the residuals.S.R = R;S.df = max(0,length(y) - (n+1);S.normr = norm(r);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报