数学实验8月13日作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.取不同的初值计算下列平方和形式的非线性规划,尽可能求出所有局部极小点,进 而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结 果进行分析、比较。
(2). (
)(
)
2
2
2
22
121212min 12114949812324681x x x x x x +-++++-,
(4).()()212222
23
12123min10010,1x x x x x x θ⎧⎫⎡⎤⎪⎪-++-+⎡⎤⎨⎬⎢⎥⎣⎦⎣⎦⎪⎪⎩⎭
,其中 ()()()21112211
1
arc ,02,11arc ,0
22tg x x x x x tg x x x π
θπ
⎧>⎪⎪=⎨⎪+<⎪⎩.
解:(2)由题意设()()(
)
22
2
22
121
21
212,12114949812324681f x x x x x x x x =+-++++-
先求12,f f x x δδδδ(文件名为a.m ),再求1
2
00f x f x δδδδ⎧=⎪⎪⎨⎪=⎪⎩(文件名为b.m ),解得近似解为12 2.900.22x x =-⎧⎨
=⎩或12 3.460.08x x =⎧⎨
=-⎩或1220.6234.53x x =⎧⎨=-⎩或1221.1836.47x x =-⎧⎨=-⎩或120.280.28x x =⎧⎨=⎩或1222.37
17.49
x x =⎧⎨=-⎩或
1224.1317.92x x =-⎧⎨
=-⎩或120.8323.72x x =-⎧⎨=-⎩或12
0.17
47.72x x =-⎧⎨=-⎩,取初值()0 2.90,0.22x =-(exam0705grad_run.m )利用matlab 计算可得以下表中数据:
当取初值()0 3.46,0.08x =-(exam07051grad_run.m )利用matlab 计算可得以下表中数据:
取不同初值求解(只需在程序中不断改变初值即可)。 当初值取()021.18,36.47x =--时可得到以下数据
综上全局极小点为
()
-21.181,-36.468,局部极小点
()
-2.8996,0.21584,
()-21.181,-36.468。
(2)
8. 取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结果进行分析、比较。
(2)111222
11
min ()()()()T T
z x a x a c x a x a c =-
---+--+,2x ∈ℜ 其中c = (0.7,0.73),T 1a = (4,4) ,T 2 a = (2.5,3.8)。
解:(2)
1. ①设计程序如exam070702fun.m.建立功能函数,便于调用。 function [f,g]=exam070702fun(x) a1=[4,4]'; a2=[
2.5,
3.8]'; c=[0.7,0.73];
f=1/((x-a1)'*(x-a1)+c(1))-1/((x-a2)'*(x-a2)+c(2)); if nargout>1
g(1)=2*(x(1)-a1(1))/((x(1)-a1(1))^2+(x(2)-a1(2))^2+c(1))^2+2*(x(1)-a2(1))/((x(1)-a2(1))^2+(x(2)-a2(2))^2+c(2))^2 %该为梯度函数的两个方向 g(2)=2*(x(2)-a1(2))/((x(1)-a1(1))^2+(x(2)-a1(2))^2+c(1))^2+2*(x(2)-a2(2))/((x(1)-a2(1))^2+(x(2)-a2(2))^2+c(2))^2 end
②设计脚本程序如exam070702.m ,
opt1=optimset('LargeScale','off','MaxfunEvals',1000,'Tolfun',1e-8,'To lX',1e-8,'Gradobj','on');
opt2=optimset(opt1,'HessUpdate','dfp');
opt3=optimset(opt1,'HessUpdate','steepdesc');
opt4=optimset(opt1,'lineSearchType','cubicpoly'); opt5=optimset(opt5,'HessUpdate','dfp');
opt6=optimset(opt5,'HessUpdate','steepdesc');
%x0=[3,3]';
%x0=[4,4]';
%x0=[5,5]';
%x0=[2,7]';
%x0=[10,10]';
%x0=[50,20]';
%x0=[1,10]';
%x0=[50,100]';
%x0=[43,2]';
x0=[20,43]';
[x1,v1,exit1,out1]=fminunc(@exam070702fun,x0,opt1) [x2,v2,exit2,out2]=fminunc(@exam070702fun,x0,opt2)
[x3,v3,exit3,out3]=fminunc(@exam070702fun,x0,opt3)
[x4,v4,exit4,out4]=fminunc(@exam070702fun,x0,opt4)
[x5,v5,exit5,out5]=fminunc(@exam070702fun,x0,opt5)
[x6,v6,exit6,out6]=fminunc(@exam070702fun,x0,opt6)
③运行结果及分析。
得出答案;制成表格
初值设定为(20,43)