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);%增加化简语句使结果正确
程序出现的问题,不知道如何补救。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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会显示公式如下:
如有帮助,还请给个采纳支持一下哟
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 有偿四位数,节约算法和扫描算法
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制
- ¥20 Vs code Mac系统 PHP Debug调试环境配置
- ¥60 大一项目课,微信小程序
- ¥15 求视频摘要youtube和ovp数据集