`

零阶一类贝塞尔函数曲线及其包络线 matlab源程序

 
阅读更多

废话不多说,请看源程序:

clear ,clc;
format long
x=(0:0.01:100)';
y_0=besselj(0,x);
% y_1=besselj(1,x); %一阶,这里只画了0阶
% y_2=besselj(2,x); %二阶


plot(x,y_0);grid on;
axis([0,100,-1,1]);
title('0阶贝塞尔函数曲线图');
xlabel('Variable X');
ylabel('Variable Y');

%画包络线
hold on;
[up,down] = envelope(x,y_0,'spline');
plot(x, up, 'r');
plot(x, down, 'r');




其中的envelope是个单独的.m文件,是个函数,用来画包络线。说白了就是求拐点然后插值:

function [up,down] = envelope(x,y,interpMethod)

%ENVELOPE gets the data of upper and down envelope of the known input (x,y).
%
% Input parameters:
% x the abscissa of the given data
% y the ordinate of the given data
% interpMethod the interpolation method
%
% Output parameters:
% up the upper envelope, which has the same length as x.
% down the down envelope, which has the same length as x.
%
% See also DIFF INTERP1

% Designed by: Lei Wang, <WangLeiBox@hotmail.com>, 11-Mar-2003.
% Last Revision: 21-Mar-2003.
% Dept. Mechanical & Aerospace Engineering, NC State University.
% $Revision: 1.1 $ $Date: 3/21/2003 10:33 AM $

if length(x) ~= length(y)
error('Two input data should have the same length.');
end

if (nargin < 2)|(nargin > 3),
error('Please see help for INPUT DATA.');
elseif (nargin == 2)
interpMethod = 'linear';
end



% Find the extreme maxim values 
% and the corresponding indexes
%----------------------------------------------------
extrMaxValue = y(find(diff(sign(diff(y)))==-2)+1);
extrMaxIndex = find(diff(sign(diff(y)))==-2)+1;



% Find the extreme minim values 
% and the corresponding indexes
%----------------------------------------------------
extrMinValue = y(find(diff(sign(diff(y)))==+2)+1);
extrMinIndex = find(diff(sign(diff(y)))==+2)+1;



up = extrMaxValue;
up_x = x(extrMaxIndex);

down = extrMinValue;
down_x = x(extrMinIndex);



% Interpolation of the upper/down envelope data
%----------------------------------------------------
up = interp1(up_x,up,x,interpMethod); 
down = interp1(down_x,down,x,interpMethod); 


效果:

源程序下载:http://www.pudn.com/downloads495/sourcecode/windows/other/detail2062657.html

csdn上传资源标签里竟然没有Matlab,桑不起啊。。。。

分享到:
评论

相关推荐

    零阶一类贝塞尔函数曲线及其包络线

    通过理解零阶一类贝塞尔函数曲线及其包络线,开发者可以更有效地创建和操作复杂的图形元素。 在提供的链接(http://blog.csdn.net/yanzi1225627/article/details/8228244)中,作者可能详细介绍了如何使用零阶一类...

    贝塞尔函数一阶图像_1阶贝塞尔函数_贝塞尔函数_matlab_

    贝塞尔函数是数学和计算机图形学中的一个重要概念,特别是在曲线和曲面的构造中起着核心作用。在MATLAB环境中,我们可以轻松地实现贝塞尔函数的可视化,这正是标题和描述所提及的内容。 贝塞尔函数,由法国工程师...

    1-8阶贝塞尔曲线拟合matlab源码(含拟合的评价标准)

    本资源提供的是一个MATLAB源码包,用于实现1到8阶的贝塞尔曲线拟合,同时包含了拟合效果的评价标准,如均方根误差(RMSE)和平方和误差(SSE)。下面将详细介绍这些概念以及如何利用MATLAB进行贝塞尔曲线的拟合。 ...

    求取高阶贝塞尔函数零点Matlab函数

    贝塞尔函数零点求取的函数。可以算到1001阶,网络上那些互相复制来复制去的内容只能算到135阶没法满足我的需要后自己编写的。有高阶计算需求的自取。

    贝塞尔曲线拟合matlab源码,matlab求拟合曲线,matlab

    本资源包含MATLAB源码,用于实现从一阶到八阶的贝塞尔曲线拟合,以及一个拟合后评价标准的文档。 一、贝塞尔曲线基础 贝塞尔曲线由法国工程师Pierre Bézier于1962年提出,它基于控制点来定义。一阶贝塞尔曲线是...

    贝塞尔函数

    第一类柱贝塞尔函数Jp(z) p为整数n时,Jn=(1) nJn; p不为整数时,Jp与Jp线性无关。 第二类柱贝塞尔函数N p(z)(柱诺依曼函数) n为整数时Nn=(1) nNn。 第三类柱贝塞尔函数Hp(z) (柱汉开尔函数): 第一...

    贝塞尔函数根分布及其导数.zip_bezier_导数_贝塞尔_贝塞尔函数 根_贝塞尔函数根

    求第一类贝塞尔函数的根分布及其它的导数图形

    matlab开发-包含贝塞尔函数的四元计算积分

    贝塞尔函数在MATLAB中通过`besselj`、`bessely`、`besseli`和`besselk`等函数表示,分别对应于第一类和第二类整数阶的贝塞尔函数以及第一类和第二类虚数阶的贝塞尔函数。例如,如果我们有一个四元函数`f[x,y,z,w]`,...

    matlab开发-贝塞尔函数

    例如,`besselj`用于计算第一类整数阶贝塞尔函数J_n(x),`besselk`用于计算第二类整数阶贝塞尔函数K_n(x),`bessely`对应于第二类整数阶函数Y_n(x),而`besseli`则是用于计算第一类虚数阶贝塞尔函数I_n(z)。这些函数...

    贝塞尔曲线函数 曲线平滑算法

    贝塞尔曲线(Bézier curve)是计算机图形学中常用的一种参数曲线,它以其发明者皮埃尔·贝塞尔(Pierre Bézier)的名字命名。这种曲线在2D和3D建模、动画、游戏开发、CAD软件以及各种设计领域都有广泛的应用。...

    bessel.zip_Bessel函数m阶_Bessel阵_bessel0阶_bessel函数零点_贝塞尔函数曲线图

    1. 描述中提到要画出第一类0-5阶贝塞尔函数的曲线图。这可以帮助直观地理解不同阶次的贝塞尔函数的行为,如振荡频率、振幅和渐近行为等。 2. 高阶贝塞尔函数Jν(x)的振荡更频繁,而低阶函数的振荡较少,随着x的增大...

    第一类贝塞尔函数

    第一类贝塞尔函数,使计算第一类贝塞尔函数更快更方便。

    bezier.m贝塞尔曲线数据拟合 matlab 程序

    主要是对数据点进行拟合

    贝塞尔函数-汉克尔积分变换

    其中 \(f(r)\) 和 \(g(k)\) 分别是原函数和变换后的函数,\(J_\nu\) 是 \(\nu\) 阶的第一类贝塞尔函数。 汉克尔变换在解决轴对称问题时非常有效,尤其是在电磁学和声学等领域。例如,在分析圆形导体中的电流分布或...

    贝塞尔曲线原理及其算法实现

    贝塞尔曲线原理及其算法实现是计算机图形学中的一个重要概念,主要应用于二维和三维图形的设计与渲染。这种曲线形式被广泛采用,因为它具有直观性、灵活性、统一性和不变性等特点,使得设计者能够更加便捷地创建和...

    实现1-8阶贝塞尔(bezier)曲线拟合 附一个拟合后的评价标准

    这份 Matlab 源代码可以实现 1 到 8 阶的贝塞尔曲线拟合,从而帮助你更好地分析和处理数据。贝塞尔曲线拟合是一种常用的数学方法,它可以通过调整曲线的控制点来拟合数据,从而得到更加平滑的曲线。此外,我们还附上...

    贝塞尔曲线以及B样条曲线的Matlab函数

    在Matlab中,`bezier.m`函数可能用于根据一组控制点计算和绘制贝塞尔曲线。其核心算法是卡塞尔(Casteljau)算法,这是一个递归过程,通过不断将多边形细分来逼近贝塞尔曲线。`CASTELJAU.m`可能就是实现这一算法的...

    BezierCurve 贝塞尔曲线计算 c++源码

    源代码中可能包含了类或函数,用于计算不同维度(二维和三维)的贝塞尔曲线。在二维空间中,贝塞尔曲线通常由两个控制点和一个起点确定;在三维空间中,则需要三个控制点和一个起点。 计算贝塞尔曲线的公式是基于 ...

    Qt 中实现任意阶贝塞尔曲线绘制 & 动态调节

    Qt 中有相当方便的绘制接口 ( 由 QPainter 提供 ) 。 例如贝塞尔曲线的 API: QPainterPath 的 quadTo() 和 ...因此,我想到利用贝塞尔的公式生成曲线点,然后用直线来连接,即可实现「 N阶贝塞尔曲线绘制 」。

    贝塞尔曲线计算器

    贝塞尔曲线是一种在计算机图形学中广泛使用的数学工具,它能生成平滑、连续的曲线,常用于2D和3D图形设计、动画制作以及游戏开发。这个名为“贝塞尔曲线计算器”的程序提供了直观的方式来计算和可视化这些曲线。 ...

Global site tag (gtag.js) - Google Analytics