二次插值法无约束最优化
Matlab 实践
1、
二次插值法无约束最优化
算法说明:在包含f (x )极小值x0的区间【a b 】,给定三点x1、x2、x3,其对应的函数值分别为
f1、f2、f3,且满足x1
(x 2+x 3) f 1
x 0=
(x 1-x 2)(x 1-x 3)
2f 1
(x 1-x 2)(x 1-x 3)
++
(x 1+x 3) f 2(x 2-x 1)(x 2-x 3)
2f 2
(x 2-x 1)(x 2-x 3)
++
(x 1+x 2) f 3(x 3-x 1)(x 3-x 2)
2f 3
(x 3-x 1)(x 3-x 2)
根据求出x0的大小情况确定取代三点中的某一点,直到|x3-x1|
算法步骤:
步骤一:比较x0和x2的大小,如果x0>x2,转步骤二;否则转步骤三;
步骤二:如果f0
流程图:
算法举例:
f (x )=(x 2-2)2/2-1,x ∈
[0,5]
2、拉压杆系的静不定问题。求各杆的轴力Ni 及节点C 的位移,已知桁架结构如图所示,各杆横截面积分别为Ai ,材料的弹性模量为E 。
算法说明:假设各杆均受拉力,C 点因各杆变形而引起的x 方向位移△x ,y 方向位移△y ,由几何
关系,的变形方程: ∆L i =
N i L i EA i
=∆x cos αi +∆y sin αi i=1,„„,n
令K i =
L i EA i
,
故
K i N i -∆x cos αi -∆y sin αi =
,
再加上平面共点力系的两个平衡方程
n
∑N
i n
i
cos αi =P cos α
∑N
i
i
sin αi =P sin α
共有n+2个方程,其中包括n 个轴力和两个待求位移△x ,△y ,方程组可解。 线性方程组,可用矩阵除法直接解出。
流程图:
算法举例:
P=1000,a=pi/2,l1=0.5,a1=pi/4,a2=pi/2,a3=3pi/4,s1=s2=s3=1e-3,E=100e9, 求Ni ,△x ,△y 。 容易算出
N
1
=N
2
=
P cos
2
a 13a 1
=2.[1**********]452e002
1+2cos
N 3=
P
1+2cos
3a 1
=5.[1**********]905 e002
dx =0 dy=
N 3
l 1cos a 1
Esi
= 2.[**************]e-006