怎么求函数的极小值 matlab里
>> [x,fval] = fminbnd('x*sin(2*x-1)',0,2)x =0.2601fval =-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
在Optimization Toolbox下面的Minimization函数包里有很多函数其中fminunc这个函数可能满足你的要求x = fminunc(fun,x0)x = fminunc(fun,x0,options)x = fminunc(problem)你也可以在matlab里输入help fminunc来查看如何使用这个函数
1、首先在电脑中启动MATLAB,新建脚本(Ctrl+N),在脚本编辑区输入如下代码。
2、其中f=@(x)是通过匿名函数的方法定义函数,inline( )是通过内联函数的方法定义函数。
3、然后保存和运行上述脚本,如下图所示。
4、在命令行窗口返回如下结果。
5、保存和运行上述脚本也会得到以下图像,可以看到函数f(x)=sin(x)+x*cos(x)的曲线,以及它在区间[0, 5]上的极大值与极小值,如下图所示就完成了。
有三种方法:
导数为0求极值、优化算法(运用函数)、绘图观察
有2个函数:
[x,feal,exitflag,output]=fminbnd(fun,x1,x2,options)
[x,feal,exitflag,output]=fminsearch(fun,x0,options)
%若exitflag给出数大于0,则成功找到极值点,x,fval分别是极值点和对应的目标函数极值
运用函数的例子:在-10《x《10区间,求函数最小值
x1=-10;x2=10;
yx=@(x)(sin(x)^2)*exp(-0.1*x)-0.5*sin(x)*(x+0.1));
[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)
fminsearch
种锦丹郁:[答案] 一般使用fmin和fmax就够了 当然你也可以自己写个函数来做,有些很特殊的函数需要自己写函数 如果你是数学系要做数值分析还是需要写函数的,如果你是工科生,一般没那么多要求
兴业县13191875070: matlab中求函数的最小值 - ?
种锦丹郁: %这样写 m=60;m1=input('please input m1=');a=m1/mo1=0.09o2=0.03T=@(t) (1-t-o1).*(1-log(t./(t+o2))./log(a)); %inline函数要这样写!t2=1-o1t1=a-o1[tm,TM]=fminbnd(T,t1,t2)
兴业县13191875070: matlab求一个函数的极小值问题,急急急!!!!!!?
种锦丹郁: 直接使用min()函数就行了呗,ymin=min(y);若是需要也找到x的对应值,可以这样:imin=find(min(y)==y);x(imin)
兴业县13191875070: matlab 最小值函数怎么表达 - ?
种锦丹郁: Matlab中函数的最小值的实例如下: 计算下面函数在区间(0,1)内的最小值. 解:>> [x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1) x =0.5223 fval =0.3974 exitflag =1 output =iterations: 9funcCount: 9algorithm: 'golden ...
兴业县13191875070: 求教Matlab二元函数求解最小值 - ?
种锦丹郁: 用Matlab求解二元函数的最小值,一般可以用fminsearch()求解.例如 求二元函数f(x,y)=x^2+2*y^2在[0;1]点附近的极小值. fun=@(x)x(1)^2 + 2*x(2)^2; [x,fval,exitflag]=fminsearch(fun,[0;1]) 运行结果
兴业县13191875070: 请问多元函数如何用Matlab求极小值. - ?
种锦丹郁: on来求解.写成向量形式,约束A*x<=b,初始值x0附近可以搜出出局部极小值.输入: z=@(x)7.2*sqrt(25+(15-x(1))^2)+(7.2+(107/(20-x(1))))*sqrt((8-x(2))^2+(20-x(1))^2)+7.2*x(2); A=[1,0;0,1]; b=[15;8]; x0=[1;1]; [x,feval]=fmincon(z,x0,A,b) 得到局部极小值的坐标和函数值: x =15.00006.6994 feval =231.9944
兴业县13191875070: MATLAB中求最小值怎么做 如求函数y=e.^x+4x在 - 1到2区间的最小值 - ?
种锦丹郁:[答案] x=-1:0.001:2; y=exp(x)+4*x; min(y)
兴业县13191875070: matlab中 函数极值怎么求 - ?
种锦丹郁: 极值: data是你的数据, find(diff(sign(diff(data)))==-2)+1 找到极大值的位置 find(diff(sign(diff(data)))==2)+1 找到极小值的位置 data(find(diff(sign(diff(data)))==-2)+1)和 data(find(diff(sign(diff(data)))==2)+1) 返回的是极大值和极小值
兴业县13191875070: matlab求函数最小值 - ?
种锦丹郁: 你少了一个右边括号 在 1.5*(3.96*(2*t+1)) 这里
兴业县13191875070: matlab求一个最小值?
种锦丹郁: 用derivative-free的方法是找到多变量无约束函数的最小值fminbnd 个函数求的是局部极小值点,只可能返回一个极小值点,像这种有多个极小值的函数,你应该先绘图找到各个极小值点的大致范围,然后把x的范围缩小到只有那个极小值的范围.