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 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流