数学实验与MATLAB(周晓阳)-赛才数学建模
MATLAB数学建模方法与实践

最后一部分是实践项目,这一部分提供了几个完整的建模案例,从问题定义 到模型建立,再到模型的实现和验证,都有详细的解释和步骤。这不仅帮助读者 将所学知识应用到实际问题中,也提供了他们实践和探索的机会。
总结来说,《MATLAB数学建模方法与实践》这本书的目录结构是全面而系统 的,从基础到高级,从理论到实践,都有详细的介绍。这样的设计使得这本书既 适合作为初学者的入门指南,也适合作为进阶者的参考资料。对于需要学习 MATLAB进行数学建模的人来说,这本书无疑是一本极好的教材。
精彩摘录
《MATLAB数学建模方法与实践》是一本深入浅出地介绍MATLAB在数学建模方 面的应用的书。它不仅涵盖了MATLAB的基础知识,还通过丰富的实例和实践,让 读者深入了解如何使用MATLAB解决各种实际问题。这本书中的精彩摘录,更是让 人对MATLAB的强大功能有了更深刻的认识。
“MATLAB是一种功能强大的数学软件,它能够进行各种数值计算、数据分析、 可视化以及算法开发。这些功能使得MATLAB成为数学建模领域的翘楚。”这句话 简洁明了地概括了MATLAB的核心优势,即其强大的计算和分析能力,以及在算法 开发方面的卓越表现。
当然,阅读这本书也让我面临了一些挑战。有些章节的数学公式和算法对我 来说相当复杂,需要反复阅读和思考才能理解。但正是这些挑战促使我更加努力 地学习,加深了我对数学建模的理解。
《MATLAB数学建模方法与实践》这本书为我打开了一个全新的世界。它不仅 教会了我如何使用MATLAB进行数学建模,更重要的是,它让我明白了数学建模的 真正意义和价值。我相信,在未来的学习和工作中,这本书将成为我重要的参考 和指南。
“数学建模是一种将现实世界的问题转化为数学问题的过程。通过建立数学 模型,我们可以更好地理解和预测事物的本质。”这段话精辟地阐述了数学建模 的意义。它告诉我们,数学建模不仅仅是一种技术,更是一种思维方式,能够帮 助我们透过现象看本质,从而更好地解决问题。
国赛培训:MatLab基础及在数学建模中的应用

[例 2.1]做一个将角度转为孤度的函数
function Radians = deg2rad(Degrees) % DEG2RAD convert degrees to radians % % USAGE: Radians = deg2rad(Degrees) % Degrees = [degrees, minutes, seconds] % % zhou lvwen. 2011/7/25 Radians = pi * Degrees * [1/180; 1/180/60; 1/180/60/60];
y
xlabel('x');
ylabel('y');
0
zero
-0.5
-1 -4
-3
-2
-1
0 x
1
2
3
4
作图函数
fplot fplot('sin(x)',[-pi,pi]) polar t = 0:.01:2*pi; polar(t,sin(2*t).*cos(2*t),'-r') bar bar(1:4,[35,23, 9, 20]) pie contour [x,y,z] = peaks;contour(x,y,z) quiver quiver(x,y,px,py) image [x,y] = meshgrid(1:5, 1:5) plot3 meshgrid mesh
z-axis 10 8 6 4 2 0 -2 -4 -6 -8 3 2 1 0 -1 -2 y-axis
MESH of PEAKS
-3
-3
-2
-1
0
1
2
3
x-axis
6
《数学建模与数学实验》课程公共课教学大纲

