A. matlab擬合離散點曲線
問題分析
1、從數據看,與橢圓的形狀吻合不是很好,尤其是短軸部分明顯凹入。
2、擬合的基本思路是,使用長半軸a、短半軸b和傾角Q作為參數描述橢圓方程(進一步還可以考慮圓心不在原點,再增加兩個參數),然後通過優化,目標是使得所有已知點到橢圓的總距離最短。
3、關於點到橢圓的最短距離,有很多討論,都非常復雜,並不實用。這里採用在橢圓上取足夠多的點然後直接計算的距離的方式。
4、擬合得到橢圓參數後,面積S=πab直接計算,主軸和X軸的夾角為擬合得到的數據,而關於橢圓的X最大值對應的X,Y坐標的計算,可以把點取密集一些,直接求最大值,也可以對X求導數,然後解X'=0得到對應的t,再計算X、Y。
參考代碼
functionzd
X=[0.48,1.58,2.428,3.032,3.36,3.368,2.92,2.172,1.368,0.512,-0.436,0.876,-0.48,-1.58,-2.428,-3.032,-3.36,-3.368,-2.92,-2.172,-1.368,-0.512,0.436,0.48];
Y=[0.752,1.8572,2.39,2.24,1.766,0.8828,0.0572,-0.3136,-0.472,-0.6064,-0.7864,-0.2804,-0.752,-1.8572,-2.39,-2.24,-1.766,-0.8828,-0.0572,0.3136,0.472,0.6064,0.7864,0.752];
clf
plot(X,Y,'x')
holdon
c=lsqcurvefit(@curve,[3.51.530*pi/18000],[X;Y],X*0)
a=c(1);
b=c(2);
Q=c(3);
T=linspace(0,2*pi,100);
x1=a*cos(T);
y1=b*sin(T);
x=x1*cos(Q)-y1*sin(Q);
y=x1*sin(Q)+y1*cos(Q);
plot(x,y,'r--')
%橢圓的面積
S=pi*a*b
%橢圓的X最大值對應的X,Y坐標
t=fzero(@(t)-a*cos(Q)*sin(t)-b*sin(Q)*cos(t),0);
x=a*cos(t)*cos(Q)-b*sin(t)*sin(Q)
y=a*cos(t)*sin(Q)+b*sin(t)*cos(Q)
plot(x,y,'mo')
legend('原始數據','擬合曲線','X最大值',4)
%橢圓的主軸和X軸的夾角
Q=Q*180/pi
functionf=curve(c,xy)
a=c(1);
b=c(2);
Q=c(3);
t=linspace(0,2*pi,500);
x1=a*cos(t);
y1=b*sin(t);
x=x1*cos(Q)-y1*sin(Q)+c(4);
y=x1*sin(Q)+y1*cos(Q)+c(5);
f=xy(1,:)*0;
fori=1:length(xy)
f(i)=min(sqrt((xy(1,i)-x).^2+(xy(2,i)-x).^2));
end
結果
程序輸出:
c=
3.47941.48090.5155-0.00660
S=
16.1875
x=
3.1141
y=
1.3654
Q=
29.5357
也就是說a=3.48,b=1.48,Q=29.5度,S=16.2,如圖所示。
B. 在EXCEL如何將散點擬合為曲線
所謂擬合曲線,就是有兩列數據。
將兩列數據生成為圖表,x一列,y一列。
類型為散點圖。
生成圖表後,選中數據曲線,添加趨勢線。
看你的數據符合那種擬合類型。
選擇對應的類型就ok了。
選項裡面還有顯示公式,顯示r等選項。
具體的含義參考:數值計算方法
一類的書。
C. matlab畫散點圖並擬合函數曲線
畫法如下:
在輸入欄分別輸入x=[...............],y=[.........................]
matlab的開始菜單start->toolboxes->cirve
fitting->cirve
fitting
tool,
點data選擇x和y數據,對應自己的數據,點cirve
fitting
tool界面的fitting按鈕,裡面好幾個可以擬合的函數。可以自動生成曲線,得到系數,分析誤差。
D. MATLAB畫散點圖和二次函數擬合
x=[37 37.5 38 38.5 39 39.5 40 40.5 41 41.5 42 42.5 43];
y=[3.4 3 3 2.27 2.1 1.83 1.53 1.7 1.8 1.9 2.35 2.54 2.9];
p=polyfit(x,y,2); % 擬合出的二次函數的系數
ye=y-polyval(p,x); % 計算誤差
ye2s=sum(ye.^2); % 誤差的平方和
disp(sprintf('誤差的平方和=%d',ye2s));
xx=linspace(min(x),max(x)); % 繪圖用到的點的橫坐標
yy=polyval(p,xx); % 擬合曲線的縱坐標
plot(x,y,'o',xx,yy); % 繪圖,原始數據+擬合曲線
legend('原始數據','擬合曲線'); % 圖示
s=char(vpa(poly2sym(p,'x'),5)); % 二次函數式轉換為字元串,vpa轉換小數,保留5位有效數字
title(['y=' s]);
E. matlab已知散點圖如何擬合
在輸入欄分別輸入x=
,y=
matlab的開始菜單start-toolboxes-cirvefitting-cirvefittingtool,然後點data選擇x和y數據,對應你自己的數據就好了,然後點cirvefittingtool界面的fitting按鈕,裡面好幾個可以擬合的函數。可以自動生成曲線,得到系數,分析誤差。有問題可以繼續追問
F. excel曲線擬合採用的演算法
最小二乘法是一種數學方法,用於曲線擬合.二乘,就是平方,是早年翻譯的沿用.
當在實驗中獲得自變數與因變數的一系列對應數據,(x1,y1),(x2,y2),(x3,y3),...(xn,yn)時,要找出一個已知類型的函數,y=f(x) ,與之擬合,使得實際數據和理論曲線的離差平方和:∑[yi-f(xi)]^2(從i=1到i=n相加)為最小.
這種求f(x)的方法,叫做最小二乘法。
求得的函數y=f(x)常稱為經驗公式,在工程技術和科學研究的數據處理中廣泛使用.最普遍的是直線(一次曲線)擬合,在現代質量管理上,對散布圖的相關分析上也用此法.
是否可以解決您的問題?
G. origin如何做出平滑的點線圖
操作如下:
1、Origin 作圖黃金原則:想修改什麼就直接雙擊什麼。你想修改線,那就直接雙擊它。在彈出的 Plot Details 對話框中,選擇 Line 選項卡,在 Connect 下拉菜單中選擇 Spline,如下圖所示:
Origin的相關簡介:
Origin是由OriginLab公司開發的一個科學繪圖、數據分析軟體,支持在Microsoft Windows下運行。Origin支持各種各樣的2D/3D圖形。Origin中的數據分析功能包括統計,信號處理,曲線擬合以及峰值分析。
Origin中的曲線擬合是採用基於Levernberg-Marquardt演算法(LMA)的非線性最小二乘法擬合。Origin強大的數據導入功能,支持多種格式的數據,包括ASCII、Excel、NI TDM、DIADem、NetCDF、SPC等等。圖形輸出格式多樣,例如JPEG,GIF,EPS,TIFF等。內置的查詢工具可通過ADO訪問資料庫數據。
H. 曲線擬合一般有哪些方法
曲線擬合一般方法包括:
1、用解析表達式逼近離散數據的方法
2、最小二乘法
拓展資料:
實際工作中,變數間未必都有線性關系,如服葯後血葯濃度與時間的關系;疾病療效與療程長短的關系;毒物劑量與致死率的關系等常呈曲線關系。曲線擬合(curve fitting)是指選擇適當的曲線類型來擬合觀測數據,並用擬合的曲線方程分析兩變數間的關系。
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。
I. matlab擬合曲線的方法有幾種
matlab最常用擬合曲線的函數有:
1、regress()和polyfit()適用於線性函數的擬合
2、lsqcurvefit()和nlinfit()適用於較復雜的非線性函數的擬合
3、fit()適用於最常用函數的擬合,如指數函數,傅立葉函數、高斯函數、多項式函數、冪函數、有理函數等等。類似於cftool工具箱。
J. matlab畫散點圖並擬合函數曲線
創立一個M文件然後根據plot函數輸入編碼
x=[54.967.978.089.9108.6];
y1=[2.44.05.56.99.7];
y2=[2.13.44.75.98.5];
y3=[1.11.82.63.24.4];
y4=[0.71.11.52.02.7];
plot(x,y1,'-o',x,y2,'-o',x,y3,'-o',x,y4,'-o')
就可以做出圖像
可以根據圖像明白如果要擬合成多項式則它的階次為1
根據polyfit(x,y1,1)函數來擬合就可以
比如擬合x與y1則編碼為p1=polyfit(x,y1,1)