求三元二次函数在约束条件下的最值

目标函数:
ω=((L-L0)^2+(a-a0)^2+(b-b0)^2 )^1/2
L=103.94x^2+636.393y^2-0.48z^2-92.52x-272.122y+5.976z+222.435xy+72.566
a=368.211y^2+0.088z^2+31.165x-107.126y-1.058z-110.966xy-0.757xz+3.331yz+8.056
b=291.058x^2+645.555y^2+0.328z^2-211.347x-300.477y-5.433z+247.169xy+5.001xz+9.113yz+66.269
0<x<0.3
0<y<0.1
0<z<3
输入L0、a0、b0求目标函数ω在约束范围内的最小值,输出最小值和取最小值时x,y,z的值

x=0:0.3/100:0.3;
y=0:0.1/100:0.1;
z=0:3/100:3;
L0=10;
a0=10;
b0=10;
L=103.94.*x.^2+636.393.*y.^2-0.48.*z.^2-92.52.*x-272.122.*y+5.976.*z+222.435.*x.*y+72.566;
a=368.211.*y.^2+0.088.*z.^2+31.165.*x-107.126.*y-1.058.*z-110.966.*x.*y-0.757.*x.*z+3.331.*y.*z+8.056;
b=291.058.*x.^2+645.555.*y.^2+0.328.*z.^2-211.347.*x-300.477.*y-5.433.*z+247.169.*x.*y+5.001.*x.*z+9.113.*y.*z+66.269;
w=((L-L0).^2+(a-a0).^2+(b-b0).^2 ).^(1/2);
[s,wz]=min(w);
wmin=s;
xwz=x(1,wz);
ywz=y(1,wz);
zwz=z(1,wz);
在开始处输入L0,a0,b0求出结果后用min函数求最小值及其位置s表示其最小值数据,wz表示其位置最后根据位置可找到对应的x.y.z值,即xwz,ywz,zwz

L0 = -1;
a0 = 5;
b0 = -1;
fun = @(x)sqrt((103.94*x(1)^2+636.393*x(2)^2-0.48*x(3)^2-92.52*x(1)-272.122*x(2)+5.976*x(3)+222.435*x(1)*x(2)+72.566-L0)^2+(368.211*x(2)^2+0.088*x(3)^2+31.165*x(1)-107.126*x(2)-1.058*x(3)-110.966*x(1)*x(2)-0.757*x(1)*x(3)+3.331*x(2)*x(3)+8.056-a0)^2+(291.058*x(1)^2+645.555*x(2)^2+0.328*x(3)^2-211.347*x(1)-300.477*x(2)-5.433*x(3)+247.169*x(1)*x(2)+5.001*x(1)*x(3)+9.113*x(2)*x(3)+66.269-b0)^2);
lb = [0,0,0];
ub = [0.3,0.1,3];
% 没有线性约束,因此将这些参数设置为 []。
A = [];
b = [];
Aeq = [];
beq = [];
% 尝试使用一个位于区域中部的初始点。
x0 = (lb + ub)/2;
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub);