• Matlab 样条工具箱(Spline ToolBox)[z]


    本文介绍了用matlab进行样条曲线的建立操作与绘制;示例给出了样条曲线的建立,求值,求导,绘制

    Matlab样条工具箱中的函数提供了样条的建立,操作,绘制等功能;
    一. 样条函数的建立
    第一步是建立一个样条函数,曲线或者曲面。这里的样条函数,根据前缀,分为4类:
    cs*   三次样条
    pp*   分段多项式样条,系数为t^n的系数
    sp*   B样条, 系数为基函数B_n^i(t)的系数
    rp*   有理B样条

    二. 样条操作
    样条操作包括:函数操作:求值,算术运算,求导求积分等等
                  节点操作:主要是节点重数的调节,设定,修改等等

    三. 简单示例
    % step1: load ctrlpoints and knots
    load data_example
    % step 2: create the spline
    sp = spmak(knots,ctrlpoints');
    fnplt(sp,[knots(5),knots(42)]);
    %  step 3: get points on the curve
    dt = knots(5):3:knots(42);
    p = fnval(sp,dt);
    plot(p(1,:),p(2,:),'.g')
    % step 4: get dir draw normals
    dp1 = fnder(sp);
    dp  = fnval(dp1,dt);
    len = size(dt,2);
    for i = 1:len
        dir = dp(:,i);
        scale = 1/sqrt(dir(1)^2+dir(2)^2);
        dir = dir*scale;
        plot([p(1,i),p(1,i)+dir(2)],[p(2,i),p(2,i)-dir(1)],'r');
    end

    本文附带代码为:

    如果无法下载,请联系ciweiyu@gmail.com
    示例结果

    附:样条工具箱函数
    1. 三次样条函数  
    csapi    插值生成三次样条函数   
    csape    生成给定约束条件下的三次样条函数   
    csaps    平滑生成三次样条函数   
    cscvn    生成一条内插参数的三次样条曲线   
    getcurve 动态生成三次样条曲线 

    2. 分段多项式样条函数    
    ppmak 生成分段多项式样条函数   
    ppual 计算在给定点处的分段多项式样条函数值 

    3. B样条函数  
    spmak 生成B样条函数   
    spcrv 生成均匀划分的B样条函数   
    spapi 插值生成B样条函数   
    spap2 用最小二乘法拟合生成B样条函数   
    spaps 对生成的B样条曲线进行光滑处理   
    spcol 生成B样条函数的配置矩阵 

    4. 有理样条函数  
    rpmak 生成有理样条函数   
    rsmak 生成有理样条函数 

    5. 样条操作函数  
    fnval 计算在给定点处的样条函数值   
    fmbrk 返回样条函数的某一部分(如断点或系数等)   
    fncmb 对样条函数进行算术运算   
    fn2fm 把一种形式的样条函数转化成另一种形式的样条函数   
    fnder 求样条函数的微分(即求导数)   
    fndir 求样条函数的方向导数   
    fnint 求样条函数的积分   
    fnjmp 在间断点处求函数值   
    fnplt 画样条曲线图   
    fnrfn 在样条曲线中插入断点。   
    fntlr 生成tarylor系数或taylor多项式 

    6. 样条曲线端点和节点处理函数 
    augknt  在已知节点数组中添加一个或多个节点   
    aveknt  求出节点数组元素的平均值   
    brk2knt 增加节点数组中节点的重次   
    knt2brk 从节点数组中求得节点及其重次   
    knt2mlt 从节点数组中求得节点及其重次   
    sorted  求出节点数组的元素在另一节点数组中属于第几个分量   
    aptknt  求出用于生成样条曲线的节点数组  
    newknt  对分段多项式样条函数进行重分布   
    optknt  求出用于内插的最优节点数组   
    chbpnt  求出用于生成样条曲线的合适节点数组 

    原帖:http://www.blogpetro.com/post/matlab-yangtiao-gongjuxiang.html

  • 相关阅读:
    爬虫心得
    WSL windows子系统ubuntu18.04建设自己的乌云
    WSL windwos 子系统 ubuntu18.04安装mysql
    python 163 email 554
    Centos 安装Oracle
    JS带进度 文件 重复 自动 异步上传
    xadmin 小组件默认折叠
    grep
    sed
    awk
  • 原文地址:https://www.cnblogs.com/begtostudy/p/1791084.html
Copyright © 2020-2023  润新知