m0_54185461 2021-11-30 15:15 采纳率: 100%
浏览 14
已结题

程序出现的问题,不知道如何补救。

syms a b t;
r=[a(cos(t)),a(sin(t)),b*t];
r1=diff(r,t);%求r的一阶导
r2=diff(r1,t);%求r的二阶导
k1=mo(cross(r1,r2))/((mo(r1)).^3;%求曲率
k=simplify(k1);%增加化简语句使结果正确
r3=diff(r2,t);
C=[r1,r2,r3];
N1=det(C)/(mo(cross(r1,r2))).^2;%求挠率
N=simplify(N1);%增加化简语句使结果正确


img

  • 写回答

2条回答 默认 最新

  • 技术专家团-Joel 2021-11-30 15:29
    关注

    你好同学,根据你的要求,求曲率以及挠率,发现你的程序有如下几个地方需要修改:
    (1)乘号一定要有,matlab不会允许ab直接写成ab,而是需要写成a*b
    (2)模可以用norm函数,这是matlab自带的
    (3)C=[r1,r2,r3],改成C=[r1;r2;r3],这样就方便构成矩阵
    以下是修改之后的代码

    syms a b t;
    r=[a*(cos(t)),a*(sin(t)),b*t];
    r1=diff(r,t);%求r的一阶导
    r2=diff(r1,t);%求r的二阶导
    k1=norm(cross(r1,r2))/norm(r1)^3;%求曲率
    k=simplify(k1)%增加化简语句使结果正确
    r3=diff(r2,t);
    C=[r1;r2;r3];
    N1=det(C)/norm(cross(r1,r2)).^2;%求挠率
    N=simplify(N1)%增加化简语句使结果正确
    

    结果为:

    k =
     
    (abs(a*b*cos(t))^2 + abs(a*b*sin(t))^2 + abs(a)^4)^(1/2)/(abs(a*sin(t))^2 + abs(b)^2 + abs(a*cos(t))^2)^(3/2)
     
     
    N =
     
    (a^2*b)/(abs(a*b*cos(t))^2 + abs(a*b*sin(t))^2 + abs(a)^4)
    
    

    如果你用mlx文件粘贴代码运行,那么matlab会显示公式如下:

    img

    如有帮助,还请给个采纳支持一下哟

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集