首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 有人看得懂吗?一个移动最小二乘法的程序,不知道是什么语言。。。
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lwp1225
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 16:21:15 楼主
    function [PHI, DPHI, DDPHI] = MLS1DShape(m, nnodes, xi, npoints, x, dm, wtype, para)
    % SHAPE FUNCTION OF 1D MLS APPROXIMATION
    %
    % SYNTAX: [PHI, DPHI, DDPHI] = MLS1DShape(m, nnodes, xi, npoints, x, dm, wtype, para)
    %
    % INPUT PARAMETERS
    %    m - Total number of basis functions (1: Constant basis;  2: Linear basis;  3: Quadratic basis)
    %    nnodes  - Total number of nodes used to construct MLS approximation
    %    npoints - Total number of points whose MLS shape function to be evaluated
    %    xi(nnodes) - Coordinates of nodes used to construct MLS approximation
    %    x(npoints) - Coordinates of points whose MLS shape function to be evaluated
    %    dm(nnodes) - Radius of support of nodes
    %    wtype - Type of weight function
    %    para  - Weight function parameter
    %
    % OUTPUT PARAMETERS
    %    PHI  - MLS Shpae function
    %    DPHI  - First order derivatives of MLS Shpae function
    %    DDPHI - Second order derivatives of MLS Shpae function
    %
    % INITIALIZE WEIGHT FUNCTION MATRICES
    wi  = zeros (1, nnodes);  % Weight funciton
    dwi  = zeros (1, nnodes);
    ddwi = zeros (1, nnodes);

    % INITIALIZE SHAPE FUNCTION MATRICES
    PHI  = zeros(npoints, nnodes);
    DPHI  = zeros(npoints, nnodes);
    DDPHI = zeros(npoints, nnodes);

    % LOOP OVER ALL EVALUATION POINTS TO CALCULATE VALUE OF SHAPE FUNCTION Fi(X)
    for j = 1 : npoints

    % DETERMINE WEIGHT FUNCTIONS AND THEIR DERIVATIVES AT EVERY NODE
    for i = 1 : nnodes
    di = x(j) - xi(i);
          [wi(i), dwi(i), ddwi(i)] = Weight(wtype, para, di, dm(i));
    end
     
      % EVALUATE BASIS p, B MATRIX AND THEIR DERIVATIVES
      if (m == 1)  % Shepard function
          p = [ones(1, nnodes)];
          px  = [1];
          dpx  = [0];
          ddpx = [0];
         
          B    = p .* [wi];
          DB  = p .* [dwi];
          DDB  = p .* [ddwi];
      elseif (m == 2)
          p = [ones(1, nnodes); xi];
          px  = [1; x(j)];
          dpx  = [0; 1];
          ddpx = [0; 0];
         
          B    = p .* [wi; wi];
          DB  = p .* [dwi; dwi];
          DDB  = p .* [ddwi; ddwi];
      elseif (m == 3)
          p = [ones(1, nnodes); xi; xi.*xi];
          px  = [1; x(j); x(j)*x(j)];
          dpx  = [0; 1; 2*x(j)];
          ddpx = [0; 0; 2];
         
          B    = p .* [wi; wi; wi];
          DB  = p .* [dwi; dwi; dwi];
          DDB  = p .* [ddwi; ddwi; ddwi];
      else
          error('Invalid order of basis.');
      end
     
      % EVALUATE MATRICES A AND ITS DERIVATIVES
    A  = zeros (m, m);
    DA  = zeros (m, m);
    DDA = zeros (m, m);
    for i = 1 : nnodes
          pp = p(:,i) * p(:,i)';
         
          A  = A  + wi(i) * pp;
          DA  = DA  + dwi(i) * pp;
          DDA = DDA + ddwi(i) * pp;
      end
     
      AInv = inv(A);
         
      rx  = AInv * px;
      PHI(j,:) = rx' * B;  % shape function
       
      drx  = AInv * (dpx -DA * rx);
      DPHI(j,:) = drx' * B + rx' * DB;  % first order derivatives of shape function
     
      ddrx  = AInv * (ddpx - 2 * DA * drx - DDA * rx);
      DDPHI(j,:) = ddrx' * B + 2 * drx' * DB + rx' * DDB;    % second order derivatives of shape function
    end
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linglongyouzhi
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 17:00:071楼 得分:0
    显然matlab
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • elysium1984
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 15:17:352楼 得分:0
    应该是matlab,注释用 %  ,和这样写for循环
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ollydbg23
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:11:473楼 得分:0
    matlab!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • witzgf2
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-23 15:00:424楼 得分:0
    Matlab
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • happyopencv
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-10-24 17:02:595楼 得分:0
    Matlab
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved