1-1 基于matlab的平面曲线曲率的数值计算

1-1 基于matlab的平面曲线曲率的数值计算

  1. 工具

    向量函数:设曲线 r ( s ) = ( x ( s ) , y ( s ) ) r(s)=(x(s),y(s)) r(s)=(x(s),y(s))是一条正则曲线,其中 s s s是弧长参数。 r ( s ) r(s) r(s)是以向量形式表示的,所以称为向量函数。
  2. 曲率公式

    • 给定函数为向量函数 r ( s ) = ( x ( s ) , y ( s ) ) r(s)=(x(s),y(s)) r(s)=(x(s),y(s))形式:
      曲率的计算公式为: k = ∣ r ′ ′ ( s ) ∣ (1) k=|r''(s)| \tag {1} k=r(s)(1) 注意 : 当 给定函数 r ( t ) = ( x ( t ) , y ( t ) ) r(t)=(x(t),y(t)) r(t)=(x(t),y(t))参数不是弧长参数时我们需要计算函数的弧长参数,才能进行下一步计算。其中弧长参数计算方法为计算弧微分 s = ∫ 0 t ∣ r ′ ′ ( u ) ∣ d u s=\displaystyle \int^{t}_{0}{|r''(u)|du} s=0tr(u)du.
    • 给定函数为 y = f ( x ) y=f(x) y=f(x)形式:
      曲率 k = ∣ f ′ ′ ( x ) ∣ ( 1 + f ′ 2 ) ( 3 2 ) (2) k=\frac{|f''(x)|}{\sqrt{(1+f'^2)}^{(\frac{3}{2})}}\tag {2} k=(1+f2) (23)f(x)(2)
  3. matlab程序实现

    1.计算圆 r ( t ) = ( 2 c o s t , 2 s i n t ) , t ∈ ( 0 , 2 π ) r(t)=(2cost,2sint),t\in (0,2\pi) r(t)=(2cost,2sint)t(0,2π)的曲率
    解: 由公式 ( 1 ) (1) (1)计算曲率时发现参数不是弧长参数,所以我们要计算弧微分
    s = ∫ 0 t ∣ r ′ ′ ( u ) ∣ d u s=\displaystyle \int^{t}_{0}{|r''(u)|du} s=0tr(u)du

    于是
    s = ∫ 0 t 2 d u = 2 t s=\displaystyle \int^{t}_{0}{2du}=2t s=0t2du=2t

    从而转换成计算 r ( t ) = ( 2 c o s s 2 , 2 s i n s 2 ) , s ∈ ( 0 , 4 π ) 的 曲 率 r(t)=(2cos\frac{s}{2},2sin\frac{s}{2}),s\in (0,4\pi)的曲率 r(t)=(2cos2s,2sin2s)s(0,4π)
    MATLAB程序:
clc,clear
h=0.01;                        %步长
s=0:h:4*pi;
x=2*cos(s./2);y=2*sin(s./2);   %定义x,y
r=[x,y];                       %定义向量函数
r1=diff(r)./h;                 %一阶导
r2=diff(r1)./h;                %二阶导
k=r2;
for i=1:length(r2)
    k(i)=norm(r2(i));
end
  1. 计算 y = s i n x , x ∈ ( 0 , π ) y=sinx,x\in(0,\pi) y=sinx,x(0,π)的曲率
    由公式 ( 2 ) (2) (2) k = ∣ s i n x ∣ ( 1 + c o s x 2 ) ( 3 2 ) k=\frac{|sinx|}{\sqrt{(1+cosx^2)}^{(\frac{3}{2})}} k=(1+cosx2) (23)sinx
    MATLAB程序:
clc,clear
h=0.01;                        %步长
x=0:h:pi;
y=sin(x);                      %定义x,y
y1=diff(y)./h;                 %一阶导
y2=diff(y1)./h;                %二阶导
y2(length(y1))=y2(end);        %二阶导右端点用向后差商代替,否则会有维度不一致情况
k=abs(y2)./(sqrt(1+y1.^2).^(3/2));
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值