用MATLAB求三元函数的最小值怎么编程

函数如下:

像这种问题Matlab库函数直接可以求解。
编写三个m文件,一个主程序,两个function
主程序main.m
p0=[0 0 0];
A=[];b=[];Aeq=[];beq=[];vlb=[-2;-2;-2];vub=[2;2;2];
[x,fval]=fmincon('fun_u',p0,A,b,Aeq,beq,vlb,vub,'confun_u')

fun_u.m子函数即目标函数u
function y=fun_u(x)
y= (x(1)-0.1).^2 + (x(2) - 0.4).^2 + (x(3) - 0.3).^2;

约束条件confun_u.m文件,由于本问题无约束条件,所以该函数这样来写
function [g,ceq]=confun_u(x)
g=-1;
ceq=-1;

执行的时候直接运行main程序即可。当然你可以把main.m也改为一个function,输入参数为目标函数名‘fname’,这时你需要自己定义'fname'的内容。要是不清楚的地方可以继续追问
温馨提示:答案为网友推荐,仅供参考