如何用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——————————————————————
展开
2个回答
展开全部
clear;clc;
syms a b t;
x = a * cos(t) ^ 3;
y = b * sin(t) ^ 3;
dydx=diff(y,t)/diff(x,t)
%%以下为图形验证
a=2;b=3;
x=str2func(['@(t)',vectorize(subs(x))]);
y=str2func(['@(t)',vectorize(subs(y))]);
k=str2func(['@(t)',vectorize(subs(dydx))]);
t=linspace(-pi,pi);
X=[-a,a];
n=0;
f=figure;
while isvalid(f)
n=mod(n,99)+1;
T=t(n);
hold off
plot(x(t),y(t));
hold on
Y=k(T)*(X-x(T))+y(T);
plot(X,Y);
plot(x(T),y(T),'ko','markerfacecolor','w');
xlim([-a,a])
ylim([-b,b])
pause(0.02)
end
追答
你好,根据我的试验,实时脚本中的图形本质上是一个在程序执行完毕后的截图,而真正的图像被默认设置为不可见,这样在循环执行完毕前,无法出现这个图形。
解决方案是,将f=figure;修改为f=figure('visible','on');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询