1、考虑二维 Rosenbrock 函数:$f(x,y)=100(y - x^{2})^{2}+(1 - x)^{2}$。求该函数的最小值以及对应的$(x,y)$。
函数的最小值为 0,对应的$(x,y)$为$(1,1)$。
2、考虑 N 维 Rosenbrock 函数:$f(x) = \sum_{i = 1}^{N}[100(x_{i + 1} - x_{i}^{2})^{2} + (1 - x_{i})^{2}]$。通过观察,求出该函数的最小值以及对应的点 $x$。
函数的最小值为 0,对应的点 $x$ 为 $[1, 1, \cdots, 1]$。
3、回顾一下,寻找多目标问题的帕累托最优解的一种典型方法是通过权重将其转化为单目标问题。具体来说,对于一个双目标问题 minimize x {f1(x), f2(x)},我们选取一个介于 0 和 1 之间的正权重,然后求解单目标问题 minimize x wf1(x)+(1 - w)f2(x)。一旦通过数值计算得到解,就修改权重并找到新的解。编写一个 MATLAB 代码,该代码以一个双目标函数作为参数,应返回 100 个帕累托最优解。你可以在代码中使用 fminunc 函数。例如,给定双目标函数 f1 = @(x) (x(1) - 1)²+(x(2) - 3)²; f2 = @(x) (x(1) - 10)²+(x(2) - 12)²; fMulti = @(x) [f1(x), f2(x)]; 调用编写的函数 myParetoMethod 得到结果 X = myParetoMethod(fMulti); 可使用 plot(X(:,1),X(:,2),’.’); axis equal; 进行可视化。
以下是实现该功能的 MATLAB 代码:
function X = myParetoMethod(fMulti)
% 初始化存储帕累托最优解的矩阵
X = zeros(100, length(fMulti(rand(2,1))));
% 生成 100 个不同的权重
weights = linspace(0, 1, 100);
for i = 1:100
w = weights(i);
% 定义单目标函数
singleObjective = @(x) w*fMulti(x)(1) + (1 - w)*fMulti(x)(2);
% 初始猜测值
x0 = rand(2,1);
% 使用 fminunc 求解单目标问题
[x_opt, ~] = fminunc(singleObjective, x0);
% 存储帕累托最优解
X(i, :) = x_opt;
end
end
你可以使用以下方式调用这个函数:
f1 = @(x) (x(1)-1)^2+(x(2)-3)^2;
f2 = @(x) (x(1)-10)^2+(x(2)-12)^2;
fMulti = @(x) [f1(x), f2(x)];
X = myParetoMethod(fMulti);
plot(X(:,1),X(:,2),'.');
axis equal;
4、使用truss2d类设置并解决一个二维桁架结构问题。该桁架结构有三个节点,节点1为自由节点,节点2和节点3在x和y方向固定。节点坐标和连接性如下:theta = pi/4,节点坐标xy = [0 -cos(theta) cos(theta); 0 sin(theta) sin(theta)],连接性为connectivity = [1 2; 1 3]’。所有杆的横截面积为1e - 6平方米,杨氏模量为2e11帕斯卡。在节点1处施加一个力,力的方向与x轴正方向夹角为pi/4,求所有节点的位移。
首先根据给定信息确定节点坐标和连接性:
```matlab
theta = pi/4;
xy = [0 -cos(theta) cos(theta);
0 sin(theta) sin(theta)];
connectivity = [1 2; 1 3]';
然后创建 truss2d 对象:
t = truss2d(xy, connectivity);
接着为所有杆分配横截面积和杨氏模量:
t = t.assignE(2e11);
t = t.assignA(1e-6);
再进行边界条件和力的分配:
t = t.fixXofNodes([2 3]);
t = t.fixYofNodes([2 3]);
beta = pi/4;
t = t.applyForce(1, [cos(beta); -sin(beta)]);
可显示变形前的桁架:
t = t.plot();
之后组装刚度矩阵和力向量:
t = t.assemble();
最后求解未知位移:
t = t.solve();
所有节点的位移可通过 t.myUV </
多目标优化与工程应用解析

最低0.47元/天 解锁文章
1947

被折叠的 条评论
为什么被折叠?



