婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MATLAB 如何求取離散點的曲率最大值

MATLAB 如何求取離散點的曲率最大值

熱門標簽:電話外呼系統招商代理 打印谷歌地圖標注 淮安呼叫中心外呼系統如何 電話機器人貸款詐騙 京華圖書館地圖標注 佛山通用400電話申請 廣東旅游地圖標注 看懂地圖標注方法 蘇州人工外呼系統軟件

我就廢話不多說了,大家還是直接看代碼吧~

x0 = linspace(0.1,2,100);%x0,y0驗證函數離散點,可以非等間隔
y0 = 1./x0;
h1 = abs(diff(x0)) ;
h = [h1 h1(end)];
ht = h;
yapp1 = gradient(y0)./ht; %matlab數值近似
yapp2 = del2(y0)./ht; %matlab數值近似
k2 = abs(yapp2)./(1+yapp1.^2).^(3/2);
figure
plot(k2)
title('曲率曲線')
[~,maxFlag] = max(k2);%曲率最大位置
x_max = x0(maxFlag);
y_max = y0(maxFlag);
%畫出圖像 標注曲率最大點
figure
plot(x0,y0,'.-');
hold on;
plot(x_max,y_max,'rp')
title('標注最大曲率點')
xlabel('log10((norm(B*Xk-L)))')
ylabel('log10((norm(Xk)))')

補充:MATLAB 插值+計算離散點曲率

思路:點足夠密的話直接用 diff、gradient 求曲率,稀疏的話先插值再算曲率。

公式:

點密的情況 輸入曲線坐標(1-2)求一、二階導數(4-9)通過公式求得曲率(10)

x = 0:0.01:7;
y = cos(x*0.5*pi); 
h1 = abs(diff(x));
h = [h1 h1(end)];
ht = h; 
y1 = gradient(y)./ht;
y2 = gradient(y1)./ht;
curv = abs(y2)./sqrt((1+y1.^2).^3); 
plot(x,y,'-',x,curv,'--r);
legend('Raw Data, 'Curvature','Location',"best");
grid on

圖像與下文理論值圖像相同

點稀疏的情況

1、輸入散點坐標(1-2)

2、用樣條曲線(B-Spline)等方法插值得到擬合曲線(3-4)

3、diff、gradient 函數求擬合曲線的一、二階導數(6-11)

4、通過公式求得曲率(12)

例:余弦函數取 8 個點,用 B-Spline 插值

x = 0:1:7;
y = cos(x*0.5*pi);
xx = 0:0.01:7;
yy = spline(x,y,xx); 
h1 = abs(diff(xx));
h = [h1 h1(end)];
ht = h; 
yy1 = gradient(yy)./ht;
yy2 = gradient(yy1)./ht;
curv = abs(yy2)./sqrt((1+yy1.^2).^3); 
plot(xx,yy,'-',xx,curv,'--r',x,y,'o-');
legend('B-Spline', 'Curvature','Raw Data','Location',"best");
grid on

補充用法

求最大曲率并在圖中標出

[max_val,max_ind]=max(curv);
hold on
plot(xx(max_ind),yy(max_ind),'*r');

與理論值(余弦函數曲線)對比

曲線對比

曲率對比

幾種插值方法對比

列舉四種方法,分別為:分段線性插值、三次樣條曲線(B-Spline)插值、三次 Hermite 插值(PCHIP)、修正 Akima 分段三次 Hermite 插值(Akima)

Case 1: 三維螺線

三維螺線散點

插值

俯視

側視

Case 2:二維梯形波

二維梯形波

Case 3:三維不規則折線

三維不規則折線(不等間距)

對比可得:

Case 1:B-Spline>Akima>PCHIP>Linear

Case 2:Linear>PCHIP>Akima>B-Spline

Case 3:Linear≈PCHIP≈Akima>B-Spline

故在插值的時候需要選擇適合的計算方法

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Matlab求解數組中的最大值及它所在的具體位置
  • 解決python調用matlab時的一些常見問題
  • 如何用Matlab和Python讀取Netcdf文件
  • python matlab庫簡單用法講解
  • windows下python 3.9 Numpy scipy和matlabplot的安裝教程詳解
  • 如何基于matlab相機標定導出xml文件

標簽:駐馬店 衡水 股票 畢節 湖州 江蘇 呼和浩特 中山

巨人網絡通訊聲明:本文標題《MATLAB 如何求取離散點的曲率最大值》,本文關鍵詞  MATLAB,如何,求取,離散,點,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MATLAB 如何求取離散點的曲率最大值》相關的同類信息!
  • 本頁收集關于MATLAB 如何求取離散點的曲率最大值的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 古丈县| 盈江县| 丰宁| 阳西县| 如东县| 阳泉市| 洪泽县| 伽师县| 湘阴县| 巴东县| 威信县| 涪陵区| 大丰市| 台江县| 洛宁县| 普格县| 观塘区| 股票| 饶平县| 巫山县| 肥乡县| 正宁县| 长顺县| 邹城市| 白沙| 丁青县| 南涧| 綦江县| 玉门市| 平邑县| 庆安县| 巴马| 万年县| 三明市| 横峰县| 桦南县| 贞丰县| 柯坪县| 濮阳市| 海宁市| 阳西县|