极值点可以用imregionalmax和imregionalmin,零点可以用find,这里如果用find(x==max(x))这条命令只能找到一个值
举个例子
Y=[10 0 10 20 30 20 10 0 30 50 70 50 30 0 50 0];
X=1:size(Y,2);
max=imregionalmax(Y)
max =
1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0
X(max)
ans =
1 5 11 15
花了两天时间,终于研究明白了!
function hh
global dy1 dy2
y='x^2sin(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,[-15 -07 0 16])
x02=fsolve(@myfun2,[-19 -13 -05 13])
function f1=myfun1(x)
global dy1
f1=subs(dy1);%very inportamt!!!!!;
function f2=myfun2(x)
global dy2
f2=subs(dy2);%very inportamt!!!!!;
结果:
y =
x^2sin(x^2-x-2)
dy1 =
2xsin(x^2-x-2)+x^2cos(x^2-x-2)(2x-1)
dy2 =
2sin(x^2-x-2)+4xcos(x^2-x-2)(2x-1)-x^2sin(x^2-x-2)(2x-1)^2+2x^2cos(x^2-x-2)
Optimization terminated: first-order optimality is less than optionsTolFun
x01 =
-15326 -07315 0 15951
Optimization terminated: first-order optimality is less than optionsTolFun
x02 =
-19240 -12650 -04742 12404
可以考虑用 fmincon(),具体用法见 doc fmincon,记 a = x(1), b = x(2), c = x(3):
fun = @(x)(275257cos(x(2) -pi/2))/8000- 1993803cos(x(3))/50000
- 585179cos(x(1) - pi/2 + x(2))/25000;
lb = [0, 0, pi/4];
ub = [pi, 5pi/36, pi/2];
x0 = [0, 0, pi/4];
x = fmincon(fun,x0,[],[],[],[],lb,ub)
结果:
x =15708 58188e-08 07854
其实你也可以先分析一下,比如你这里 c 和 a, b 是独立的那么可以分解成两个极值问题。画个图就很容易看出来了,在 c 和 b 的方向上都是单调的(所以肯定 b 取 0, c 取 pi/4 = 07854),最后就是一个关于 a 的一元极值问题(从图中也大概可以估出极小值点大约是 15 左右)。
syms x y
z=x^2-(y-1)^2;
diff(z,x)
diff(z,y)有上述命令计算得到:z对x的偏导数为ans =2x,对y的偏导数为ans =2 - 2y;因此当两个偏导数为零时有极值点,这是x=0,y=1,此时求得z(0,1)=0,也是极小值点;由方程也可以看出该式在负无穷到正无穷没有极大值点!
function m=fenduanhanshu(t)
m=t(t>=0 & t<1)+(-t+2)(t>1 & t<=2)+01(t<0 | t>2)
解释
在Matlab中,上述函数中的表达式m=t(t>=0 & t<1)+(-t+2)(t>1 & t<=2)+01(t<0 | t>2)的运算规则是当布尔表达式为true时,布尔表达式的值取1,参与运算,否则取0,参与运算。
例如,当表达式中的(t>=0 & t<1)成立时,t(t>=0 & t<1)=t1;此时表达式中的布尔表达式(t>1 & t<=2)和(t<0 | t>2)都不成立,取0参与运算,故此时m=t1+(-t+2)0+010=t。
Matlab中的这种设计极大地方便了用户进行科学计算,减少了用户书写的代码量,开发效率大大提高,个人非常喜欢,所以也极力推荐各位使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)