matlab求导问题这个编程问题困扰小女子很久了,也解决不了,源程序如下a=4,b=8,w=2,e=6,c=12,h=18;xB=a*cos(w*t);yB=e+a*sin(w*t);k=yB/xB;if k>=0q=atan(k);else q=pi-atan(-k);endyE=b*sin(q);xE=yE/k;d=xE-(c^2-(yE-h).^2).^0.5;求函数
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 13:44:55
![matlab求导问题这个编程问题困扰小女子很久了,也解决不了,源程序如下a=4,b=8,w=2,e=6,c=12,h=18;xB=a*cos(w*t);yB=e+a*sin(w*t);k=yB/xB;if k>=0q=atan(k);else q=pi-atan(-k);endyE=b*sin(q);xE=yE/k;d=xE-(c^2-(yE-h).^2).^0.5;求函数](/uploads/image/z/1108489-49-9.jpg?t=matlab%E6%B1%82%E5%AF%BC%E9%97%AE%E9%A2%98%E8%BF%99%E4%B8%AA%E7%BC%96%E7%A8%8B%E9%97%AE%E9%A2%98%E5%9B%B0%E6%89%B0%E5%B0%8F%E5%A5%B3%E5%AD%90%E5%BE%88%E4%B9%85%E4%BA%86%2C%E4%B9%9F%E8%A7%A3%E5%86%B3%E4%B8%8D%E4%BA%86%2C%E6%BA%90%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8Ba%3D4%2Cb%3D8%2Cw%3D2%2Ce%3D6%2Cc%3D12%2Ch%3D18%3BxB%3Da%2Acos%28w%2At%29%3ByB%3De%2Ba%2Asin%28w%2At%29%3Bk%3DyB%2FxB%3Bif+k%3E%3D0q%3Datan%28k%29%3Belse+q%3Dpi-atan%28-k%29%3BendyE%3Db%2Asin%28q%29%3BxE%3DyE%2Fk%3Bd%3DxE-%28c%5E2-%28yE-h%29.%5E2%29.%5E0.5%3B%E6%B1%82%E5%87%BD%E6%95%B0)
matlab求导问题这个编程问题困扰小女子很久了,也解决不了,源程序如下a=4,b=8,w=2,e=6,c=12,h=18;xB=a*cos(w*t);yB=e+a*sin(w*t);k=yB/xB;if k>=0q=atan(k);else q=pi-atan(-k);endyE=b*sin(q);xE=yE/k;d=xE-(c^2-(yE-h).^2).^0.5;求函数
matlab求导问题
这个编程问题困扰小女子很久了,也解决不了,
源程序如下
a=4,b=8,w=2,e=6,c=12,h=18;
xB=a*cos(w*t);
yB=e+a*sin(w*t);
k=yB/xB;
if k>=0
q=atan(k);
else q=pi-atan(-k);
end
yE=b*sin(q);
xE=yE/k;
d=xE-(c^2-(yE-h).^2).^0.5;
求函数d对t的一阶、二阶导函数图像.(t在0到2π范围内)
matlab求导问题这个编程问题困扰小女子很久了,也解决不了,源程序如下a=4,b=8,w=2,e=6,c=12,h=18;xB=a*cos(w*t);yB=e+a*sin(w*t);k=yB/xB;if k>=0q=atan(k);else q=pi-atan(-k);endyE=b*sin(q);xE=yE/k;d=xE-(c^2-(yE-h).^2).^0.5;求函数
1、由于函数存在分段,不宜用符号求解,采取直接计算的方式,只要取的点足够多,应该就可以达到满意的效果.
2、d的表达式中存在开平方,根据计算的情况看,yE的值大约在6-8之间,但有部分值小于6(例如取t=1.936,计算过程附后),而h=18,c=12,这样根号下的式子可能是负值,从而出现复数,这有没有问题?
t = linspace(0,2*pi,10000);
a=4;b=8;w=2;e=6;c=12;h=18;
xB = a*cos(w*t);
yB = e + a*sin(w*t);
k = yB ./ xB;
q = atan(k);
q(k<0) = pi-atan(-k(k<0));
yE = b*sin(q);
xE = yE./k;
d = xE - ( c^2-(yE-h).^2 ) .^ 0.5;
D1 = diff(d) / (t(2)-t(1));
D2 = diff(D1) / (t(2)-t(1));
subplot 211
plot(t(1:end-1), D1)
set(gca, 'xlim',[0 2*pi])
xlabel('t'); ylabel('一阶导数');
subplot 212
plot(t(1:end-2), D2)
xlabel('t'); ylabel('二阶导数');
画出的导函数图像:
计算结果出现复数的情况计算示例,请核实:
>> t=1.936;
>> xB = a*cos(w*t)
xB =
-2.9796
>> yB = e + a*sin(w*t)
yB =
3.3313
>> k = yB ./ xB
k =
-1.1180
>> q=pi-atan(-k(k<0))
q =
2.3005
>> yE = b*sin(q)
yE =
5.9628
>> xE = yE./k
xE =
-5.3333
>> d = xE - ( c^2-(yE-h).^2 ) .^ 0.5
d =
-5.3333 - 0.9450i