1樓:緩緩掉落的松針
你是bai問建立目標函式在理論上du的方zhi法還是實際在matlab中運用dao的方法回?
理論的方法 就是尋找一
答個函式f(x)使得他在每一個x點的取值y與給定資料點的y值之差的平方和最小,這樣一來,目標函式自然就是假定的f(x)在每一個x點的取值y,與給定的y值之差的平方和。然後再由約束條件,取極值的方法求得目標函式的最小值。
實際運用 我這裡有** m檔案 可以直接在matlab引用,輸出擬合出的n次函式的係數。
附件上傳不了,我直接拷到這裡 編輯到m檔案裡面就可以用。
function c=lspoly(x,y,m)n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1
f(:,k)=x'.^(k-1);
enda=f'*f;
b=f'*y';
c=a\b;
c=flipud(c);
我想利用matlab的最小二乘法求解目標函式
2樓:偵探章邯
你是問建立目標
函式在理論上的方法還是實際在matlab中運用的方法?
理論的方法 就是尋找一個函式f(x)使得他在每一個x點的取值y與給定資料點的y值之差的平方和最小,這樣一來,目標函式自然就是假定的f(x)在每一個x點的取值y,與給定的y值之差的平方和。然後再由約束條件,取極值的方法求得目標函式的最小值。
實際運用 我這裡有** m檔案 可以直接在matlab引用,輸出擬合出的n次函式的係數。
附件上傳不了,我直接拷到這裡 編輯到m檔案裡面就可以用。
function c=lspoly(x,y,m)n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1
f(:,k)=x'.^(k-1);
enda=f'*f;
b=f'*y';
c=a\b;
c=flipud(c);
數值方法重要求用matlab的最小二乘法"直線"擬合此題(要寫出完整的程式過程,急用,求高手!!!!!!)
3樓:匿名使用者
clcclear
format compact
xi=[163 123 150 123 141];
yi=[186 126 172 125 148];
p=polyfit(xi,yi,1);
syms x
xx=123:1:163;
yy=polyval(p,xx);
plot(xi,yi,'r*',xx,yy,'b-')%y=p(1)*x+p(2)
p裡面的兩個係數前
面一個是x的係數,後面回
一個是常答數b。
4樓:匿名使用者
excel 可以做到啊
matlab中用最小二乘法擬合直線
5樓:mcr董事長
用polyfit函式,(用來多項式擬合的,是用最小二乘法)舉個例子
x=[90 91 92 93 94 95 96];
z=[70 122 144 152 174 196 202];
a=polyfit(x,z,1)
結果:a =
1.0e+03 *
0.0205 -1.7551
1表示1次多項式(一次時就是直線,適用於你的情況)a是多項式的係數向量,是從高次項往低次項排的,如果想運用結果,比如想知道當x=97時z等於多少那麼有兩種方法,
直接用係數
>> a(1)*97+a(2)
ans =
233.4286
或者用polyval函式
>> polyval(a,97)
ans =
233.4286
6樓:吾書橋君雅
首先確認一下
,你這的log是以10為底的對數吧?那麼命令如下。(如果是以e為底就不用除以log(10)了,自己改一下。)
>>x=0.01:0.01:1;
>>m=log(x)/log(10);
>>for
i=1:100;
y(i)=log((2^0.5)*(x(i)+1)/(x(i)*x(i)+2*x(i))^0.5)/log(10);
end>>plot(m,y,'r');holdon;>>p
=polyfit(m,y,1)%這個就是擬合的函式p=-0.3600
0.4161
>>pp=poly2sym(p);
>>ezplot(pp,[-2,0]);
紅色的是原曲線,藍色的是擬合直線。擬合直線的斜率就是-0.3600
最小二乘法用matlab怎麼實現(求具體程式)
7樓:匿名使用者
function a=multifit(x,y,m)
%a--輸出的擬合多項式的係數
n=length(x);
m=length(y);
if(n ~= m)
disp('資料點座標不匹配!');
return;
endc(1:(2*m+1))=0;
b(1:(m+1))=0;
for j=1:(2*m+1) %求出c和b
for k=1:n
c(j)=c(j)+x(k)^(j-1);
if(j<(m+2))
b(j)=b(j)+y(k)*x(k)^(j-1);
endend
endc(1,:)=c(1:(m+1));
for s=2:(m+1)
c(s,:)=c(s:(m+s));
enda=b'\c; %直接求解法求出擬合係數
%離散試驗資料點的線性最小二乘擬合
function [a,b]=lzxec(x,y)
if(length(x) == length(y))
n = length(x);
else
disp('x和y的維數不相等!');
return;
end %維數檢查
a = zeros(2,2);
a(2,2) = n;
b = zeros(2,1);
for i=1:n
a(1,1) = a(1,1) + x(i)*x(i);
a(1,2) = a(1,2) + x(i);
b(1,1) = b(1,1) + x(i)*y(i);
b(2,1) = b(2,1) + y(i);
enda(2,1) = a(1,2);
s = a\b;
a = s(1);
b = s(2);
%離散試驗資料點的正交多項式最小二乘擬合
function a=zjzxec(x,y,m)
if(length(x) == length(y))
n = length(x);
else
disp('x和y的維數不相等!');
return;
end %維數檢查
syms v;
d = zeros(1,m+1);
q = zeros(1,m+1);
alpha = zeros(1,m+1);
for k=0:m
px(k+1)=power(v,k);
end %x的冪多項式
b2 = [1];
d(1) = n;
for l=1:n
q(1) = q(1) + y(l);
alpha(1) = alpha(1) + x(l);
endq(1) = q(1)/d(1);
alpha(1) = alpha(1)/d(1);
a(1) = q(1);
b1 = [-alpha(1) 1];
for l=1:n
d(2) = d(2) + (x(l)-alpha(1))^2;
q(2) = q(2) + y(l)*(x(l)-alpha(1));
alpha(2) = alpha(2) + x(l)*(x(l)-alpha(1))^2;
endq(2) = q(2)/d(2);
alpha(2) = alpha(2)/d(2);
a(1) = a(1)+q(2)*(-alpha(1));
a(2) = q(2);
beta = d(2)/d(1);
for i=3:(m+1)
b = zeros(1,i);
b(i) = b1(i-1);
b(i-1) = -alpha(i-1)*b1(i-1)+b1(i-2);
for j=2:i-2
b(j) = -alpha(i-1)*b1(j)+b1(j-1)-beta*b2(j);
endb(1) = -alpha(i-1)*b1(1)-beta*b2(1);
bf = b*transpose(px(1:i));
for l=1:n
qx = subs(bf,'v',x(l));
d(i) = d(i) + (qx)^2;
q(i) = q(i) + y(l)*qx;
alpha(i) = alpha(i) + x(l)*(qx)^2;
endalpha(i) = alpha(i)/d(i);
q(i) = q(i)/d(i);
beta = d(i)/d(i-1);
for k=1:i-1
a(k) = a(k)+q(i)*b(k);
enda(i) = q(i)*b(i);
b2 = b1;
b1 = b;
end舉第一個執行結果的例子吧!
>> x=[3,4,5,6,7,8,9];
>> y=[2.01,2.98,3.50,5.02,5.47,6.02,7.05];
>> multifit(x,y,7)
ans =
columns 1 through 3
0.153705817445571 1.28812217846988 10.9204180096604
columns 4 through 6
93.4341699408163 805.369642330511 6984.42872632458
columns 7 through 8
60878.714442185 532900.1377831
8樓:我的無奈人生
最小二乘法在matlab語言中就是最簡單的函式擬合。
請問怎樣用MATLAB最小二乘擬合多項式Zfx,y
可以來用回自歸的,看不bai懂du你的數zhi 據x 0 20 40 60 80 100 y 0 50 100 150 200 250 300 x,y meshgrid x,y z 2.3 3.2 3.3 4.1 3.8 2.9 1.2 3.1 3.5 4.2 3.9 2.8 2.6 3 3.6 4...
簡述最小二乘估計原理,什麼是最小二乘法及其原理?
對於x和y的n對觀察值,用於描述其關係的直線有多條,究竟用哪條直線來代表兩個變數之間的關係,需要有一個明確的原則。這時用距離各觀測點最近的一條直線,用它來代表x與y之間的關係與實際資料的誤差比其它任何直線都小。根據這一思想求得直線中未知常數的方法稱為最小二乘法,即使因變數的觀察值與估計值之間的離差平...
高等數學求不定積分,高等數學求不定積分
詳細過程如圖,希望能幫到你解決你心中的問題 希望過程清楚明白 高等數學求不定積分?兩邊對x求導 x 5 f x x x 2 1 f x 1 x 4 x 2 1 f x dx dx x 4 x 2 1 令x sect,專則1 x cost,dx secttantdt f x dx secttantdt...