数学软件实验报告实验七.docx

上传人:b****4 文档编号:27155853 上传时间:2023-06-27 格式:DOCX 页数:14 大小:250.60KB
下载 相关 举报
数学软件实验报告实验七.docx_第1页
第1页 / 共14页
数学软件实验报告实验七.docx_第2页
第2页 / 共14页
数学软件实验报告实验七.docx_第3页
第3页 / 共14页
数学软件实验报告实验七.docx_第4页
第4页 / 共14页
数学软件实验报告实验七.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数学软件实验报告实验七.docx

《数学软件实验报告实验七.docx》由会员分享,可在线阅读,更多相关《数学软件实验报告实验七.docx(14页珍藏版)》请在冰豆网上搜索。

数学软件实验报告实验七.docx

数学软件实验报告实验七

数学软件实验报告

学院名称:

理学院专业年级:

姓名:

学号:

课程:

数学软件实验报告日期:

2014年12月6日

实验七SIMULINK建模与工具箱的使用

一.实验目的

MATLAB具有丰富的可用于各种专业方向的工具箱,这些工具箱已经形成了MATLAB的系列产品。

特别是动态仿真建模工具箱,更是成为许多工具箱的基础。

本次实验的目的就是要使大家了解MATLAB工具箱使用的基本方法,以及如何查询工具箱,主要掌握系统优化工具箱的使用和系统动态仿真建模工具箱的使用。

二.实验要求

MATLAB系统的工具箱十分的丰富,并且随着版本的不断升级,其工具箱还在不断地增加。

通过本次实验,要求了解MATLAB系统工具箱的分类与查询,会使用系统优化工具箱解决一些实际问题。

能建立系统仿真方框图,并进行系统仿真模拟。

三.实验内容

最优化工具箱

非线性最小化函数

fgoalattain多目标达到优化constr有约束最小化

fminbnd有边界最小化

fminunc使用梯度法的无约束最小化

fminsearch使用简单法的无约束最小化

fzero非线性方程求解(数量情况)

fsolve非线性方程求解

lsqnonlin非线性最小二乘

fminimax最小的最大解

fseminf半无穷区间最小化

2.矩阵问题的最小化

linprog线性规划

quadprog二次规划

lsqnonneg非负线性最小二乘

lsqlin约束线性最小二乘

第十章

10.1线性优化

>>f=[-542];

>>a=[6-11;124];

>>b=[810];

>>1b=[-100];

>>ib=[-100];

>>ub=[32];

>>[x,fval,exitflag,output,lambda]=linprog(f,a,b,[],[],ib,ub)

Optimizationterminated.

x=

1.3333

0.0000

0.0000

fval=

-6.6667

exitflag=

1

output=

iterations:

7

algorithm:

'large-scale:

interiorpoint'

cgiterations:

0

message:

'Optimizationterminated.'

constrviolation:

0

lambda=

ineqlin:

[2x1double]

eqlin:

[0x1double]

upper:

[3x1double]

lower:

[3x1double]

>>f=[-64];

>>a=[23;42];

>>b=[100120];

>>ib=[00];

>>[x,fval]=linprog(f,a,b,[],[],ib,[])

Optimizationterminated.

x=

30.0000

0.0000

fval=

-180.0000

10.2二次优化

>>h=[1-1;-12];

>>c=[-2;-6];

>>a=[11;-12;21];

>>b=[2;2;3];

>>[x,i]=quadprog(h,c,a,b)

x=

0.6667

1.3333

i=

-8.2222

>>h=[20;02];

>>f=[-40];

>>a=[-11;1-1];

>>b=[2;-1];

>>[x,fval,exitflag,output,lambda]=quadprog(h,f,a,b,[],[],[00],[]);

>>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.00001.0000

fval=

8.1777e-010

exitflag=

1

对第二个函数使用函数文件的定义方法:

定义M文件

functionf=myfun(x)

f=3*x

(1)^2+2*x

(1)*x

(2)+x

(2)^2;

在命令窗口实现优化

>>x0=[1,1];

>>[x,fval]=fminsearch(@myfun,x0)

x=

1.0e-004*

-0.06750.1715

fval=

1.9920e-010

10.3.3fminunc函数应用举例

最小值求解

>>fun='exp(x

(1))*(4*x

(1)^2+2*x

(2)^2+4*x

(1)*x

(2)+2*x

(2)+1)';

>>x0=[-11];

>>[x,fval]=fminunc(fun,x0)

Warning:

Gradientmustbeprovidedfortrust-regionalgorithm;

usingline-searchalgorithminstead.

>Infminuncat347

Localminimumfound.

Optimizationcompletedbecausethesizeofthegradientislessthan

thedefaultvalueofthefunctiontolerance.

x=

0.5000-1.0000

fval=

3.6609e-015

10.4最小二乘优化问题

非线性最小二乘问题优化

调用M函数

functionF=myfun(x)

k=1:

