数学实验8月13日作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档