matlab中求极值点 5
t=0:1/2500:0.1x=sin(t).*cos(2*t)提取x的极值点x=sin(2*pi*f1*t).*cos(2*pi*f2*t)f1=60f2=60*37...
t=0:1/2500:0.1
x=sin(t).*cos(2*t)
提取x的极值点
x=sin(2*pi*f1*t).*cos(2*pi*f2*t)
f1=60
f2=60*37 展开
x=sin(t).*cos(2*t)
提取x的极值点
x=sin(2*pi*f1*t).*cos(2*pi*f2*t)
f1=60
f2=60*37 展开
6个回答
2017-07-29
展开全部
先画出导数的曲线,根据其零点判断有几个极点,然后对各极点分别指定适当的初值,利用fsolve求出准确的零点位置,再绘图即可.参考代码如下:symsxf=-2*x.^2+4+sin(2*pi*x);df=diff(f);ezplot(df,[-33])x0=[-1.8-1.3-0.80.50.20.51.2];x0=fsolve(inline(char(df)),x0,optimset('fsolve'));holdonplot(xlim,[00],'--c')plot(x0,subs(df,x0),'ro')figure(2)ezplot(f,[-33])holdonplot(x0,subs(f,x0),'ro')
展开全部
可这样:
t=0:1/2500:0.1;x=sin(t).*cos(2*t);
f1=60;f2=60*37;x1=sin(2*pi*f1*t).*cos(2*pi*f2*t);
plot(t,x,t,x1)
a=max(x),b=min(x)%最大、最小值
a1=max(x1),b1=min(x1)%最大、最小值
t=0:1/2500:0.1;x=sin(t).*cos(2*t);
f1=60;f2=60*37;x1=sin(2*pi*f1*t).*cos(2*pi*f2*t);
plot(t,x,t,x1)
a=max(x),b=min(x)%最大、最小值
a1=max(x1),b1=min(x1)%最大、最小值
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
data是你的数据,
find(diff(sign(diff(data)))==-2)+1
找到极大值的位置
find(diff(sign(diff(data)))==2)+1
找到极小值的位置
find(diff(sign(diff(data)))==-2)+1
找到极大值的位置
find(diff(sign(diff(data)))==2)+1
找到极小值的位置
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function hh
global dy1 dy2
y='x^2*sin(x^2-x-2)'
dy1=diff(y)
dy2=diff(y,2)
subplot(3,1,1)
ezplot(y,[-2 2])
subplot(3,1,2)
ezplot(dy1,[-2 2]),hold on,plot(-2:2,zeros(length(-2:2)))
subplot(3,1,3)
ezplot(dy2,[-2 2]),hold on,plot(-2:2,zeros(length(-2:2)))
x01=fsolve(@myfun1,[-1.5 -0.7 0 1.6])
x02=fsolve(@myfun2,[-1.9 -1.3 -0.5 1.3])
function f1=myfun1(x)
global dy1
f1=subs(dy1);%very inportamt!!!!!;
function f2=myfun2(x)
global dy2
f2=subs(dy2);%very inportamt!!!!!;
结果:
y =
x^2*sin(x^2-x-2)
dy1 =
2*x*sin(x^2-x-2)+x^2*cos(x^2-x-2)*(2*x-1)
dy2 =
2*sin(x^2-x-2)+4*x*cos(x^2-x-2)*(2*x-1)-x^2*sin(x^2-x-2)*(2*x-1)^2+2*x^2*cos(x^2-x-2)
Optimization terminated: first-order optimality is less than options.TolFun.
x01 =
-1.5326 -0.7315 0 1.5951
Optimization terminated: first-order optimality is less than options.TolFun.
x02 =
-1.9240 -1.2650 -0.4742 1.2404
global dy1 dy2
y='x^2*sin(x^2-x-2)'
dy1=diff(y)
dy2=diff(y,2)
subplot(3,1,1)
ezplot(y,[-2 2])
subplot(3,1,2)
ezplot(dy1,[-2 2]),hold on,plot(-2:2,zeros(length(-2:2)))
subplot(3,1,3)
ezplot(dy2,[-2 2]),hold on,plot(-2:2,zeros(length(-2:2)))
x01=fsolve(@myfun1,[-1.5 -0.7 0 1.6])
x02=fsolve(@myfun2,[-1.9 -1.3 -0.5 1.3])
function f1=myfun1(x)
global dy1
f1=subs(dy1);%very inportamt!!!!!;
function f2=myfun2(x)
global dy2
f2=subs(dy2);%very inportamt!!!!!;
结果:
y =
x^2*sin(x^2-x-2)
dy1 =
2*x*sin(x^2-x-2)+x^2*cos(x^2-x-2)*(2*x-1)
dy2 =
2*sin(x^2-x-2)+4*x*cos(x^2-x-2)*(2*x-1)-x^2*sin(x^2-x-2)*(2*x-1)^2+2*x^2*cos(x^2-x-2)
Optimization terminated: first-order optimality is less than options.TolFun.
x01 =
-1.5326 -0.7315 0 1.5951
Optimization terminated: first-order optimality is less than options.TolFun.
x02 =
-1.9240 -1.2650 -0.4742 1.2404
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
data是你的数据,
find(diff(sign(diff(data)))==-2)+1
找到极大值的位置
find(diff(sign(diff(data)))==2)+1
找到极小值的位置
find(diff(sign(diff(data)))==-2)+1
找到极大值的位置
find(diff(sign(diff(data)))==2)+1
找到极小值的位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询