《数学建模与数学实验》课程公共课教学大纲一、课程名称:数学建模与数学实验(Mathematical Modeling and MathematicalExperiment )二、学时与学分:30学时三、适用专业:全校各专业(除艺术系)四、课程教材:《数学建模与数学实验》(第2版)赵静,旦琦编著,高等教育出版社,2003年。
五、参考教材:1. 萧树铁主编,姜启源等编著,大学数学《数学实验》,高等教育出版社,1999年;2.胡良剑,丁晓东等著,《数学实验使用MA TLAB》,上海科学技术出版社,2001年;3. 姜启源,谢金星等编,《数学模型》,高等教育出版社,2003年;4. 李海涛,邓樱等编,《MATLAB程序设计与教程》,高等教育出版社,2002年.六、开课单位:数理教学部七、课程的性质、目的和任务“数学实验”是近几年来才开设的一门新兴课程,它以实际问题为载体,把数学建模、数学知识、数学软件和计算机应用有机地结合,容知识性、启发性、实用性和实践性于一体,特别强调学生的主体地位,在教师的引导下,用学到的数学知识和计算机技术,借助适当的数学软件,分析、解决一些经过简化的实际问题。
该课程的引入,是数学教学体系、内容和方法改革的一项有益的尝试。
开设本课程的目的是使学生掌握数学实验的基本思想和方法。
从实际问题出发,借助计算机,通过学生亲自设计和动手,体验解决问题的全过程,从实验中去探索、学习和发现数学规律,充分调动学生学习的主动性。
培养学生的创新意识,运用所学知识,建立数学模型,使用计算机并利用数学软件解决实际问题的能力,最终达到提高学生数学素质和综合能力的目的。
该课程主要讲授一些最常用的解决实际问题的方法及其MATLAB软件实现,包括数值计算、优化方法、统计计算、图论及网络优化方法等。
我们还将介绍一些大型的数学建模案例,这些案例主要取材于最近几年的全国大学生数学建模竞赛试题。
总之学生通过该课程的学习,要求他们掌握数学建模的全过程;掌握对各种数学模型如何选择合适的数学方法和数学软件去解决它;掌握数学数值软件的强大的运算功能、图形功能以及开发应用功能。
数学实验及Matlab介绍

著名数学家和数学教育家波利亚(Polya ) 曾精辟地指出: “数学有两个侧面,一方面它是 欧几里得式的严谨科学,从这个方面看,数学 像是一门系统的演绎科学,但另一方面,创造 过程中的数学,看起来却像是一门试验性的归 纳科学.”
1
美籍匈牙利数学家乔治 ·波利亚( George Polya , 1 887 一 1985 ) 他一生发表 200 多篇论文和许多专著, 在数学的多 个分支领域都做出了开创性的贡献.他也是一位极优秀的数学 教育家, 十分重视培养学生思考问题、分析问题的能力,强调 创新及发现的重要性, 影响较大的数学教育著作 《 怎样解 题 》 、《 数学的发现 》 、 《 数学与猜想 》 被誉为第二次世 界大战之后的经典之作.
29
时间time
计算从t1到t2时间间隔所 经过的时间,以秒计。 T1 和t2分别是表示日期和时 间的向量。
显示自Matlab启动以来CPU 运行的时间。
date
显 示 以 dd-mm-yyyy 格 式 的 当前日期
calendar(yyyy,mm) 显示当年当月按6*7矩阵排 列的日历
11
Matlab 的特点与功能
Matlab 丰富的工具箱(toolbox)
根据专门领域中的特殊需要而设计的各种可选工具箱
Symbolic Math Signal process Control System
PDE
Image Process System Identification
Optimization Statistics
25
数值输出格式命令
在 Matlab中,数值的屏幕输出通常以不带小数的 格式或带4位小数的浮点格式输出结果.
使用命令format可以改变屏幕输出的格式,详见下表
数学建模讲座

