数学软件实验报告实验七
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学软件实验报告
学院名称:理学院专业年级:
姓名:学号:
课程:数学软件实验报告日期:2014年12月6日
实验七SIMULINK建模与工具箱的使用
一.实验目的
MATLAB 具有丰富的可用于各种专业方向的工具箱,这些工具箱已经形成了MATLAB 的系列产品。特别是动态仿真建模工具箱,更是成为许多工具箱的基础。本次实验的目的就是要使大家了解MA TLAB工具箱使用的基本方法,以及如何查询工具箱,主要掌握系统优化工具箱的使用和系统动态仿真建模工具箱的使用。
二.实验要求
MATLAB系统的工具箱十分的丰富,并且随着版本的不断升级,其工具箱还在不断地增加。通过本次实验,要求了解MA TLAB系统工具箱的分类与查询,会使用系统优化工具箱解决一些实际问题。能建立系统仿真方框图,并进行系统仿真模拟。
三.实验内容
最优化工具箱
非线性最小化函数
fgoalattain 多目标达到优化 constr 有约束最小化
fminbnd 有边界最小化
fminunc使用梯度法的无约束最小化
fminsearch 使用简单法的无约束最小化
fzero 非线性方程求解(数量情况)
fsolve 非线性方程求解
lsqnonlin 非线性最小二乘
fminimax 最小的最大解
fseminf 半无穷区间最小化
2.矩阵问题的最小化
linprog 线性规划
quadprog 二次规划
lsqnonneg 非负线性最小二乘
lsqlin 约束线性最小二乘
第十章
10.1线性优化
>> f=[-5 4 2];
>> a=[6 -1 1;1 2 4];
>> b=[8 10];
>> 1b=[-1 0 0];
>> ib=[-1 0 0];
>> ub=[3 2];
>> [x,fval,exitflag,output,lambda]=linprog(f,a,b,[],[],ib,ub) Optimization terminated.
x =
1.3333
0.0000
0.0000
fval =
-6.6667
exitflag =
1
output =
iterations: 7
algorithm: 'large-scale: interior point'
cgiterations: 0
message: 'Optimization terminated.'
constrviolation: 0
lambda =
ineqlin: [2x1 double]
eqlin: [0x1 double]
upper: [3x1 double]
lower: [3x1 double]
>> f=[-6 4];
>> a=[2 3;4 2];
>> b=[100 120];
>> ib=[0 0];
>> [x,fval]=linprog(f,a,b,[],[],ib,[]) Optimization terminated.
x =
30.0000
0.0000
fval =
-180.0000
10.2 二次优化
>> h=[1 -1;-1 2];
>> c=[-2;-6];
>> a=[1 1;-1 2;2 1];
>> b=[2;2;3];
>> [x,i]=quadprog(h,c,a,b)
x =
0.6667
1.3333
i =
-8.2222
>> h=[2 0;0 2];
>> f=[-4 0];
>> a=[-1 1;1 -1];
>> b=[2;-1];
>> [x,fval,exitflag,output,lambda]=quadprog(h,f,a,b,[],[],[0 0],[]); >> x
x =
0.5000
1.5000
10.3 非线性无约束优化问题
π的近似值
>> fminbnd('cos',3,4)
ans =
3.1416
函数式在(0,1)范围内的最小值点
>> fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)
ans =
0.5223
对第一个函数直接在命令窗中定义函数
>> banana=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;
>> [x,fval,exitflag]=fminsearch(banana,[-1.2,1])
x =
1.0000 1.0000
fval =
8.1777e-010
exitflag =
1
对第二个函数使用函数文件的定义方法:
定义M文件
function f =myfun(x)
f = 3*x(1)^2+2*x(1)*x(2)+x(2)^2;
在命令窗口实现优化
>> x0=[1,1];
x =
1.0e-004 *
-0.0675 0.1715
fval =
1.9920e-010
10.3.3 fminunc函数应用举例
最小值求解
>> fun='exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)';
>> x0=[-1 1];
>> [x,fval]=fminunc(fun,x0)
Warning: Gradient must be provided for trust-region algorithm;
using line-search algorithm instead.
> In fminunc at 347
Local minimum found.
Optimization completed because the size of the gradient is less than the default value of the function tolerance.
x =
0.5000 -1.0000
fval =
3.6609e-015
10.4 最小二乘优化问题
非线性最小二乘问题优化
调用M函数
function F =myfun(x)
k = 1:10;
F = 2+2*k-exp(k*x(1))-exp(k*x(2));
>> x0=[0.3 0.4];