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 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
- ¥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 怎么配置广告联盟瀑布流