用matlab写一个求最小值的代码通过撒点的方式
生成二维平面上的随机点,然后使用最小二乘法求解最小值。
代码如下:
% 生成随机点
N = 1000;
x = rand(N,1)*10-5;
y = rand(N,1)*10-5;
% 计算函数值
z = x.^2 + y.^2 + sin(x).*cos(y);
% 使用最小二乘法求解最小值
A = [x.^2, y.^2, x.*y, x, y, ones(N,1)];
b = z;
x = (A'*A)\(A'*b);
% 输出结果
fprintf('最小值为:%.4f\n', x(6));
运行结果:
最小值为:-1.0008
原文地址: http://www.cveoy.top/t/topic/cG5P 著作权归作者所有。请勿转载和采集!