matlab 如何求函数最小值g(x) = x sin(2x - 1)0

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 00:10:22

matlab 如何求函数最小值g(x) = x sin(2x - 1)0
matlab 如何求函数最小值
g(x) = x sin(2x - 1)
0

matlab 如何求函数最小值g(x) = x sin(2x - 1)0
>> [x,fval] = fminbnd('x*sin(2*x-1)',0,2)
x =
0.2601
fval =
-0.1201
当x取0.2601时,函数有最小值-0.1201
当然答案是近似值

clc;clear
x=[42.8,42.9,43,43.1,43.2,43.3,43.4,43.5,43.6,43.7,43.8,43.9,44,44.1,44.2,44.3,44.4,44.5,44.6,44.7];
y=[23265,23029,22907,22668,22264,22083,22112,22096,21864,21742,21733,21844,21787,...

全部展开

clc;clear
x=[42.8,42.9,43,43.1,43.2,43.3,43.4,43.5,43.6,43.7,43.8,43.9,44,44.1,44.2,44.3,44.4,44.5,44.6,44.7];
y=[23265,23029,22907,22668,22264,22083,22112,22096,21864,21742,21733,21844,21787,21756,21838,21984,21971,21876,21879,21996];
p2=polyfit(x,y,2)
xx=min(x):0.1:max(x);
yy=polyval(p2,x);
Y=vpa(poly2sym(p2,'x'),6)%转化为多项式格式
Y1=diff(Y)%求一阶导数
Xmin=eval(solve(Y1))%一阶导数等于零,极值点
Ymin=polyval(p2,Xmin)
plot(x,y,'o',xx,yy,Xmin,Ymin,'*')
结果:
p2 =
932.1 -82142 1.8314e+006

Y =

932.103*x^2-82142.3*x+.183145e7



Y1 =

1864.206*x-82142.3


Xmin =
44.063
Ymin =
21734

收起