如何用Matlab求参数方程的导数?

已知参数方程x=a*cos(t)^3,y=b*sin(t)^3,用Matlab求dy/dx。如果直接使用:——————————————————————symsabt;x=... 已知参数方程x = a * cos(t) ^ 3,y = b * sin(t) ^ 3,用Matlab求dy / dx。如果直接使用:——————————————————————syms a b t;x = a * cos(t) ^ 3;y = b * sin(t) ^ 3;diff(y, 'x')——————————————————————进行计算的话,会得到:——————————————————————ans = 0—————————————————————— 展开
 我来答
真greatdju
2018-03-29 · TA获得超过3856个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:745万
展开全部
  1. clear;clc;

  2. syms a b t;

  3. x = a * cos(t) ^ 3;

  4. y = b * sin(t) ^ 3;

  5. dydx=diff(y,t)/diff(x,t)

  6. %%以下为图形验证

  7. a=2;b=3;

  8. x=str2func(['@(t)',vectorize(subs(x))]);

  9. y=str2func(['@(t)',vectorize(subs(y))]);

  10. k=str2func(['@(t)',vectorize(subs(dydx))]);

  11. t=linspace(-pi,pi);

  12. X=[-a,a];

  13. n=0;

  14. f=figure;

  15. while isvalid(f)

  16. n=mod(n,99)+1;

  17. T=t(n);

  18. hold off

  19. plot(x(t),y(t));

  20. hold on

  21. Y=k(T)*(X-x(T))+y(T);

  22. plot(X,Y);

  23. plot(x(T),y(T),'ko','markerfacecolor','w');

  24. xlim([-a,a])

  25. ylim([-b,b])

  26. pause(0.02)

  27. end

追问

大佬,Matlab是你开发的吧?这么6的吗?
不过我的是Matlab R2017b,用实时脚本(*.mlx)执行到第15行之后就卡在while那了,那个动图一直画不出来……

追答
你好,根据我的试验,实时脚本中的图形本质上是一个在程序执行完毕后的截图,而真正的图像被默认设置为不可见,这样在循环执行完毕前,无法出现这个图形。
解决方案是,将f=figure;修改为f=figure('visible','on');
周永红_ZYH
2018-03-28 · TA获得超过2912个赞
知道大有可为答主
回答量:1455
采纳率:90%
帮助的人:684万
展开全部
syms a b t;
x = a * cos(t)^3;
y = b * sin(t)^3;

dx1dt = diff(x,t);

% 一阶导数
dy1dx = diff(y,t)/dx1dt

% 二阶导数
dy2d2x = diff(dy1dx,t)/dx1dt

% 3阶导数
dy3d3x = diff(dy2d2x,t)/dx1dt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式