关于matlab里fminsearch的一个简单例子

先声明本人是一个matlab菜鸟,最近初学优化计算方面知识,遇到如下一个例子:求解f(x)=sin(x)+3取最小值时的x值。
function f=myfun(x)
syms x;
f=sin(x)+3;
x0=2;%起始点
[x,fval]=fminsearch(@myfun,x0)
结果显示有错:
??? Undefined command/function 'myfun'.

Error in ==> fminsearch at 176
fv(:,1) = funfcn(x,varargin{:});

Error in ==> wuyueshufeixianxingguihua at 6
[x,fval]=fminsearch(@myfun,x0)
希望朋友们能给予指点,谢谢!

第1个回答  推荐于2018-03-20
在命令窗口键入:
myfun=@(x)sin(x)+3;
[x,fval]=fminsearch(myfun,2)
就可以了哈。本回答被提问者和网友采纳

MATLAB的fminsearch函数求解多元函数的最小值
[minVal, minPoint] = fminsearch(objectiveFunction, initialGuess)其中,objectiveFunction是你定义的多变量函数,initialGuess是初始的搜索范围或点。下面通过三个实例来演示fminsearch的使用。实例1中,我们会编写一个简单的主程序,调用objectiveFunction来求解一个示例函数的最小值。实例2中,我们引入了更...

已知各点之间距离,如何用matlab求各点坐标已知各点之间的
用fminsearch函数对点坐标进行优化 x = fminsearch(@(x) get_distance(x, d), x0);打印最优点坐标 fprintf('点坐标为:\\n');disp(x')```在这个例子中,我们指定存在 4 个点,它们之间的距离通过一个 $4\\times 4$ 的矩阵 `d` 给出。我们选定一个初始点坐标向量 `x0`,初始值可以选取...

如何求matlab图像的极大值
用fminsearch()求极大值问题,应将表达式改为反函数形式。例:求f(x)=2xexp(-5x)在原点附近的极大值,并作图标注极大值位置。解:问题等价于-f(x)的极小值 [x1,f1]=fminsearch(@(x)-(2*x.*exp(-5*x)),0)plot(x1,-f1,'rp')text(x1+0.1,-f1,'极大值')hold on x=0:0...

MATLAB求极小值
接下来,我们介绍fminsearch函数,该函数用于求解多变量无束缚非线性最小值。其语法为:x=fminsearch(h_fun,x0),其中x0是最小值点的初始猜测值。举例说明,我们求解著名的Banana测试函数f(x,y)=100(y-x^2)^2+(1-x)^2的最小值,该函数的理论最小值是x=1,y=1。程序如下:fn=inline('1...

求助:如何在matlab中调用fminsearch函数
exitflag——返回函数输出条件值,exitflag=1说明函数收敛到一个解x;exitflag=0说明函数达到最大迭代次数;exitflag=-1说明输出函数终止算法。fminsearch函数调用实例:求二元函数f(x,y)=5-x^4-y^4+4xy在原点附近的极大值。解 问题等价于求-f(x,y)的极小值 >>fun=inline('x(1)^4+x(2...

MATLAB求解矩阵的特征向量的问题eig
是这样的,因为系数矩阵的秩(rank)为2,说明线性方程组有无穷多解,所以得到特征向量也就不唯一。但其特征值是唯一的。

MATLAB中如何选出二元二次方程解的最大值
用MATLAB求二元二次方程的最大值,可以用fminsearch()极小值函数来求。求解时,因将求解函数写成反函数的形式。如求f(x,y)=34.052x+399.014y-0.201x²-55.529y²+4.508xy-1019.389的极大值,则问题等价于求-f(x,y)。解决过程:>> fun=@(x) -(34.052*x(1)+399.014...

matlab 求带参数的一元函数的最小值。举个简单的例子:x^2+bx+4.当然...
可以参考这个例子:function shiyan3 minx = fminsearch( @fundef, -1 );minvalue = fundef( minx )function y = fundef( x )y = x.^2;就是求一个抛物线最小值对应的x,然后求出最小值。

matlab怎样求一个矩阵,使得表达式取得最值
使用fminsearch这个函数可以做到 例如做一个函数,存成.m function [min,x] = wrap(x)[min,x] = x(1)*x(2)*x(3) %这里随便给了个公式,你套入你的公式即可。(你看看帮助,你的bij, xij是二维矩阵吧? 我没这么用过,但是理论上应该也可以。)调用的时候 [x,fval,exitflag] = fmin...

如何用matlab对一个多元三次方程在一个区域内求最小值?
可以用fminsearch求解 例,求fx,y)=x(x-5-y)+y(y-4)以(0 4)为初值的最小值 >>fun=inline('x(1)*(x(1)-5-x(2))+x(2)*(x(2)-4)','x')>>[x_min,f_min]=fminsearch(fun,[0 4])x_min = 4.6667 4.3333 f_min = -20.3333 ...

相似回答