matlab实验3-模型求解
数学建模实验二:微分方程模型Matlab求解与分析

数学建模实验二:微分方程模型Matlab求解与分析实验二:微分方程模型Matlab 求解与分析一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [2] 熟悉MATLAB 软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程;[4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程(组)的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
(1)微分方程例1 求解一阶微分方程21y dxdy+= (1) 求通解输入:dsolve('Dy=1+y^2')输出:ans =tan(t+C1)(2)求特解输入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值为1,自变量为x 输出:ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x'''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) (2)微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
MATLAB常见数学模型求解

一维插值求解函数:interp1 二维插值:二维插值点坐标是三维,插值目的 是通过已知点求未知点函数值。 求解函数为:interp2
拟合
多项式拟合 Polyfit 任意函数拟合 lsqcurvefit
二、积分
1.数值积分 i)一元数值积分:quad quadl ii)二元数值积分:dblquad quad2dggen 2. 符号积分 int
六、概率统计模型
回归分析:regress 方差分析: 1)单因素方差等的概率 2)双因素方差分析:anova2
MATLAB 常见数学模型求解
目录
1 2 3 4 5 6
插值与拟合 积分 微分方程模型 方程(组)求解 优化模型 概率统计模型
一、插值与拟合
一维插值问题的提法:
已知 n 1个节点 ( x j , y j ), j 0,1,, n , 其中 x j 互不 相同,不妨设 a x0 x1 xn b ,求任一插 值点 x ( x j ) 处的插值 y , ( x j , y j ) 可以看成由某 个函数 y g (x ) 产生的, g 的解析表达式可能十分 复杂,或不存在封闭形式,也可以未知。
三、微分方程模型求解
常微分方程数值解: ode23、ode45等
微分方程符号解(解析解):dsolve
四、方程(组)求解
线性方程组AX=b求解:x=A\b 非线性方程求解:fzero 非线性方程组求解:fsolve 代数方程符号解:solve
五、优化模型求解
线性规划:linprog 非线性规划:fmincon 整数规划:利用LINDO、LINGO求解
matlab实验内容

2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。
MATLAB实验之线性规划问题求解

封面作者:PanHongliang仅供个人学习桂林电子科技大学数学与计算科学学院实验报告实验室:实验日期:年月日x附录Ⅱ综合性、设计性实验报告格式桂林电子科技大学数学与计算科学学院综合性、设计性实验报告版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Users may use the contents or services of thisarticle for personal study, research or appreciation, andother non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
MATLAB程序设计实验指导书

MATLAB程序设计实验指导书MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能满足所有的计算需求。
在美国及其他发达国家的理工科院校里,MATLAB已经作为一门必修的课程;在科研院所、大型公司或企业的工程计算部门,MATLAB也是最普遍的计算工具之一。
有鉴于此,我院开设了《MATLAB程序设计》这门课程,它需要一定的理论基础,同时又具有很强的实践性。
如何加强理论课程的学习、加深学生对本课程中的基本理论知识及基本方法的理解,如何培养学生实践动手能力是教学的当务之急。
而MATLAB程序设计实验课程就是一种重要的教学手段和途径。
实验将MATLAB程序设计的基本方法灵活地运用在数学、电路等课程中,重点突出,内容丰富。
同时,注重理论分析与实际动手相结合,以理论指导实践,以实践验证基本原理,旨在提高学生分析问题、解决问题的能力及动手能力,使学生进一步巩固基本理论知识,建立比较全面的MATLAB程序设计的概念。
实验注意事项1、实验系统接通电源前请确保电源插座接地良好。
2、完成实验后请确保关闭电脑电源及插座电源。
实验一 矩阵及其运算一、实验目的1、熟悉MATLAB 工作环境2、掌握矩阵和数组的创建、寻访和运算 二、实验内容验证欧姆定律:iur ,其中i u r , ,分别是电阻(欧姆)、电压(伏特)、电流(安培)。
已知u=[0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41],i=[0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0.257, 0.308, 0.345]。
三、实验器材PC 机 (装有 MA TLAB 软件 ) 1台 四、实验原理 4.1 Desktop 简介MATLAB R2006a 版的Desktop 操作桌面,是一个高度集成的MATLAB 工作界面。
利用Matlab构建数学模型及求解方法详解

利用Matlab构建数学模型及求解方法详解引言数学模型在现代科学研究和实际应用中起着重要的作用。
利用数学模型,我们可以准确地描述问题,分析问题,并提供解决问题的方法。
而Matlab作为一种强大的数学软件,能够帮助我们构建数学模型并求解问题。
本文将详细介绍利用Matlab构建数学模型的方法和求解模型的技巧。
一、数学模型的基本概念数学模型是对真实世界问题的简化和抽象,以数学语言和符号进行表达。
一个好的数学模型应当能够准确地描述问题的本质,并能够提供解决问题的方法。
构建数学模型的基本步骤如下:1. 确定问题的目标和限制条件:首先,我们需要明确问题的目标是什么,以及有哪些限制条件需要考虑。
这些目标和限制条件将在后续的模型构建中起到重要的作用。
2. 建立假设:在构建数学模型时,我们通常需要做一些合理的假设。
这些假设可以简化问题,使得模型更易于建立和求解。
3. 确定数学表达式:根据问题的具体情况,我们需要选择适当的数学表达式来描述问题。
这些数学表达式可以是代数方程、微分方程、最优化问题等。
4. 参数估计:数学模型中通常会涉及到一些未知参数,我们需要通过实验数据或者其他手段来估计这些参数的值。
参数的准确估计对于模型的求解和结果的可靠性至关重要。
二、利用Matlab构建数学模型的方法在利用Matlab构建数学模型时,我们通常可以使用以下方法:1. 利用符号计算工具箱:Matlab中提供了丰富的符号计算工具箱,可以帮助我们处理复杂的代数方程和符号表达式。
通过符号计算工具箱,我们可以方便地推导出数学模型的方程式。
2. 利用数值计算工具箱:Matlab中提供了强大的数值计算工具箱,可以帮助我们求解各种数学问题。
例如,求解微分方程的常用方法有欧拉法、龙格-库塔法等,都可以在Matlab中轻松实现。
3. 利用优化工具箱:在一些优化问题中,我们需要求解最优解。
Matlab的优化工具箱提供了多种求解最优化问题的算法,如线性规划、非线性规划等。
Matlab在数学建模中的应用(模型求解)

qk,t与 Q(k,t)间的绝对误差
e Qt qt
e=Q-q(1:length(Q));
相对误差
E
e
Qt
E=e./Q;
整理一下
停车场问题 (MCM 87B题)
在新英格兰 地区一个镇上,位 于街角处的一个 停车场的场主要 设计停车场的安 排,即设计”在地 上的线应怎样划 法”。这个停车场 是长方形的,长 200英尺,宽100 英尺。
怎样用matlab求解这个模型呢??
分析:对如上面的线形规划问题,可用linprog()函数求解。
模型
Max S 5x 6y s.t. 2x 3y 1400
x 6y 2400 4x 2y 2000 x 0, y 0, x, y z
对应matlab语句
f=[-5,-6]; A=[2 3 b=[1400
n
for d=2:length(Q);
Q1n Qi
Q1=cumQs(udm)=(QQ)(d-1)+Q(d);
i 1
得到
end
1 2
Q12
Q11 ,1
1 2
Q13
Q12 ,1
B ...............................
...............................
甲、乙产品各多少件),使获得利润最大,并求出最大利
润。
品 原材料 能源消耗 劳动力 利润
种 (千克) (百元) (人) (千元)
甲2
1
4
5
乙3
6
2
6
解:设安排生产甲产品x 件,乙产品y 件,相应的利 润为S。则此问题的数学模型为:
Max S 5x 6 y s.t. 2x 3y 1400
实验四用MATLAB求解状态空间模型

实验四 用MATLAB 求解状态空间模型1、实验设备MATLAB 软件2、实验目的① 学习线性定常连续系统的状态空间模型求解、掌握MATLAB 中关于求解该模型的主要函数;② 通过编程、上机调试,进行求解。
3、实验原理说明Matlab 提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有:初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应数值计算函数lsim()和符号计算函数sym_lsim()。
数值计算问题可由基本的Matlab 函数完成,符号计算问题则需要用到Matlab 的符号工具箱。
4、实验步骤① 根据所给状态空间模型,依据线性定常连续系统状态方程的解理论,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:试在Matlab 中计算如下系统在[0,5s]的初始状态响应,并求解初始状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[y,t,x]=initial(sys,x0,0:5);plot(t,x)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x习题2:试在Matlab 中计算如下系统在[0,10s]内周期为3s 的单位方波输入下的状态响应。
并计算该系统的单位阶跃状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[0; 1]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[u t]=gensig('square',3,10,0.1)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x[y,t,x] = lsim(sys,u,t,x0)plot(t,u,t,x);(注:文档可能无法思考全面,请浏览后下载,供参考。
利用MATLAB对状态空间模型进行分析

实验2 利用MATLAB 对状态空间模型进行分析2.1 实验设备 同实验1。
2.2 实验目的1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、通过编程、上机调试,掌握系统运动的分析方法。
2.3 实验原理说明给定系统的状态空间模型:)()()()()()(t t t t t t Du Cx y Bu Ax x+=+=& (2.1)设系统的初始时刻,初始状态为,则系统状态方程的解为)0(x 00=t ∫∫−−+=+=tt t tt t e e eee t 0)(0d )()0(d )()0()(ττττττBu x Bu x x A A A A A (2.2)输出为)(d )()0()(0)(t e e t tt t Du Bu C x C y A A ++=∫−τττ (2.3))(t x 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响;第二部分是由控制输入引起的,反映了输入对系统状态的影响。
输出由三部分组成。
第一部分是当外部输入等于零时,由初始状态引起的,故为系统的零输入响应;第二部分是当初始状态为零时,由外部输入引起的,故为系统的外部输入响应;第三部分是系统输入的直接传输部分。
)(t y )(0t x )(0t x MATLAB 函数:函数initial(A,B,C,D,x0)可以得到系统输出对初始状态x0的时间响应; 函数step(A,B,C,D)给出了系统的单位阶跃响应曲线; 函数impulse(A,B,C,D) 给出了系统的单位脉冲响应曲线;函数 [y,T,x]=lsim(sys,u,t,x0) 给出了一个状态空间模型对任意输入的响应,其中的sys 表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到,x0是初始状态。
u 2.4 实验步骤1、构建系统的状态空间模型,采用MATLA 的m-文件编程;2、求取系统的状态和输出响应;3、在MATLA 界面下调试程序,并检查是否运行正确。
第7讲MATLAB连续模型求解方法-MathWorks

第7讲 MATLAB连续模型求解方法作者:卓金武, MathWorks 中国连续模型是指模型是连续函数的一类模型总称,具体建模方法主要是微分方程建模。
微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题。
把形形色色的实际问题化成微分方程的定解问题,大体上可以按以下几步:1.根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。
2.找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。
3.运用这些规律列出方程和定解条件。
MATLAB 在微分模型建模过程中的主要作用是求解微分方程的解析解,将微分方程转化为一般的函数形式。
另外,微分方程建模,一定要做数值模拟,即根据方程的表达形式,给出变量间关系的图形,做数值模拟也需要用MATLAB 来实现。
微分方程的形式多样,微分方程的求解也是根据不同的形式采用不同的方法,在建模比赛中,常用的方法有三种:1.用dsolve 求解常见的微分方程解析解2.用ODE 家族的求解器求解数值解3.使用专用的求解器求解1. 常规微分方程的求解微分方程在MATLAB 中固定的表达方式,这些基本的表达方式如下表所示:对于通常的微分方程,一般需要先求解析解,那么dsolve 是首先考虑的求解器,因为dsolve 能够求解解析解,其具体的用法如下:[实例]求微分方程xy'+y-e^x=0 在初始条件y(1)=2e 下的特解,并画出解函数的图形.求解本问题的Matlab 程序为:syms x yy=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x')ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x*exp (1) (Matlab格式),即y=(e+e^x)/x ,此函数的图形如图1:图1y关于x的函数图象2. ODE 家族求解器如果微分方程的解析形式求解不出来,那么退而求其次的办法是求解数值解,那么这个时候就需要用ODE 家族的求解器求解微分方程的数值解啦。
matlab数学建模方法与实践

matlab数学建模方法与实践Matlab是一种功能强大的数学软件,被广泛应用于数学建模领域。
在数学建模过程中,Matlab提供了一套完整的工具和函数,帮助研究人员进行模型建立、模型求解和模型分析。
以下是关于Matlab数学建模方法与实践的详细内容。
首先,Matlab数学建模的第一步是建立数学模型。
数学模型是对实际问题的抽象和归纳,并用数学语言描述出来。
Matlab提供了丰富的数学建模函数和工具箱,可以帮助研究人员快速建立各种数学模型。
例如,可以使用符号计算功能进行代数方程的建立,使用数值方法求解微分方程等。
其次,Matlab数学建模的第二步是进行模型求解。
Matlab可以根据建立的数学模型,使用不同的求解方法进行模型求解。
例如,可以使用线性代数方法求解线性方程组,使用优化方法求解最优化问题,使用数值积分方法求解微分方程等。
Matlab中提供了丰富的数值计算和优化函数,可以很方便地进行模型求解。
然后,Matlab数学建模的第三步是进行模型分析和评估。
模型建立和求解后,需要对模型结果进行分析和评估。
Matlab提供了绘图、统计分析、数据可视化等功能,可以对模型结果进行可视化和统计分析。
例如,可以使用绘图函数将模型结果绘制成曲线或图表,以便更直观地理解模型结果;可以使用统计分析函数对模型结果进行相关性分析或预测评估等。
另外,Matlab还具备模型仿真和验证的能力。
在建立数学模型之后,可以使用Matlab中的仿真工具对模型进行验证和测试。
仿真可以模拟实际系统的行为,并进行各种场景测试和参数敏感性分析,从而评估模型的可靠性和准确性。
Matlab提供了Simulink工具,可以方便地进行系统级仿真和模型验证。
此外,Matlab还支持与其他工具的集成和数据交换,使得数学建模过程更加灵活和高效。
例如,可以将Matlab与其他CAD、CAE软件进行集成,进行多领域联合仿真;可以将Matlab与数据库进行数据交换,实现数据驱动的数学建模。
MATLAB实验报告(word文档良心出品)

《MATLAB/Simulink与控制系统仿真》实验报告专业:班级:学号:姓名:指导教师:实验1、MATLAB/Simulink 仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink 仿真的基本知识;2、熟练应用MATLAB 软件建立控制系统模型。
二、实验设备电脑一台;MATLAB 仿真软件一个 三、实验内容1、熟悉MATLAB/Smulink 仿真软件。
2、一个单位负反馈二阶系统,其开环传递函数为210()3G s s s=+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图 1系统结构图图 2示波器输出结果图3、某控制系统的传递函数为()()()1()Y s G s X s G s =+,其中250()23s G s s s+=+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MA TLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图 3系统结构图 图 4 示波器输出结果图图 5 工作空间中仿真结果图形化输出4、一闭环系统结构如图所示,其中系统前向通道的传递函数为320.520()0.11220s G s s s s s+=+++g ,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N 表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
图 6 系统结构图图 7 示波器输出结果实验2 MATLAB/Simulink 在控制系统建模中的应用一、实验目的1、掌握MATLAB/Simulink 在控制系统建模中的应用; 二、实验设备电脑一台;MA TLAB 仿真软件一个 三、实验内容1、给定RLC 网络如图所示。
实验三-二阶系统matlab仿真(dg)

利用simulink进行仿真的步骤1.双击桌面图标打开Matlab软件;2.在Command Window命令行>>后输入simulink并回车或点击窗口上部图标直接进入simulink界面;3.在simulink界面点击就可以在Model上建立系统的仿真模型了;4.在左面的器件模型库中找到所需模型,用鼠标将器件模型拖到建立的Model上,然后用鼠标将它们用连线连起来,系统的仿真模型就建立起来了;5.点击界面上部的图标‘’进行仿真,双击示波器就可以看到仿真结果。
实验要用到的元件模型的图标及解释如下:阶跃信号:在simulink-source中可以找到,双击可以设定阶跃时间。
sum:在simulink-math operations中可以找到,双击可以改变器属性以实现信号相加还是相减;比例环节:在simulink-math operations中可以找到,双击可以改变器属性以改变比例系数;积分环节:在simulink-continues中可以找到;传函的一般数学模型表达形式:在simulink-continues中可以找到,双击可以对传递函数进行更改(通过设定系数)。
示波器:在simulink-sinks中可以找到。
传递函数的Matlab定义传递函数以多项式和的形式(一般形式、标准形式)给出10111011()m m m m n n n n b s b s b s b G s a s a s a s a ----+++=+++ 用如下语句可以定义传递函数G(s)>> num=[b 0,b 1,b 2…b m ] ;只写各项的系数>> den=[a 0,a 1,a 2,…a n ] ;只写各项的系数>> g=tf(num,den)或>>g=tf([b0,b1,b2…bm],[a0,a1,a2,…an])例:用Matlab 定义二阶系统2223()(0.6,3)2*0.6*33n G s s s ζω===++并用Matlab 语句绘制此二阶系统在单位阶跃信号输入下的输出曲线c(t)(即单位阶跃响应)。
Matlab数学建模实验报告

数学实验报告实验序号:实验一日期:实验序号:实验二日期:实验序号: 实验三 日期:班级 姓名 学号实验 名称架设电缆的总费用问题背景描述:一条河宽1km ,两岸各有一个城镇A 与B ,A 与B 的直线距离为4km ,今需铺设一条电缆连接A 于B ,已知地下电缆的铺设费用是2万元/km ,水下电缆的修建费用是4万元/km 。
实验目的:通过建立适当的模型,算出如何铺设电缆可以使总花费最少。
数学模型:如图中所示,A-C-D-B 为铺设的电缆路线,我们就讨论a=30度,AE (A 到河岸的距离)=0.5km ,则图中:DG=4-AC cos b -1/tan c ; BG=0.5km AC=AE/sin bCD=EF/sin c=1/sin c BD=BG D 22G则有总的花费为:W=2*(AC+BD )+4*CD ;我们所要做的就是求最优解。
实验所用软件及版本:Matlab 7.10.0实验序号: 实验四 日期:班级 姓名 学号实验 名称慢跑者与狗问题背景描述:一个慢跑者在平面上沿曲线25y x 22=+以恒定的速度v 从(5,0)起逆时钟方向跑步,一直狗从原点一恒定的速度w ,跑向慢跑者,在运动的过程中狗的运动方向始终指向慢跑者。
实验目的:用matlab 编程讨论不同的v 和w 是的追逐过程。
数学模型:人的坐标为(manx,many ),狗的坐标为(dogx,dogy ),则时间t 时刻的人的坐标可以表示为manx=R*cos(v*t/R); many=R*sin(v*t/R);sin θ=| (many-dogy)/sqrt((manx-dogx)^2+(many-dogy)^2)|;cos θ=| (manx-dogx)/sqrt((manx-dogx)^2+(many-dogy)^2)|;则可知在t+dt 时刻狗的坐标可以表示为:dogx=dogx(+/-)w* cos θ*dt; dogy=dogy(+/-)w* sin θ*dt; (如果manx-dogx>0则为正号,反之则为负号)实验所用软件及版本:Matlab 7.10.0实验序号:实验五日期:班级姓名学号两圆的相对滚动实验名称问题背景描述:有一个小圆在大圆内沿着大圆的圆周无滑动的滚动。
matlab实验-投资收益题和某厂生产两种饮料

最大收益问题1. 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过800箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每100箱甲饮料获利可增加1万元,问应否改变生产计划.解:模型假设:设生产甲饮料百箱,生产乙饮料百箱,获利最大为z.符号说明:为生产甲饮料的百箱数为生产乙饮料的百箱数z为生产甲饮料x百箱和生产乙饮料y百箱数获利最大值.建立模型:目标函数:原料供应:工人加工:产量限制:非负约束:得出模型为:s,t(3).模型求解①编写M文件,代码如下:c=[-10 -9];A=[6 5;10 20;1 0];b=[60;150;8];Aeq=[]; beq=[];vlb=[0;0]; vub=[];[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)运行结果:结果分析:甲饮料生产642箱,乙饮料生产428箱时,获利最大为102.8万元。
②.用LINGO求解模型,代码如下:model:title:生产计划;max=10*X1+9*X2;6*X1+5*X2<60;10*X1+20*X2<150;X1<8;end运行结果:结果分析:从计算结果知当甲饮料生产642箱,乙饮料生产428箱时,获利最大为102.8万元。
灵敏度分析:增加原料1千克时可增加利润1.57万元,因此投资0.8万元可增加原料1千克时应作这项投资。
每100箱甲饮料获利可增加1万元,则的系数变为11,不在的允许范围(10.8~4.5)内,因此应改变生产计划。
《自动控制原理》Matlab求解控制系统数学模型实验

《自动控制原理》Matlab求解控制系统数学模型实验一、实验目的(1)熟练运用matlab软件,求解控制系统数学模型(2)掌握传递函数在matlab中的表达方法(3)掌握matlab求解拉氏变换和反变换(4)掌握matlab求系统极值点和零点判断系统稳定性二、实验仪器装配Matlab7.0的计算机三、实验原理传递函数在matlab中的表达方法控制系统的传递函数模型为:在MATLAB中,分子/分母多项式通过其系数行向量表示,即:num = [b0 b1 … bm]den = [a0 a1 … an]此时,系统的传递函数模型用tf函数生成,句法为:sys=tf(num, den)其中,sys为系统传递函数。
如:num = [1 5 0 2]; den = [2 3 15 8];则:sys=tf(num, den)输出为:Transfer function:传递函数的转换[num,den]=zp2tf(z,p,k)[z,p,k]=tf2zp(num,den)实际系统往往由多个环节通过串联、并联及反馈方式互连构成。
MATLAB提供的三个用于计算串联、并联及反馈连接形成的新系统模型的函数。
四、实验内容及步骤2、用MATLAB展求拉氏变换和反变换在MATLAB中,多项式通过系数行向量表示,系数按降序排列如要输入多项式:x4-12x3+25x+126>> p=[1 -12 0 25 126]-p = 1 -12 0 25 1263、连续系统稳定性分析的MATLAB函数roots函数:求多项式的根句法: r=roots(p)其中,r为由多项式根组成的列向量。
➢pole函数:计算系统的极点句法: p=pole(sys)其中,p为由极点组成的列向量zero函数:计算系统的零点句法: r=zero(sys) 或 [z, k]=zero(sys)其中,r为由多项式根组成的列向量。
k为零极点增益模型之增益pzmap函数:绘制零极点分布图句法: pzmap(sys) 或 [p,z] = pzmap(sys)五、实验原始数据记录与数据处理在MATLAB中,多项式通过系数行向量表示,系数按降序排列如要输入多项式:x4-12x3+25x+126>> p=[1 -12 0 25 126]-p = 1 -12 0 25 126六、实验结果与分析讨论七、结论掌握 MATLAB命令窗口的基本操作;掌握MATLAB 建立控制系统数学模型的命令及模型相互转换的方法;掌握了使用各种函数命令建立控制系统数学模型.八、实验心得体会(可略)通过该试验我们熟悉 MATLAB 实验环境,掌握 MATLAB命令窗口的基本操作;掌握MATLAB 建立控制系统数学模型的命令及模型相互转换的方法;掌握了使用各种函数命令建立控制系统数学模型:完成实验的范例题和自我实践,并记录结果;编写M文件程序,完成简单连接的模型等效传递函数,并求出相应的零极点。
模型的求解及对解的分析

3 模型的求解及解的分析(四号、黑体、标题1)3.1 模型的最优解(小四号、黑体、标题2)此模型属于简单的线性规划问题,就约束变量而言,只有两个约束变量所以对于求解我们可以采用多种求解方法,解决此线性规划问题我们一共可以采用单纯形表、Mathlab、lingo、程序语言、图解法。
为了在课程设计中更好的掌握数学软件的应用,更好的掌握单纯形表图解法快速解决简单问题,所以我们在求解这个模型时首先采用了单纯形表求得最优解,再分别运用Mathlab与lingo软件进行了校对,最后再用图解法做了对比。
一,单纯形表求解:求得最优解为:x1=4,x2=2. max=14 二,Mathlab求解:Find x that minimizesf(x) = –2x1 – 3x2,subject tox1 + 2x2≤ 8 4x1 ≤16 4x2 ≤ 120 ≤ x1, 0 ≤ x2,.First, enter the coefficients 在命令窗口输入如下命令: f = [-2; -3]; A = [1 2 4 0 0 4]; b = [8;16; 12]; lb = zeros(2,1);Next, call a linear programming routine.[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);Entering x, lambda.ineqlin, and lambda.lower gets x = 4.0000 2.0000最优解x1=4,x2=2.MAX=14 三,lingo 求解:max f (x )=2x 1 +3x 2x 1+2x 2≤8 4x 1≤16 4x 2≤12Stx1≥0,x2≥0,输入格式如下:max 2x1+3x2stx1+2x2<104x1<164x2<12x1>0x2>0end最优解:x1=4,x2=2.max=14四,图解法:由图解法得目标函数在x1=4,x2=2,顶点时取得最优解,MAX=14五,解的实际含义:通过不同的求解方法,得到最优解,X1=4,X2=2,MAX=14说明在生产原材料既定的情况下,第一种产品生产4份,第二种产品生产2份可使得获利最大。
MATLAB求解数学模型的基本知识

MATLAB求解数学模型的基本知识目录1. 熟悉MATLAB软件运算环境 (2)(1)运算环境 (2)(2)怎样定义变量 (2)(3)基本运算 (3)2. MATLAB中的基本语法 (4)(1)矩阵的创建与运算 (4)(2)for循环语句 (4)(3)if判定语句 (4)3. 函数创建与运行 (6)4. 数据的读写 (8)5. 怎样实现函数间数据的传递 (9)6. 模型求解(方程组求解) (10)(1)线性方程组 (10)(2)非线性方程组 (10)7. 实例——传热单元数法预测换热器出口参数 (12)1. 熟悉MATLAB软件运算环境(1)运算环境MATLAB帮助文档MATLAB函数的用法在help文档中有详细介绍,看不懂的上网搜集资料。
(2)怎样定义变量例:syms x y;x=1;y=exp(x);disp(y);(3)基本运算加减乘除、指数函数、幂函数例:y=x+1;y=x*1;y=1/x;y=exp(x);y=x^(-0.5);2. MATLAB中的基本语法MATLAB语法与C语言相近,同时它开发了C语言中没有的大量数学函数,便于科研工作的研究。
(1)矩阵的创建与运算例:A=[1,2,3;10,20,30];A(2,3);(2)for循环语句例:X=zeros(1,10);%定义一个1行,10列的零矩阵,矩阵名为Xfor i=1:1:10X(1,i)=i;%给矩阵赋值end(3)if判定语句例:syms x y;x=1;y=3;if x==ydisp('两者相等!'); elsedisp('两者不相等!'); end3. 函数创建与运行MATLAB与C语言一样,可以创建函数文件。
函数可将复杂程序简化,同时可以重复调用,其基本原理与C一致。
保存之后,在工作代码区敲入ds(45),即可将45℃时湿空气的饱和含湿量求解出来。
注意:M文件的函数名和文件名必须完全一致,否则无法运行。
用MATLAB求解线性规划

模型 1 固定风险水平,优化收益
目标函数: 约束条件:
n 1
Q=MAX (ri pi )xi
i 1
qi xi ≤a
M
(1 p )x M , ii
xi≥ 0
i=0,1,…n
b.若投资者希望总盈利至少达到水平 k 以上,在风险最小的 情况下寻找相应的投资组合。
模型 2 固定盈利水平,极小化风险
从 a=0 开始,以步长△a=0.001对下列组合投资模型求解, 并绘图表示 a 与目 标函数最优值 Q 的对应关系:
max s.t.
Q = (-0.05, -0.27, -0.19, -0.185, -0.185) (x0,x1,x2,x3,x4) T
x0 + 1.01x1 + 1.02x2 +1.045x3 +1.065x4 =1
目标函数: R= min{max{ qixi}} 约束条件:
n
(r i
p )x
i
i
≥k,
i0
(1 pi )xi M , xi≥ 0
i=0,1,…n
c.投资者在权衡资产风险和预期收益两方面时,希望选择 一个令自己满意的投资组合。
因此对风险、收益赋予权重 s(0<s≤1),s 称为投资偏好 系数.
2.当投资越分散时,投资者承担的风险越小,这与题意一致。即: 冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。
3.曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最 小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。
4.在a=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长
符号规定:
Si
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
end
outy=y;
outx=x; %plot(x,y)%画出方程解的函数图
2、不动点迭代法求解非线性方程
迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得 到满足精度要求的结果。
2、实验内容
2.1 常微分方程函数
ode45 ode23 ode113 ode15s ode23s ode23t ode23tb
格式 [x,y]=ode45(′ fun′, [x0,xn], y0,option]
说明: 适用于求解一阶常微分方程组 fun定义微分方程组的函数文件名 [x0,xn]求解区域 y0初始条件向量 option可选参数,由ODESET函数设置,比较复杂 x输出自变量向量,y输出[y, y ′, y ″,..]
% 用ode23 ode45 ode113解多阶微分方程 clear,clc [x23,y23]=ode23('myfun03',[1,10],[1 10 30]); [x45,y45]=ode45('myfun03',[1,10],[1 10 30]); [x113,y113]=ode113('myfun03',[1,10],[1 10 30]); figure(1) %第一幅图 plot(x23,y23(:,1),'*r',x45,y45(:,1),'ob',x113,y113(:,1),'+g') %作出各种函数所得结果 legend('ode23解','ode45解','ode113解') title('ODE函数求解结果') figure(2) plot(x45,y45) %以ode45为例作出函数以及其各阶导数图 legend('y','y一阶导数','y两阶导数') title('y,y一阶导数,y二阶导数函数图')
若对任意 x0 [a,b],由上述迭代得序列{xk},有极限
(x*) ,则f(x*)=0 ,称x*为 (k=0,1,……)
(x)的一个不动点。
则称迭代过程收敛,且x*= (x*)为 (x)的不动点。
xk1(xk)
lk imxk x*
function [root,n]=StablePoint(f,x0,eps) if(nargin==2)
PointNum=100;
end if nargin<4 %y0默认值为0
y0=0;
end h=(xt-x0)/PointNum;%计算步长h x=x0+[0:PointNum]'*h;%自变量数组 y(1,:) = y0(:)';%将输入存为行向量,输入为列向量形式
for k = 1:PointNum f=feval(fun,x(k),y(k,:));%计算f(x,y)在每个迭代点的值
3、 上机实践
3.1编程题 1、欧拉数值算法(差分法)求解常微分方程 差分法就是用差商近似代替微商,即
Q dQ t dt
代入微分方程得到:
Q(t t)Q(t) f (Q,t) t
Q(t t) Q(t) f (Q,t)t
对于等间隔节点
ttn1tnh tn1 tnh
可以得到:
n=0,1,2
tn Q精确值 Q近似值
题:用MATLAB函数ode23,ode45,ode113,求解多阶常微分方程:
x3 d3y2d2y3dy3e2x dx3 dx2 dx
y(1)1,y'(1)10,y"(1)30,x[1,10]
dy1
dx
y2
dy2 dx
y3
dy3 dx
2 x3
y3
3 x3
y2
3e2x x3
dY dx
d dx
多步法;Adams算法;高低精度均可到 10- 计算时间比 ode45 短法;Gear’s 反向数值微分;精度中等 若 ode45 失效时,可尝试使用
单步法;2 阶Rosebrock 算法;低精度
当精度较低时,计算时间比 ode15s 短
梯形算法;低精度
当精度较低时,计算时间比 ode15s短
t0
t1
t2 …. tn ….
Q(t0) Q(t1) Q(t2) …. Q(tn) ….
Q0
Q1 Q2 …. Qn ….
在tn节点上,微分方程可以写为
Q ( tn 1 ) Q ( tn ) fQ ( tn ),tn h
作如下近似:
Qn Q(tn)
则得到欧拉解法递推公式的一般形式:
Q n 1Q nf(Q n,tn)h
reps=2 其余参数与单因素方差分析参数相似。
3、概率统计图
(1) 最小二乘拟合直线 函数 lsline 格式 lsline %最小二乘拟合直线
h = lsline %h为直线的句柄
(2) 绘制正态分布概率图形
函数 normplot
格式 normplot(X) %若X为向量,则显示正态分布概率图形,若X为矩阵,则显示每一列的正态 分布概率图形。
h = normplot(X) %返回绘图直线的句柄
说明 样本数据在图中用“+”显示;如果数据来自正态分布,则图形显示为直线,而其它分布可 能在图中产生弯曲。
(3)绘制威布尔(Weibull)概率图形 函数 weibplot 格式 weibplot(X) %若X为向量,则显示威布尔(Weibull)概率图形,若X为矩阵,则显示每一列的威布尔 概率图形。 h = weibplot(X) %返回绘图直线的柄 说明 绘制威布尔(Weibull)概率图形的目的是用图解法估计来自威布尔分布的数据X,如果X是威布尔分布 数据,其图形是直线的,否则图形中可能产生弯曲。
2、 双因素方差分析 函数 anova2 格式 p = anova2(X,reps)
p = anova2(X,reps,'displayopt')
[p,table] = anova2(…)
[p,table,stats] = anova2(…) 说明 执行平衡的双因素试验的方差分析来比较X中两个或多个列(行)的均值,不同列的数据表示因素A的 差异,不同行的数据表示另一因素B的差异。如果行列对有多于一个的观察点,则变量reps指出每一单元观 察点的数目,每一单元包含reps行,如:
函数 ode45
ode23
ode113
ode23t ode15s ode23s
ode23tb
ODE类型 非刚性
非刚性
非刚性
适度刚性 刚性 刚性
刚性
特点
说明
单步法;4,5 阶 R-K 方法;累计截断误差 大部分场合的首选方法 为 (△x)3
单步法;2,3 阶 R-K 方法;累计截断误差 使用于精度较低的情形 为 (△x)3
An1 An2 An3 Ann xn Bn
格式 solve('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')
Matlab非线性方程组求解
格式 X=fsolve(FUN,X0)
2.4 概率统计函数
单因素方差分析 函数 anova1 格式 p = anova1(X) %X的各列为彼此独立的样本观察值,其元素个数相同,p为各列均值相 等的概率值,若p值接近于0,则原假设受到怀疑,说明至少有一列均值与其余列均值有明显不同。 p = anova1(X,group) %X和group为向量且group要与X对应 p = anova1(X,group,'displayopt') % displayopt=on/off表示显示与隐藏方差分析表图和盒图 [p,table] = anova1(…) % table为方差分析表 [p,table,stats] = anova1(…) % stats为分析结果的构造 说明 anova1函数产生两个图:标准的方差分析表图和盒图。
输入
x1,, N0
k1,2,,N0
计算 xk1 x gx1
kN0
xx1
否
x1x
是 输出 k , x
输出
迭代 N0次还没有达到
精度要求信息
将连续函数方程f(x)=0改写为等价形式:x= (x) 其中 (x)也是连续函数,称为迭代函数。
不动点:若x*满足f(x*)=0,则x*= (x*);反之,若x*= 不动点迭代:
(4)样本的概率图形 函数 capaplot 格式 p = capaplot(data,specs) %data为所给样本数据,specs指定范围,p表示在指定范围内的概率。 说明 该函数返回来自于估计分布的随机变量落在指定范围内的概率
(5)附加有正态密度曲线的直方图 函数 histfit 格式 histfit(data) %data为向量,返回直方图 和正态曲线。 histfit(data,nbins) % nbins指定bar的个数, 缺省时为data中数据个数的平方根。
eps=1.0e-4; end tol=1; root=x0; n=0; while(tol>eps)
n=n+1; r1=root; root=subs(sym(f),findsym(sym(f)),r1)+r1; tol=abs(root-r1); end
3.2上机例题
1、常微分方程函数 275页,例题7-47 273-274页,例题7-45/46 2、(非)线性方程组求解例题 246页,例7-17/18 265页,例7-39 3、偏微分方程求解函数 338页,例题 4、概率统计函数 307页,例9-21;308页,例9-22;309页,例9-23 310页