matlab 如何求函数最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 如何求函数最小值相关的知识,希望对你有一定的参考价值。

g(x) = x sin(2x - 1)
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

参考技术A >> [x,fval] = fminbnd('x*sin(2*x-1)',0,2)

x =

0.2601

fval =

-0.1201

当x取0.2601时,函数有最小值-0.1201
当然答案是近似值本回答被提问者采纳
参考技术B 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追问

还有 请问 x=[42.8,42.9,43,43.1,……这一堆,是怎么得出来的?

Javascript 如何取最大值?

有3个数字,分别是a,b,c
取其中最大值,然后赋值给其他。
比如:<script language="javascript">
if((a>b)&&(a>c))b=a;c=a
if((b>a)&&(b>c))a=b;c=b
if((c>a)&&(c>b))a=c;b=c
end
</script>

参考技术A 最简单的就是遍历一遍数组,记录最大值和最小值;
第2种方法先用javascript数组自带的排序函数.sort()对数组排序,第一个是最大值,最后一具就是最小值了。
参考技术B As follows:

<script language="javascript">
var array = [a,b,c];
var max=array[0];
for (var i=0; i < array.length; i++)
if(max<array[i]) max = array[i];

for (var i=0; i < array.length; i++)
array[i] = max;
</script>本回答被提问者采纳
参考技术C var m = Math.max(a,b,c,d,e,f,g) 参考技术D 刷分万岁,刷分万岁~~耶耶耶~ 第5个回答  2008-01-28 调用Math.max()函数

var maxNum=Math.Max("a","b","c");
即可

以上是关于matlab 如何求函数最小值的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何求矩阵的最大值和最小值?

matlab求函数最小值

matlab 求出一维矩阵中最小值,且求出该最小值在矩阵中的位置,求各位帮帮忙

MATLAB编程求最小值

MATLAB如何取数组中非零的最小值,数组里面都是正数。

Matlab中已知函数值的最小值求对应的自变量值...