matlab求解多元多次方程組 最小二乘法在matlab中怎么實(shí)現(xiàn)啊?
最小二乘法在matlab中怎么實(shí)現(xiàn)啊?MATLAB中常用的最小二乘擬合函數(shù)有polyfit(多項(xiàng)式擬合)、nlinfit(非線性擬合)和empress(多元線性回歸)。當(dāng)有兩個(gè)或多個(gè)自變量和一個(gè)因變量
最小二乘法在matlab中怎么實(shí)現(xiàn)啊?
MATLAB中常用的最小二乘擬合函數(shù)有polyfit(多項(xiàng)式擬合)、nlinfit(非線性擬合)和empress(多元線性回歸)。當(dāng)有兩個(gè)或多個(gè)自變量和一個(gè)因變量時(shí),可以使用nlinfit和empress,empress表示線性,nlinfit表示非線性。對(duì)于高級(jí)matlab用戶,有更多的選擇,如擬合工具箱、擬合函數(shù)、插值擬合等。讓我們?cè)敿?xì)介紹一下。雖然回歸只能進(jìn)行名義上的線性回歸,但它可以計(jì)算x^2等非線性變量作為附加自變量,因此在某些特殊情況下也可以進(jìn)行非線性擬合。以MATLAB的數(shù)據(jù)為例,示例代碼如下:(%)clcclearloadcarsmall%此數(shù)據(jù)示例MATLAB附帶x=weighty=horsepower z=mpg%。將這三個(gè)變量作為擬合對(duì)象,x,y自變量,Z因變量plot3(x,y,Z,“P”)holdonc=ones(length(x),1)B=region(Z,[x,y,C])%純線性擬合模型Z=B(1)*x B(2)*y B(3)
如何用MATLAB最小二乘法擬合曲線?
例如,如果函數(shù)形式是y=ax^2 BX C,MATLAB的代碼形式如下:]>> y=[Y1,Y2,Y3
>> P=polyfit(x,y,2)
運(yùn)行后可以得到a,B,C的大小。如果函數(shù)是一個(gè)變量的三次方程,請(qǐng)將polyfit括號(hào)中的數(shù)字改為3。如果它是一個(gè)變量的線性方程,只需將polyfit括號(hào)中的數(shù)字改為1。其他多項(xiàng)式函數(shù)等。
如何用matlab求最小二乘法?
以polyfit函數(shù)(多項(xiàng)式擬合,最小二乘法)為例,x=[90 91 92 93 94 95 96]z=[70 122 144 152 174 196 202]a=polyfit(x,z,1)結(jié)果:a=1.0e 03*0.0205-1.75511表示1次多項(xiàng)式(一次為直線,適用于您的情況)a為多項(xiàng)式的系數(shù)向量,從高階項(xiàng)到低階項(xiàng)排列。例如,如果要使用結(jié)果,如果要知道x=97時(shí)Z等于多少,則有兩種方法:直接使用系數(shù)>> a(1)*97 a(2)ans=233.4286或使用多元函數(shù)>>>多元(a,97)ans=233.4286