0
假設我們要確定是近似0之間的正切函數爲1的多項式方程的係數,如下:求解最小二乘使用MATLAB
-A是m×n個Vandermonde矩陣。這些條目使用0到11之間的m值(作爲輸入給出)填充。
- 使用正切函數計算相應的向量b。
-x通過在MATLAB中鍵入x = A \ b來計算。
現在,使用MATLAB,所計算的x在Ax中被下注。結果被繪製出來並且非常接近正切函數。但是如果我使用n-1度的polyval函數(在MATLAB中)來計算b,則結果圖與原始b顯着不同。我無法理解這兩種方法的結果之間存在如此顯着差異的原因。
下面是代碼:
clear all;
format long;
m = 60;
n = 11;
t = linspace(0,1,m);
A= fliplr(vander(t));
A=A(:,1:n);
b=tan(t');
x= A\b;
y=polyval(x, t);
plot(t,y,'r')
y2= A*x
hold on;
plot(t,y2,'g.');
hold on;
plot(t,tan(t),'--b');
任何瞭解,將不勝感激。謝謝。