資料擬合:
問題的提法:
已知曲線上n個點(xi,yi), (i=1,2,…,n), xi互不相同,尋求乙個函式y=f(x), 使y=f(x)在某種準則下與所有資料點最為接近,即曲線擬合得最好。
基本思路是:
設按此方法得到的函式
若它接近1,表示f(x)能較好的擬合該資料集。
若取:matlab中的多項式擬合函式:polyfit
格式:a=polyfit(x,y,n)
功能:對一組點(x,y)進行n次多項式擬合。
x,y為要擬合的資料, n為擬合多項式的次數,
a為擬合多項式
例4.1 某通訊公司在一次施工中,需要在一段水面寬
20公尺的河底沿直線走向鋪設一條河底光纜,a點表示
光纜入水處,b點表示光纜出水處,c、d點表示河底的光纜的兩個觸底點,在鋪設前對河底地形做了測量,測得一組等分點位置xi處的水深hi,x0位於點a處,x20位於點b處,資料如表(單位:公尺)試估算通過這條河溝所需光纜長度的近似值。
給出一段**:
x=0:1:20;
y=[-9.2,-8.91,-8.02,-7.95,-8.11,-9.05,-10.12,-11.08,-12.25,-13.26,-13.45,-12.62,-11.28,-10.23,-9.25,-7.91,-8.05,-8.86,-9.85,-10.81,-10.96];
polytool(x,y,3)
n=input('擬合次數n=')
format long
p=polyfit(x,y,n) %代表擬合n次多元方程
dp=polyder(p) %積分
x1=0:0.01:20;
y1=sqrt(1+polyval(dp,x1).^2); %代表係數是dp,橫座標x1,他的縱座標
s=trapz(x1,y1)-y(1)-y(end)
答案:光纜總長:46.28m
解釋下裡面的幾個函式:
polyder
% matlab提供了polyder函式多項式的微分。
% 命令格式:
% polyder(p): 求p的微分
% polyder(a,b): 求多項式a,b乘積的微分
% [p,q]=polyder(a,b): 求多項式a,b商的微分
>>polytool(x,y,n)
n是你想最高次擬合為多少,如果是5,就輸入》polytool(x,y,5)
得到的是乙個含有偏差的擬合效果圖,其中圖形中的degree代表可以改變擬合次數
trapz : 採用梯形法求積分,其實就是模擬牛頓解釋積分的過程,一般給一堆點來求
Matlab實現最小二乘法
p polyfit x,y,n 最小二乘法計算擬合多項式係數。x,y為擬合資料向量,要求維度相同,n為擬合多項式次數。返回p向量儲存多項式係數,由最高次向最低次排列。y polyval p,x 計算多項式的函式值。返回在x處多項式的值,p為多項式係數,元素按多項式降冪排序。擬合以下資料 x 12 9...
matlab偏最小二乘法
偏最小二乘是建立表到表的線性擬合關係,然後 的方法 處理高維資料 比如在光譜分析中,x是某物質的光譜樣本構成的訓練集,y是對應的成分資料,x是要 成分的光譜資料 function y5,s pls2 x,y,x y5,s pls2 x,y,x 參考自司守奎教材 偏最小而成回歸章節 x y 為模型生成...
最小二乘法
include stdafx.h include include const int n 2 const int m 5 int sgn double x void lss double g n 1 int xm,int xn,double x m double p,double w m lss函式...