y = (5 + 4 sin α ) cos β z = (5 + 4 sin α ) sin β 其中 α , β ∈ [ 0,2π ] 。画图的 Matlab 程序如下。
alpha=[0:0.1:2*pi]'; beta=0:0.1:2*pi; x=4*cos(alpha)*ones(size(beta)); y=(5+4*sin(alpha))*cos(beta); z=(5+4*sin(alpha))*sin(beta); surf(x,y,z) 画图的 Matlab 程序也可以写成 x=@(alpha,beta) 4*cos(alpha); y=@(alpha,beta) (5+4*sin(alpha))*cos(beta); z=@(alpha,beta) (5+4*sin(alpha))*sin(beta); ezsurf(x,y,z)
图 4 例 4 的图形
2.积分 Matlab 求符号积分的命令为 int,求一重数值积分的命令为 quad,quadl,求二重数值 积分的命令为 dblquad,求三重数值积分的命令为 triplequad。 例 5 求
∫
1
0
2x + 3 dx 的数值积分。 1+ x2
图 1 例 1 的图形 对于其它的二次曲面,如果可以写成单支的显函数,直接使用命令 ezmesh 或 ezsurf 画 图,否则必须先化成参数方程。 例 2 绘制二元函数
z=
sin( xy) xy
的三维表面图。 程序一 [x,y]=meshgrid([-3:0.2:3]); z=(sin(x.*y)+eps)./(x.*y+eps); surf(x,y,z) %使用 surf 画图,要求 x,y,z 是同维数的矩阵 程序二 ezsurf('sin(x*y)/(x*y)') % 使用符号函数画图 程序三 z=@(x,y) sin(x*y+eps)/(x*y+eps); % 定义匿名函数 ezsurf(z) %使用匿名函数画图
数学实验报告2函数的可视化与Matlab作图[1]6页word
![数学实验报告2函数的可视化与Matlab作图[1]6页word](https://img.taocdn.com/s3/m/ef0822974afe04a1b071dec5.png)
实验报告实验课程名称数学实验与Matlab实验项目名称函数的可视化与Matlab作图年级专业学生姓名学号理学院实验时间:201 年月日学院:专业:班级:姓名学号实验组指导教成绩实验时间师实验项目名称函数的可视化与MATLAB作图实验目的及要求:第一,MATLAB二维绘图命令。
第二,多元函数的可视化与空间解析几何。
实验(或算法)原理:用MATLAB绘制一阶微分方程的斜率场。
使用quiver指令画向量和gradient指令求数值梯度。
可直接算出方程的解的表达式再画图,也可以用ode45指令直接求出方程的数值解。
实验硬件及软件平台:MATLAB软件实验步骤:xyz295[function dy=xyz295f(x,y)dy=sin(x).*sin(y);]clf,clear» a=0;b=4;c=0;d=4;n=15;» [X,Y]=meshgrid(linspace(a,b,n),linspace(c,d,n)); » z=sin(X).*sin(Y);» Fx=cos(atan(sin(X).*sin(Y)));Fy=sqrt(1-Fx.^2); » quiver(X,Y,Fx,Fy,0.5),hold on,axis([a,b,c,d])» [x,y]=ode45('xyz295f',[0,4],0.4);» plot(x,y,'r.-')实验内容(包括实验具体内容、算法分析、源代码等等):绘制dy/dx=sin(x)sin(y)的斜率场并选取初始值,在斜率场中画出解轨线。
你遇到什么问题?怎么解决?实验结果与讨论:实验结果:实验讨论:通过这次试验让我更加的熟悉用MATLAB作图。
指导教师意见:签名:年月日。
高等数学实验matlab

式函数a0+a1x+a2x2作为经验公式n ),此时偏差平方和函数为
W=
(a
0
+a1xi
+a
2
x
2 i
-yi
)
2
i=1
其中n为数据点的数目。要使偏差平方和函数W最小,需要
n
n
n
na0 a1 xi a2 xi2 yi
i 1
i 1
i 1
a0
n
xi a1
n
xi2 a2
n
xi3
即拟合函数为 y=14.7391+0.1973139x-0.000339492x2
从图1-10可以看出拟合效果比较好,但是是否还可以更好呢? 一般而言,拟合次数的提高可以使得拟合效果变好,但是并 不是次数越高越好。现在提高拟合次数,将基函数由1,x,x2 修改为{1,x,x2,x3}(三次拟合),{1,x,x2,x3,x4}(四次拟合 )……,得到拟合图1-5至图1-9。
67
101
135
202
259
336
404
25.72
32.29
34.03
39.45
43.15
43.46
40.83
471 30.75
【实验方案】
设y代表土豆产量,x代表氮肥的施肥量。显然,y和x之间应该 有某种关系,假设y与x之间的关系为函数关系,则问题就转 化拟为合已问知题数。据点(xi,yi)位置关系,寻找函数y=y(x)。这就是数据
设计性实验
实验一 数据拟合问题 实验二 复利问题
第1章函数与极限—设计性实验
实验一 数据拟合问题
【实验目的】 1.加深对函数基本概念的理解 2.讨论了函数的实际应用问题 3.掌握Matlab软件中有关函数、画图等命令 【实验要求】 掌握函数基本知识,Matlab软件
matlab数学实验.doc

