matlab实验3-模型求解

合集下载

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

数学建模实验二:微分方程模型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常见数学模型求解

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实验内容

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实验之线性规划问题求解

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程序设计的基本方法灵活地运用在数学、电路等课程中,重点突出,内容丰富。

同时,注重理论分析与实际动手相结合,以理论指导实践,以实践验证基本原理,旨在提高学生分析问题、解决问题的能力及动手能力,使学生进一步巩固基本理论知识,建立比较全面的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作为一种强大的数学软件,能够帮助我们构建数学模型并求解问题。

本文将详细介绍利用Matlab构建数学模型的方法和求解模型的技巧。

一、数学模型的基本概念数学模型是对真实世界问题的简化和抽象,以数学语言和符号进行表达。

一个好的数学模型应当能够准确地描述问题的本质,并能够提供解决问题的方法。

构建数学模型的基本步骤如下:1. 确定问题的目标和限制条件:首先,我们需要明确问题的目标是什么,以及有哪些限制条件需要考虑。

这些目标和限制条件将在后续的模型构建中起到重要的作用。

2. 建立假设:在构建数学模型时,我们通常需要做一些合理的假设。

这些假设可以简化问题,使得模型更易于建立和求解。

3. 确定数学表达式:根据问题的具体情况,我们需要选择适当的数学表达式来描述问题。

这些数学表达式可以是代数方程、微分方程、最优化问题等。

4. 参数估计:数学模型中通常会涉及到一些未知参数,我们需要通过实验数据或者其他手段来估计这些参数的值。

参数的准确估计对于模型的求解和结果的可靠性至关重要。

二、利用Matlab构建数学模型的方法在利用Matlab构建数学模型时,我们通常可以使用以下方法:1. 利用符号计算工具箱:Matlab中提供了丰富的符号计算工具箱,可以帮助我们处理复杂的代数方程和符号表达式。

通过符号计算工具箱,我们可以方便地推导出数学模型的方程式。

2. 利用数值计算工具箱:Matlab中提供了强大的数值计算工具箱,可以帮助我们求解各种数学问题。

例如,求解微分方程的常用方法有欧拉法、龙格-库塔法等,都可以在Matlab中轻松实现。

3. 利用优化工具箱:在一些优化问题中,我们需要求解最优解。

Matlab的优化工具箱提供了多种求解最优化问题的算法,如线性规划、非线性规划等。

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求解状态空间模型

实验四 用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);(注:文档可能无法思考全面,请浏览后下载,供参考。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f=f(:)'; y(k + 1,:) =y(k,:) +h*f; %对于所取的点x迭代计算y值
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页
相关文档
最新文档