導航:首頁 > 編程語言 > 最小二乘matlab代碼

最小二乘matlab代碼

發布時間:2024-06-26 20:16:33

1. matlab 鏈灝忎簩涔樻硶鎷熷悎

涓昏佺殑闂棰樻槸inline鍑芥暟鍐欐硶涓嶅癸紝matlab涓嶈兘璇嗗埆涓嬮潰鐨勫啓娉曪細

f=inline('R*exp(-a*x)','[Ra]','x');

鍍忚繖縐嶆湁澶氫釜寰呰鯨璇嗗弬鏁扮殑鎯呭喌錛屽簲璇ュ啓鎴愪竴涓鍚戦噺錛屽

f=inline('c(1)*exp(-c(2)*x)','c','x');

鍙傝冧唬鐮侊細

%鐢熸垚嫻嬭瘯鏁版嵁
t=linspace(0,2*pi,50);
x=1.5*cos(t);
y=1.5*sin(t);
plot(x,y)
holdon
t=linspace(0,pi,30);
r=1.5*exp(-1*t)+0.02*randn(size(t));%鏁版嵁涓鍔犲叆鍣澹
x=r.*cos(t);
y=r.*sin(t);
plot(x,y,'r')
axisequal

%curvefit
[theta,rho]=cart2pol(x,y);%transformintopolarcoord
idx=(x<=eps)&(y<=eps);
theta(idx)=[];
rho(idx)=[];
f=inline('c(1)*exp(-c(2)*x)','c','x');
[BestPara,resnorm,resil]=lsqcurvefit(f,[1.51],theta,rho);
R=f(BestPara,theta);
X=R.*cos(theta);
Y=R.*sin(theta);
plot(X,Y,':g')
legend('鍦','鍘熷嬫暟鎹','鎷熷悎鏁版嵁');

緇撴灉濡傚浘錛

2. 最小二乘法的matlab程序是怎樣的

我給你個最小二乘擬合的例子自己體會一下:
下面給定的是烏魯木齊最近1個月早晨7:00左右(新疆時間)的天氣預報所得到的溫度數據表,按照數據找出任意次曲線擬合方程和它的圖像。
(2008年10月26~11月26)
天數 1 2 3 4 5 6 7 8 9 10
溫度 9 10 11 12 13 14 13 12 11 9
天數 11 12 13 14 15 16 17 18 19 20
溫度 10 11 12 13 14 12 11 10 9 8
天數 21 22 23 24 25 26 27 28 29 30
溫度 7 8 9 11 9 7 6 5 3 1

下面應用Matlab編程對上述數據進行最小二乘擬合
Matlab程序代碼
x=[1:1:30];
y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1];
a1=polyfit(x,y,3) %三次多項式擬合%
a2= polyfit(x,y,9) %九次多項式擬合%
a3= polyfit(x,y,15) %十五次多項式擬合%
b1= polyval(a1,x)
b2= polyval(a2,x)
b3= polyval(a3,x)
r1= sum((y-b1).^2) %三次多項式誤差平方和%
r2= sum((y-b2).^2) %九次次多項式誤差平方和%
r3= sum((y-b3).^2) %十五次多項式誤差平方和%
plot(x,y,'*') %用*畫出x,y圖像%
hold on
plot(x,b1, 'r') %用紅色線畫出x,b1圖像%
hold on
plot(x,b2, 'g') %用綠色線畫出x,b2圖像%
hold on
plot(x,b3, 'b:o') %用藍色o線畫出x,b3圖像%

3. 用MATLAB解決最小二乘解的題

這個題目本質上就是個二次函數的求極值問題。
(1)首先將式子化簡
如圖
(2)代入下列函數中函數中
2.1
最速下降法子函數(代碼)
2.2
擬牛頓法(對秩1
子函數代碼)
2.3
bfgs子函數代碼
2.3
dfp(子函數代碼)
(3)上述過程包含了計算的步驟,可以用optimtool設置方法來求解並得到過程。本來想給你結果的,分數太少,就不寫上去了。

4. 鐢ㄦ渶灝忎簩涔樻硶鍦∕ATLAB涓鎷熷悎鏇茬嚎

浣犲ソ錛

鏃㈢劧y=ax^b

閭d箞ln(y)=bln(x)+lna;

涓嬮潰鏄鎴戠殑浠g爜錛

clc;clear all

x=[66.52 28.08 37.61 26.68 56.52 22.71 113.163 34.33 48.48 56.18 78.23 43.7 16.75 151.02];

y=[15.03 35.67 27.06 41.3 17.59 47.79 9.64 32.03 24.21 20.31 13.23 25.38 64.17 7.49];

x1=log(x);

y1=log(y);

p=polyfit(x1,y1,1);

b=p(1);

a=exp(p(2));

fprintf('a=%f ',a);fprintf('b=%f ',b);

hold on

plot(x,a*(x.^b),'*')

plot(x,y,'r.')

legend('鎷熷悎鍚庣殑鐐','鎷熷悎鍓嶇殑鐐')

鏈鍚庣畻鍑烘潵鐨勭粨鏋滄槸錛

a=1036.841810

b=-0.990830

鍥劇墖錛

閱讀全文

與最小二乘matlab代碼相關的資料

熱點內容
編程內存和顯卡哪個重要 瀏覽:672
android連接網路列印機 瀏覽:195
linuxsftp如何上傳文件 瀏覽:603
蘋果文件覆蓋 瀏覽:327
網路足彩名人有哪些 瀏覽:639
pc共享網路給電腦 瀏覽:796
linuxkill重啟進程 瀏覽:658
sketchup景觀教程 瀏覽:730
win10管理找不到模塊 瀏覽:472
蘋果手機查看電腦文件 瀏覽:61
微信不訪問視頻文件夾嗎 瀏覽:259
文件夾加密大師注冊碼 瀏覽:1
onedrive怎麼上傳文件 瀏覽:488
android多線程寫文件棧溢出 瀏覽:242
台電酷閃量產工具 瀏覽:837
如何破壞文件 瀏覽:15
從什麼網站上查找國家標准 瀏覽:254
iphone5s最省電的瀏覽器 瀏覽:225
用數據線如何接攝像頭 瀏覽:110
qq手機電腦互傳文件 瀏覽:613

友情鏈接