MATLAB 如何求取离散点的曲率最大值


Posted in Python onApril 16, 2021

我就废话不多说了,大家还是直接看代码吧~

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 如何求取离散点的曲率最大值

补充:MATLAB 插值+计算离散点曲率

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

公式:

MATLAB 如何求取离散点的曲率最大值

点密的情况 输入曲线坐标(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

MATLAB 如何求取离散点的曲率最大值

补充用法

求最大曲率并在图中标出

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

与理论值(余弦函数曲线)对比

 

 

 

曲线对比

 

MATLAB 如何求取离散点的曲率最大值

曲率对比

几种插值方法对比

列举四种方法,分别为:分段线性插值、三次样条曲线(B-Spline)插值、三次 Hermite 插值(PCHIP)、修正 Akima 分段三次 Hermite 插值(Akima)

Case 1: 三维螺线

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

三维螺线散点

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

插值

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

俯视

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

侧视

Case 2:二维梯形波

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

二维梯形波

Case 3:三维不规则折线

 

 

MATLAB 如何求取离散点的曲率最大值

 

 

三维不规则折线(不等间距)

对比可得:

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

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

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

故在插值的时候需要选择适合的计算方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
跟老齐学Python之从格式化表达式到方法
Sep 28 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
使用tensorflow实现线性回归
Sep 08 Python
python实现的生成word文档功能示例
Aug 23 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
Django封装交互接口代码
Jul 12 Python
举例讲解Python装饰器
Dec 24 Python
Python基础之进程详解
May 21 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 Python
用Python远程登陆服务器的步骤
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 #Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 #Python
python中print格式化输出的问题
Apr 16 #Python
CocosCreator ScrollView优化系列之分帧加载
深度学习tensorflow基础mnist
Python 多线程之threading 模块的使用
Apr 14 #Python
You might like
php实现网站插件机制的方法
2009/11/10 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php 获取全局变量的代码
2011/04/21 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
Python3中的真除和Floor除法用法分析
2016/03/16 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
python实现Floyd算法
2018/01/03 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
python 实现UTC时间加减的方法
2018/12/31 Python
python对于requests的封装方法详解
2019/01/03 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
大学生活学习的自我评价
2013/12/03 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
2014年司法局工作总结
2014/12/11 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
兴趣班停课通知
2015/04/24 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript