我有一个包含许多变量的方程。我必须a0
通过将输入提供给所有其他变量来找到变量的最小值[a1, a2, a3, a4, a5, a6, x1]
。
x1
是一个数组,其他变量对于常量 a0 值是常量。(其他 6 个变量随着 值的变化而变化a0
,但现在我只是在考虑a0 = 0
,因此这六个变量具有下面提到的“出于学习目的”的恒定值。)
我尝试同时为每个变量提供数组值以包含在函数中,但它不起作用,因为fminsearch
我想它需要一个标量值。
a0 = 0;
x1 = -10:0.1:10;
a1 = 1.329438561310570 e-05;
a2 = -0.002504562092133;
a3 = -0.036785455629072;
a4 = 0.056797862719813;
a5 = 2.624845095825030;
a6 = 30.072580030528270;
f=@(a0) min(((max((((30*a0*(x1.^4))+(20*a1*(x1.^3))+(12*a2*(x1.^2))+.....(6*a3*x1)+(2*a4))/((1+((6*a0*(x1.^5))+(5*a1*(x1.^4))+(4*a2*(x1.^3))+(3*a3*(x1.^2))+(2*a4*(x1))+(a5))^2))^1.5)))-0.1)+(-0.1-(min((((30*a0*(x1.^4))+(20*a1*(x1.^3))+(12*a2*(x1.^2))+(6*a3*(x1))+(2*a4))/((1+((6*a0*(x1.^5))+(5*a1*(x1.^4))+(4*a2*(x1.^3))+(3*a3*(x1.^2))+(2*a4*(x1))+(a5))^2))^1.5)))));
a0_min = fminsearch(f,0);
我假设我会a0
在 10^-7 或 10^-6 的范围内得到最小值。不完全确定。我是否将函数的输入作为正确的值?