如何通过matlab求解器求解等式方程?

时间:2014-11-15 15:56:43

标签: math matlab symbolic-math

我有一个与基础数学相关的问题,但是使用Matlab求解方法。这是一个问题:

y = 5;

for x=0.01:100
    F = 3*x + y - 2*x^2;
end

从上面的迭代方程中我想找到max [F]值及其相对[x]。是否有可能通过matlab求解器来解决它。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

对于无约束的非线性优化(根据您的上一次编辑),使用fminsearch来解决您的问题。它会是这样的:

F = @(x) 3*x + y - 2*x^2;
xini = 5; %initial value to the solver
[xsolu Fsolu] = fminsearch(@F,xini)

要控制选项,解算器的参数请参阅optimset

opts = optimset('MaxFunEvals',10e4, 'MaxIter', 10e4)
[xsolu Fsolu] = fminsearch(@F,xini, opts)

根据您原始配方的解决方案是:

x=0.01:100;
F = zeros(length(x),1);
for ii = 1:length(x)
    F(i) = 3*x(i) + y - 2*x(i)^2;
end

xsolu = max(F);
Fsolu = F(x == xsolu);

这是一种效率很低的方法,仅此而已。