matlab求导问题
这个编程问题困扰小女子很久了,也解决不了,求各位帮忙解决一下,不胜感激……源程序如下a=4,b=8,w=2,e=6,c=12,h=18;xB=a*cos(w*t);yB=...
这个编程问题困扰小女子很久了,也解决不了,求各位帮忙解决一下,不胜感激……
源程序如下
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π范围内)
求求各位大神帮忙解答一下,顺便贴一下程序。 展开
源程序如下
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π范围内)
求求各位大神帮忙解答一下,顺便贴一下程序。 展开
展开全部
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
更多追问追答
追问
其实原题中a=0.108,b=0.62,w=8.5π,e=0.35,c=0.3,h=0.635,我当时情急,就随便填了几个常数,只是想表示这种情况。请问大哥,你能再帮我用matlab编程算一下吗(附上源程序)?我这个题目今天急用,谢谢您了~~#^.^#(我会把分都给你的,谢谢了)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询