matlab 数学实验《管理数学实验》实验报告班级姓名实验 1:MATLAB的数值运算【实验目的】(1)掌握 MATLAB 变量的使用(2)掌握 MATLAB 数组的创建,(3)掌握 MA TLAB 数组和矩阵的运算。
(4)熟悉 MATLAB 多项式的运用【实验原理】矩阵运算和数组运算在MA TLAB中属于两种不同类型的运算,数组的运算是从数组元素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。
【实验步骤】(1)使用冒号生成法和定数线性采样法生成一维数组。
(2)使用 MA TLAB 提供的库函数 reshape,将一维数组转换为二维和三维数组。
(3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑运算。
(4)使用 MA TLAB绘制指定函数的曲线图,将所有输入的指令保存为M 文件。
【实验内容】( 1)在 [0,2*pi] 上产生 50 个等距采样数据的一维数组,用两种不同的指令实现。
0:(2*pi-0)/(50-1):2*pi或linspace(0,2*pi,50)( 2)将一维数组A=1:18 ,转换为2×9 数组和 2× 3× 3 数组。
reshape(A,2,9)ans =Columns 1 through 713 5 24 6 789111012131415171618reshape(A,2,3,3) ans(:,:,1) =1 3 52 4 6 ans(:,:,2) =7 9 118 10 12 ans(:,:,3) =13 15 1714 16 18matlab 数学实验( 3)A=[0 2 3 4 ;1 3 5 0],B=[1 0 5 3;1 5 0 5] ,计算数组 A、 B 乘积,计算 A&B,A|B,~A,A==B,A>B 。
A.*Bans=0 0 15 121 15 0 0A&Bans =0 0 1 11 1 0 0A|Bans =1 1 1 11 1 1 1~Aans =1 0 0 00 0 0 1A==Bans =0 0 0 01 0 0 0A>=Bans =0 1 0 11 0 1 0t t ( 4)绘制 y= 0.5 e3 -t*t*sin(t),t=[0,pi] 并标注峰值和峰值时间,添加标题 y= 0.5 e3 -t*t*sint ,将所有输入的指令保存为M 文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
元素群运算(函数计算)
Matlab有许多内部函数,可直接作用于 向量产生一个同维的函数向量。 x=linspace(0,4*pi,100);(产生100 维向量x) y=sin(x); (y也自动为100维向量) y1=sin(x).^2; y2=exp(-x).*sin(x); 观察结果
创建矩阵(数值矩阵的创建)
运行
矩阵的运算(矩阵的加减、数乘、乘积)
C=A1+B1 D=A1-B1 syms c, cA=c*A1 A2=A1(:,1:3), B1
G=A2*B1
矩阵的运算(矩阵的加减、数乘、乘积)
A, A_trans=A’ H=[1 2 3 ; 2 1 0 ; 1 2 3 ], K=[1 2 3 ; 2 1 0 ; 2 3 1] h_det=det(H), k_det=det(K), H_inv=inv(H),K_inv=K^-1
全零阵:
单位阵:
随机阵:
生成特殊矩阵
将rand指令运行多次,观察结果。 程序:
y1=rand(1,5), y2=rand(1,5), rand('seed',3), x1=rand(1,5), rand('seed',3), x2=rand(1,5)
结果
常用矩阵函数
det(A) : 方阵的行列式; rank(A): 矩阵的秩; eig(A): 方阵的特征值和特征向量; trace(A): 矩阵的迹; rref(A): 初等变换阶梯化矩阵A svd(A): 矩阵奇异值分解。 cond(A): 矩阵的条件数;
防护帽 垫肩 臀垫
4 1 A 1 3 2 3 3 2 2 2 3 2
,
35 B 10 20
20 15 12
60 50 45
45 40 20
将 表 格 写 成 矩 阵 形 式
计 算
输入下面Matlab指令 A=[4 2 3;1 3 2;1 3 3;3 2 2], B=[35 20 60 45;10 15 50 40;20 12 45 20] C=A*B 请自行计算观看结果
矩阵的运算(左除和右除)
求矩阵方程:
设A、B满足关系式:AB=2B+A,求B。 其中A=[3 0 1; 1 1 0; 0 1 4]。
解:有(A-2I)B=A 程序 :
A=[3 0 1; 1 1 0;0 1 4]; B=inv(A-2*eye(3))*A, B=(A-2*eye(3))\A
观察结果:
表 2 -2 ( b ) 点 型 和 线 型 的 标 识 符
标识符 线型和点型 实线 -破折线 : 虚线 -. 点划线 . 点 o 圆圈 x ×号 + +号 * *号 square 方形单词
绘制平面曲线(例)
观察:
改变绘图的线型和颜色。 用grid on 指令为图形窗口加上 网格线,并改变网格的线 型和字体的大小。 h=plot([0:0.1:2*pi],sin([0:0.1:2*pi])); set(h,'LineWidth',5,'color','red'); grid on set(gca,'GridLineStyle','-','fontsize',16)
为监控生产,管理者对它们之间的关系 十分关心。 为把握这些量的关系,他列出下面的表
原料产品关系表
原 料 产 品 硬 塑 料 泡 沫 塑 料 尼 龙 线 劳 动 力
防 护 帽 4 1 1 3
垫 肩 2 3 3 2
臀 垫 2 2 3 2
订单
订 单 1 订 单 2 防 护 帽 垫 肩 臀 垫 35 10 20 20 15 12 订 单 3 60 50 45 订 单 4 45 40 20
分块矩阵(矩阵的标识)
1.矩阵元素的标识 : A(i,j)表示矩阵A 的第 i 行 j 列的元素; 2.向量标识方式 A(vr,vc): vr=[i1,i2,…,ik]、vc=[j1,j2,…,ju]分别是含 有矩阵A的行号和列号的单调向量。 A(vr,vc) 是 取 出 矩 阵 A 的 第 i1,i2,…,ik 行 与 j1,j2,…,ju列交叉处的元素所构成新矩阵。
2. plot(x,y1), hold on, plot(x,y2), hold off 3. plot(x,y1,x,y2,…) 4.plotyy
两个坐标系,用于绘制不同尺度的函数。
绘制平面曲线(线型、点形和颜色的控制)
plot(x,y,‘颜色+线型+点形’) plot(x,y,‘颜色+线型+点形’,x,y,‘颜 色+线型+点形’,… ) 句柄图形和set命令改变属性值,可套 用:
数学实验与Matlab
制作人 周 晓 阳
华中科技大学数学系 zxyhust@ /~zhou/index.html
实
验
一
矩阵运算与Matlab命令
日常矩阵及其运算
矩阵应用实例: 榄球防护用品的生产管理
应用问题
一个工厂生产三种橄榄球用品 : 防护 帽、 垫肩、臀垫。 需要不同数量的:硬塑料 、 泡沫塑料 尼龙线 、 劳动力。
管理者接到四份订单如上表所示。
问应该如何计算每份订单所需的原材料, 以便组织生产?
原料 防护帽 产品 4 硬塑料 1 泡沫塑料 1 尼龙线 3 劳动力 订单 1 35 10 20
垫肩 2 3 3 2 订单 2 20 15 12 订单 3 60 50 45
臀垫 2 2 3 2 订单 4 45 40 20
绘制平面曲线(plot指令)
plot(x,y):
以x为横坐标、y为纵坐标绘制二维图形 x,y是同维数的向量; 相当于x=[1,2,…,length(y)]时情形。
plot(y):
绘制平面曲线(绘制多个图形)
1. plot(x,[y1;y2;…]),
x是横坐标向量,[y1;y2;…]是由若干函数 的纵坐标拼成的矩阵
删除上面矩阵A的第1、3行。 程序:
A([1,3],:)=[ ]
结果
生成特殊矩阵
全1阵
ones(n), ones(m,n), ones(size(A)) zeros(n) ,zeros(m,n), zeros(size(A)) 常常用于对某个矩阵或向量赋0初值 eye(n),eye(m,n) rand(m,n), rand(n)=rand(n,n)用于随机模 拟,常和rand('seed',k)配合使用。
元素群运算(四则运算)
x.*y=[x1*y1 x2*y2 x3*y3] (元素群乘积) x./y=[x1/y1 x2/y2 x3/y3] (元素群右除, 右边的y做分母) x.\y=[y1/x1 y2/x2 y3/x3] (元素群左除, 左边的x做分母) x.^5=[x1^5 x2^5 x3^5] (元素群乘幂) 2.^x=[2^x1 2^x2 2^x3] (元素群乘 幂) x.^y=[x1^y1 x2^y2 x3^y3] (元素群乘 幂)
A11=A(1:2,1:2),A12=A(1:2,3:5), A21=A(3:4,1:2),A22=A(3:4,3:5) B=[A11 A12;A21 A22]
结果
分块矩阵(矩阵的修改和提取)
修改矩阵A,将它的第1行变为0。 程序:
Hale Waihona Puke A=[1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1] A(1,:)=[0 0 0 0 0]; A
3.生成线性等分向量
指令x=linspace(a,b,n) 在[a,b]区间产 生 n 个等分点(包括端点) x=linspace(0,1,5) 结果 x= 0 0.2500 0.5000 0.7500 1.0000
工作空间
在Matlab窗口创建向量后并运行后,向 量就存在于工作空间,可以被调用。
分块矩阵(矩阵的标识)
取出A的1、3行和1、3列的交叉处元素 构成新矩阵A1 程序
A=[1 0 1 1 2;0 1 -1 2 3; 3 0 5 1 0;2 3 1 2 1], vr=[1, 3];vc=[1, 3]; A1=A(vr, vc)
观察结果
分块矩阵(矩阵的标识)
将A分为四块,并把它们赋值到矩阵B中, 观察运行后的结果。 程序
Matlab基本指令
向量的创建和运算
1. 直接输入向量
》x1=[1 2 4],x2=[1,2,1],x3=x1’ 运行结果
x1 = 1 x2 = 1 x3 = 1 2 4 2 2 4 1
2.冒号创建向量
x1=3.4:6.7, x2=3.4:2:6.7 x3=2.6:-0.8:0 运算结果
x1 = 3.4000 4.4000 5.4000 6.4000 x2 = 3.4000 5.4000 x3 = 2.6000 1.8000 1.0000 0.2000
数据的简单分析
1.当数据为行向量或列向量时,函数对 整个向量进行计算. 2.当数据为矩阵时,命令对列进行计算, 即把每一列数据当成同一变量的不同观 察值。
max(求最大)、min(求最小)、mean(求平 均 值 ) 、 sum( 求 和 ) 、 std( 求 标 准 差 ) 、 cumsum(求累积和)、median(求中值)、 diff(差分)、sort(升序排列)、sortrows(行 升序排列)等等。
向量的运算
设x=[x1 x2 x3]; y=[y1 y2 y3];为两个三 维向量,a,b为标量。 向量的数乘:a*x=[a*x1 a*x2 a*x3] 向量的平移: x+b=[x1+b x2+b x3+b] 向量和: x+y=[x1+y1 x2+y2 x3+y3] 向量差: x-y=[x1-y1 x2-y2 x3-y3] 数的乘幂: 如 a^2