matlab 如何求函数最小值
0<= x <=2
matlab 怎么写最小值过程?求大神!谢谢 展开
>> [x,fval] = fminbnd('x*sin(2*x-1)',0,2)
x =
0.2601
fval =
-0.1201
当x取0.2601时,函数有最小值-0.1201
当然答案是近似值
扩展资料:
一个函数是一组在一起执行任务的语句。 在MATLAB中,函数在单独的文件中定义。文件的名称和函数的名称应该是一样的。
函数在自己的工作空间内的变量上运行,这个变量也称为本地工作空间,与在MATLAB命令提示符下访问的工作区(称为基本工作区)不同。
函数可以接受多个输入参数,并可能返回多个输出参数。
匿名函数就像传统编程语言中的内联函数,在单个MATLAB语句中定义。 它由单个MATLAB表达式和任意数量的输入和输出参数组成。
可以在MATLAB命令行或函数或脚本中定义一个匿名函数。
这样就可以创建简单的函数,而无需为它们创建一个文件。
matalab 中的zeros()函数和ones()函数
zeros()函数用来生成全0矩阵
ones()函数用来生成全1矩阵
zeros()函数的具体用法如下:
zeros(n):n*n 全零矩阵
zeros(m,n):m*n全零矩阵
zeros(d1,d2,d3……dn):生成 d1*d2*d3*……*dn 全零矩阵或数组。
zeros(size(A)):生成与矩阵A大小相同的全零矩阵。
ones()函数的具体用法如下:
ones(n):n*n 全1矩阵
ones(m,n):m*n全1矩阵
ones(d1,d2,d3……dn):生成 d1*d2*d3*……*dn 全1矩阵或数组。
ones(size(A)):生成与矩阵A大小相同的全1矩阵。
参考资料:百度百科-MATLAB
x =
0.2601
fval =
-0.1201
当x取0.2601时,函数有最小值-0.1201
当然答案是近似值
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
还有 请问 x=[42.8,42.9,43,43.1,……这一堆,是怎么得出来的?