查找猴子鞍的曲线

时间:2018-10-31 20:18:05

标签: matlab matlab-figure

  veclength = @(vec) sqrt(dot(vec, vec));
normalvector = @(surf, u, v) simplify(cross(diff(surf, u), diff(surf, v)));
tangentplane = @(surf, u, v, x, y, z) dot([x, y, z] - ...
    surf, normalvector(surf, u, v)== 0);
unitnorm = @(surf, u, v) normalvector(surf, u, v)/... 
    veclength(normalvector(surf, u, v));

E = @(surf, u, v) dot(diff(surf, u), diff(surf, u));
F = @(surf, u, v) dot(diff(surf, u), diff(surf, v));
G = @(surf, u, v) dot(diff(surf, v), diff(surf, v));
e = @(surf, u, v) dot(unitnorm(surf, u, v), diff(surf, u, 2));
f = @(surf, u, v) dot(unitnorm(surf, u, v), diff(surf, u, v));
g = @(surf, u, v) dot(unitnorm(surf, u, v), diff(surf, v, 2));

shapeoperator = @(surf, u, v) ((E(surf,u,v)*G(surf,u,v)-F(surf,u,v)^2)^(-1)) ...
   *[[e(surf,u,v)*G(surf,u,v)-f(surf,u,v)*F(surf,u,v), f(surf,u,v)*E(surf,u,v) - e(surf,u,v)*F(surf,u,v)]; ...
   [f(surf,u,v)*G(surf,u,v) - g(surf,u,v)*F(surf,u,v), g(surf,u,v)*E(surf,u,v) - f(surf,u,v)*F(surf,u,v)]];

principalcurves = @(surf, u, v) eig(shapeoperator(surf, u, v));
gausscurv = @(surf, u, v) det(shapeoperator(surf, u, v));
meancurv = @(surf, u, v) (1/2)*trace(shapeoperator(surf, u, v));     
syms u v real; monkey = [u^3 - 3*u*v^2, [-2 2 -2 2]];
    principalcurves(monkey, u, v)
    simplify(ans, 'Steps', 30)

    gausscurv(monkey, u, v)
    simplify(ans, 'Steps', 30)

    meancurv(monkey, u, v)
    simplify(ans, 'Steps', 30)

我在显示“ principalcurves(monkey,u,v)”的行上收到此错误:

    Error using symengine
Division by zero.

Error in sym/privBinaryOp (line 991)
            Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});

Error in  ^  (line 322)
        B = privBinaryOp(A, p, 'symobj::mpower');

Error in Untitled>@(surf,u,v)((E(surf,u,v)*G(surf,u,v)-F(surf,u,v)^2)^(-1))*[[e(surf,u,v)*G(surf,u,v)-f(surf,u,v)*F(surf,u,v),f(surf,u,v)*E(surf,u,v)-e(surf,u,v)*F(surf,u,v)];[f(surf,u,v)*G(surf,u,v)-g(surf,u,v)*F(surf,u,v),g(surf,u,v)*E(surf,u,v)-f(surf,u,v)*F(surf,u,v)]]

Error in Untitled>@(surf,u,v)eig(shapeoperator(surf,u,v))

查找其他曲线的主曲线没有问题。但是,这种猴子鞍形形状由于某种原因导致出现错误消息。

0 个答案:

没有答案