matlab如何求函数的最大值。
(1)先在命令窗口给s,A赋值。
(2)>>y=@(x)0.65*(s+x)*x/(A+x)。
(3)[x,fval]= fminbnd(y,0,inf)%用于求函数y在x在[0,inf]内的最小值。
则在取负即为求最大值。不过本题我试验了,本题好像有问题。手算都没有最大值的,因为对y求导后y'在x>0内恒大于零,故y为增函数,所以应为在x取无穷大时,y最大,为无穷大。
调用形式为:
r=roots()
例如:解多项式 x^3-6x^2-72x-27=0的根。
p=[1 -6 -72 -27]
r=roots(p)
结果为:
r=12.1229
-5.7345
-0.3884
1.首先,打开matlab,在命令行窗口中输入a=[12,35,2426,78,1416,19,21],创建一个3行3列的矩阵,如下图。
2.然后输入Max(Max(a)),求出一个矩阵的最大值,如下图。
3.然后按回车键,可以看到一个矩阵的最大值是78,如下图。
4.然后输入min(min(a))求矩阵的最小值。
5.按下回车键后,可以看到矩阵的最小值是12,如下图。
题主的求最大值问题,用matlab求解,可以这样来考虑:
第一步:自定义目标函数,fmincon_fun(x),其内容
f=。。。%f表达式
g=。。。%g表达式
p=。。。%p表达式q=。。。%q表达式
Ca=-sqrt((f^2+g^2+p^2+q^2)/2+sqrt(((f^2+g^2+p^2+q^2)/2)^2-(f*q-g*p)^2))%注意对于最大值问题,在Ca表达式前应加负号
第二步:初定x的初值,如x0=[1.5 -3]
第三步:确定x的上下限,lb=[-pi,-pi]ub=[pi,pi]
第四步:使用fmincon函数,求解θ,ψ,即
[x,fval] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub)
theta=x(1),phi=x(2)
Ca=-fval
第五步:编写代码,并运行得到如下结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)