10;

F=2+2*k-exp(k*x

(1))-exp(k*x

(2));

>>x0=[0.30.4];

>>[x,resnorm]=lsqnonlin(@myfun,x0)

x=

0.25780.2578

resnorm=

124.3622

非负最小二乘问题优化

>>C=[0.03720.2869

0.68610.7041

0.62330.6245

0.63440.6170];

>>d=[0.8587

0.1781

0.0747

0.8405];

>>[C\d,lsqnonneg(C,d)]%超定房乘除法即最小二乘法拟合法

ans=

-2.57210

3.12510.6947

>>[norm(C*(C\d)-d),norm(C*lsqnonneg(C,d)-d)]

ans=

0.66380.9111

10.5非线性约束问题优化

非线性约束问题优化

>>x0=[-1,1];

>>options=optimset('Algorithm','active-set');

>>[x,fval]=fmincon(@objfun,x0,[],[],[],[],[],[],@confun,options);

>>x,fval

x=

-1.57026.3688

fval=

-0.7620

边界问题(使用上例在命令窗口做优化)。

>>[x,fval]=fmincon(@objfun,x0,[],[],[],[],[00],[],@confun,options);

Localminimumfoundthatsatisfiestheconstraints.

Optimizationcompletedbecausetheobjectivefunctionisnon-decreasingin

feasibledirections,towithinthedefaultvalueofthefunctiontolerance,

andconstraintsweresatisfiedtowithinthedefaultvalueoftheconstrainttolerance.

Activeinequalities(towithinoptions.TolCon=1e-006):

lowerupperineqlinineqnonlin

11

>>x,fval

x=

01.5000

fval=

8.5000

等式约束条件问题

>>x0=[-1,1];

>>[x,fval]=fmincon(@objfun,x0,[],[],[11],[0],[],[],@confun,options);

Localminimumfoundthatsatisfiestheconstraints.

Optimizationcompletedbecausetheobjectivefunctionisnon-decreasingin

feasibledirections,towithinthedefaultvalueofthefunctiontolerance,

andconstraintsweresatisfiedtowithinthedefaultvalueoftheconstrainttolerance.

Activeinequalities(towithinoptions.TolCon=1e-006):

lowerupperineqlinineqnonlin

2

>>x,fval

x=

-3.16233.1623

fval=

0.5778

非线性方程的优化解

>>fzero('sin',3)

ans=

3.1416

>>fsolve('cos(x)+x',0)

ans=

-0.7391

>>cos(ans)

ans=

0.7391

求解方程

>>x0=[-5;-5];

>>[x,fval]=fsolve(@myfun,x0)

x=

0.5671

0.5671

fval=

1.0e-006*

-0.4059

-0.4059

第12章

1、Simulink应用举例

>>sldemo_dblcart1

选择命令菜单Simulationrun,运行此模型,则屏幕上会出现显示双质量—弹簧系统运动状态的动画模型,下图为抓拍的静态图形。

2.创建一个简单模型

先从求解如下的微分方程入手来学习创建简单的Simulink模型。

步骤一:

添加模块

双击Simulation库模块浏览器窗口中的源图标,打开源模块库,如下图所示:

分别把把模块库中的正弦波模块,连续模块库中的积分模块,显示模块库中的示波器模块,拖拽到模型窗口,如下图所示:

步骤二:

连接模块

将三个模块按顺序连接在一起,如下图所示:

步骤三:

运行仿真

双击Scope窗口,运行结果如下所示:

3.创建一个复杂模型

一个生长在罐中的细菌的简单模型。

假设细菌的出生率和当前细菌的总数成正比,且死亡率和当前的总数的平方成正比。

若以x代表当前细菌的总数,则细菌的出生率表示为:

birth_rate=bx

细菌的死亡率表示为:

death_rate=px2

细菌数量的总变化率可表示为出生率与死亡率之差。

于是此系统可表示为如下的微分方程:

假设b=1/h,p=0.5/h,当前细菌的总数为100,计算一个小时后罐中的细菌总数。

步骤一:

添加模块

步骤二:

连接模块

步骤三:

设置仿真参数

步骤四:

运行模型

四、实验总结

本次实习做了matlab在运筹优化问题中的应用,比如,线性优化、二次优化、非线性无约束优化问题、最小二乘优化问题、非线性约束问题优化等,应用了fminbnd,fminsearch,fminunc,options,fsolve等函数,学习到了各种函数的应用,还在各种数学实例中应用了所学内容,更加深入的了解了数学软件在实际应用时的作用。

之后还做了matlab在建模仿真中的应用,尝试了创建简单数学模型,和运行仿真。

在实习过程中,有些地方还是不太了解。

比如创建数学模型。

可能是对数学软件了解的不完备,不能熟练运用,所以在建模中出现了问题。

通过这次的实习,我了解了以前数学建模的步骤,以前只是听说,现在自己亲自做了才了解到是怎样运行的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1