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