数模培训1(MATLAB基础)
数学建模实验报告(一)MATLAB中矩阵的基本操作
数学建模实验报告
实验课程:数学建模实验日期: 任课教师:
利用load命令调出C并取出它的1-3行,2-4列的子块,另存为一个3×3的矩阵d,生成一个与d相同大小的随机矩阵矩阵e,计算d+e,才
)d',将e
数模竞赛matlab -回复
数模竞赛matlab -回复
如何使用MATLAB参加数学建模竞赛
[引言]
数学建模竞赛是指参赛者基于给定的问题,运用数学模型与算法进行分析与推理,并通过计算机编程实现解决方案的竞赛形式。MATLAB作为一种强大的数学计算软件工具,被广泛应用于数学建模竞赛中,其丰富的功能和高效的计算能力为竞赛参赛者提供了很大的便利。在本文中,我们将一步一步地介绍如何使用MATLAB参加数学建模竞赛。
[步骤一:理解竞赛题目]
首先,要参加数学建模竞赛,我们需要仔细阅读竞赛题目,并理解其中的问题所在。在理解题目的过程中,我们需要确定问题的约束条件、目标函数,以及可能需要使用的数学知识和方法。这个阶段的目标是全面理解竞赛题目的背景和要求,为后续的建模和求解工作打下基础。
[步骤二:建立数学模型]
在理解竞赛题目后,我们需要建立数学模型来描述问题。这个模型应该能够准确地反映出问题的本质,并包含必要的变量和参数。在建立数学模型的过程中,我们需要运用自己已经掌握的数学知识,结合题目中的条件和要求,通过分析和推理得出合适的数学表达式。MATLAB提供了丰富的数学建模工具,比如符号计算工具箱,可以帮助我们解决各种数
学建模问题。
[步骤三:实现数学模型]
在建立好数学模型后,我们需要使用MATLAB将其实现为计算机程序。这个过程通常包括将数学方程转化为计算机可执行的算法,选择合适的计算方法和迭代策略,并进行相应的数值计算。MATLAB提供了丰富的数值计算函数和库,可以帮助我们实现各种复杂的数学计算。同时,MATLAB还支持编程语言,如MATLAB脚本和函数文件,可以实现更加复杂的计算和程序控制。
Matlab与数学建模
Matlab与数学建模
⼀、学习⽬标。
(1)了解Matlab与数学建模竞赛的关系。
(2)掌握Matlab数学建模的第⼀个⼩实例—评估股票价值与风险。
(3)掌握Matlab数学建模的回归算法。
⼆、实例演练。
1、谈谈你对Matlab与数学建模竞赛的了解。
Matlab在数学建模中使⽤⼴泛:MATLAB 是公认的最优秀的数学模型求解⼯具,在数学建模竞赛中超过 95% 的参赛队使⽤ MATLAB 作为求解⼯具,在国家奖队伍中,MATLAB 的使⽤率⼏乎 100%。虽然⽐较知名的数模软件不只 MATLAB。
⼈们喜欢使⽤Matlab去数学建模的原因:
(1)MATLAB 的数学函数全,包含⼈类社会的绝⼤多数数学知识。
(2)MATLAB ⾜够灵活,可以按照问题的需要,⾃主开发程序,解决问题。
(3)MATLAB易上⼿,本⾝很简单,不存在壁垒。掌握正确的 MATLAB 使⽤⽅法和实⽤的⼩技巧,在半⼩时内就可以很快地变成 MATLAB ⾼⼿了。
正确且⾼效的 MATLAB 编程理念就是以问题为中⼼的主动编程。我们传统学习编程的⽅法是学习变量类型、语法结构、算法以及编程的其他知识,因为学习时候是没有⽬标的,也不知道学的知识什么时候能⽤到,收效甚微。⽽以问题为中⼼的主动编程,则是先找到问题的解决步骤,然后在 MATLAB 中⼀步⼀步地去实现。在每步实现的过程中,遇到问题,查找知识(互联⽹时代查询知识还是很容易的),定位⽅法,再根据⽅法,查询 MATLAB 中的对应函数,学习函数⽤法,回到程序,解决问题。在这个过程中,知识的获取都是为了解决问题的,也就是说每次学习的⽬标都是⾮常明确的,学完之后的应⽤就会强化对知识的理解和掌握,这样即学即⽤的学习⽅式是效率最⾼,也是最有效的⽅式。最重要的是,这种主动的编程⽅式会让学习者体验到学习的成就感的乐趣,有成就感,⾃然就强化对编程的⾃信了。这种内⼼的⾃信和强⼤在建模中会发挥意想不到的⼒量,所为信念的⼒量。
数学建模基础(入门必备)
数学建模基础(⼊门必备)
、数学模型的定义
现在数学模型还没有⼀个统⼀的准确的定义,因为站在不同的⾓度可以有不同的定义。
不过我们可以给出如下定义:“数学模型是关于部分现实世界和为⼀种特殊⽬的⽽作的⼀个
抽象的、简化的结构。”具体来说,数学模型就是为了某种⽬的,⽤字母、数学及其它数学符号建⽴起来的等式或不等式以及图表、图象、框图等描述客观事物的特征及其在联系的数
学结构表达式。⼀般来说数学建模过程可⽤如下框图来表明:
实际I帀题——k模型假设⼀?模型崖⽴⼀k模型求超
应⽤彌⼀检验与评价⼀棋型雰析
数学是在实际应⽤的需求中产⽣的,要解决实际问题就必需建⽴数学模型,从此意义上讲数学建模和数学⼀样有古⽼历史。例如,欧⼏⾥德⼏何就是⼀个古⽼的数学模型,⽜顿万有引⼒定律也是数学建模的⼀个光辉典。今天,数学以空前的⼴度和深度向其它科学技术领域渗透,过去很少应⽤数学的领域现在迅速⾛向定量化,数量化,需建⽴⼤量的数学模型。
特别是新技术、新⼯艺蓬勃兴起,计算机的普及和⼴泛应⽤,数学在许多⾼新技术上起着⼗分关键的作⽤。因此数学建模被时代赋予更为重要的意义。
⼆、建⽴数学模型的⽅法和步骤
1. 模型准备
要了解问题的实际背景,明确建模⽬的,搜集必需的各种信息,尽量弄清对象的特征。
2. 模型假设
根据对象的特征和建模⽬的,对问题进⾏必要的、合理的简化,⽤精确的语⾔作出假设,是建模⾄关重要的⼀步。如果对问题的所有因素⼀概考虑,⽆疑是⼀种有勇⽓但⽅法⽋佳的⾏为,所以⾼超的建模者能充分发挥想象⼒、洞察⼒和判断⼒,善于辨别主次,⽽且为了
数模常用软件
数学建模软件介绍
一般来说学习数学建模,常用的软件有四种,分别是:matlab、lingo、Mathematica 和SAS下面简单介绍一下这四种。
1.MATLAB的概况
MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处
理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等
语言完相同的事情简捷得多.
当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具
包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强
的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改
或加入自己编写程序构造新的专用工具包.
2.Mathematica的概况
Wolfram Research 是高科技计算机运算( Technical computing )的先趋,由复杂理论的发明者Stephen Wolfram 成立于
1987年,在1988年推出高科技计算机运算软件Mathematica,是一个足以媲美诺贝尔奖的天才产品。Mathematica 是一套整合数字以
数模竞赛matlab -回复
数模竞赛matlab -回复
"数模竞赛matlab"是一个非常受欢迎的竞赛项目,它结合了数学建模和使用MATLAB编程的技能。这篇文章将向读者介绍数模竞赛matlab的基本知识和一些常见的解题步骤。
首先,让我们来了解一下什么是数模竞赛。数模竞赛是指通过数学模型来解决实际问题的竞赛。它旨在培养学生的数学建模能力、问题分析能力和创新思维能力。而MATLAB是一种功能强大的科学计算软件,广泛应用于数学建模、数据分析和科学研究等领域。
在数模竞赛中,MATLAB通常用于解答数学问题、模拟实验和可视化数据。下面是一些常见的使用MATLAB解题的步骤。
首先,理解题目要求。阅读题目是解决问题的第一步。仔细阅读题目,理解问题背景、条件和要求。确定问题的目标和限制条件。数模竞赛的题目通常包含一些数学模型的初步建立,需要我们进一步推导和求解。
其次,建立数学模型。根据题目需求和给定条件,我们需要建立数学模型。使用数学符号和方程来描述问题,并建立相应的数学模型。这是解决问题的关键步骤。我们需要运用数学知识和分析能力将问题转化为一系列的数学方程和关系。
然后,编写MATLAB代码。在建立好数学模型之后,我们需要将其转化为MATLAB代码。MATLAB是一种计算机语言,可以用于编写数学模型和进行数据处理。MATLAB提供了丰富的数学函数和工具箱,可以帮助我们解决各种数学问题。编写MATLAB代码也需要一些编程技巧和算法思维。
接下来,进行模拟实验和数据分析。在编写好MATLAB代码之后,我们可以进行模拟实验和数据分析。通过运行MATLAB代码,可以得到问题的数值解或图形解。我们可以使用MATLAB的绘图函数和可视化工具箱来展示模型和数据的结果。这有助于我们深入理解问题和验证我们的模型。
2013数模国赛B题(1)matlab源代码汇总
function p=start(
p=cell(19,1; %%生成一个元胞数组。cell 是matlab 中的一种数据类型,用大括号定义,括号里可以是任意类型的数据或矩阵。
fori=1:19
ifi<=10
imageName=strcat('00',num2str(i-1,'.bmp'; %strcat是连接字符串的函数连接字符串的函数 % num2str 是将数值转换成字符串的函数, 由于strcat 只能连接字符串,故此处需将(i-1)转换为字符串
else
imageName=strcat('0',num2str(i-1,'.bmp';
end %%将图片的文件名用同一变量imageName 表示,以便下一步的读取图片数据。
p{i,1}=imread(imageName; %%读取读取图片文件中的数据。此题为图片的灰度值。
end
sump=[];
answer=[];
fori=1:19
answer(i=i;
end
fori=1:19
sump(i=(sum(p{i}(:,1; %%将每一张图片所得数据的第一列的所有数加起来end
A=find(sump==max(sump; %最大者即为左边第一张图片
C=answer(A;
answer(A=1;
answer(1=C; %将answer(A的值与answer(1的值互换 B=p{A};
p{A}=p{1};
p{1}=B; %将p{A}的值与p{1}互换
fori=2:19
sump=[];
for j=i:19
a=p{i-1}(:,72;
b=p{j}(:,1;
数模培训_数据拟合方法
1 1 1 1 1 1 1
RTR 1 1.25 1.50 1.75 2.0011
1
1.75
2.00
7.45
8.46
1
1
1.75
2.00
1
1.25 1.50 1.75
5 7.50
7.50 11.875
2.00
算例
5.10
RTY
1 1
g(x)=1/(0.27139-0.07768x)。
算例
l 指数曲线模型 y=aebx
选择y=aebx,取对数lny=lna+bx,令Y=lny,A=lna,取r1(x)=1,r2(x)=x,
要求Y=A+bx与(xi,Yi),i=0,1,2,3,4,做最小二乘拟合,Yi=lnf(xi)。计算结果 如下:
1 1.25
1 1.来自百度文库0
1 1.75
12.00765...457539
33.33 52.09
8.46
求解法方程组
5 7.50
7.50 11.875
a b
33.33 52.09
得到 a=1.6380,b=3.3520,
于是得到该模型下的最小二乘拟合曲线为
g(x)=1.6380+3.3520x。
算例
l 多项式模型 y=a0+a1x+a2x2 选取Y=a+bx+cx2,此时,r1(x)=1,r2(x)=x,r3(x)=x2。要求
数模常用MATLAB命令一览
数学建模中常用MATLAB命令一览
一、运算符:
在matlab中数组又称为向量,或向量又称为数组,二者含义一致,叫法不同。
二、矩阵(向量)的输入
1、向量的输入
2、矩阵的输入
综合模型讲解
第一部分:数学建模及其基础知识详解
问题分析及模型的建立 该问题实际上一个计算极小值的问题,求解该模 型的目的就是要在铁路线BC之间找到一个中转 站,使得货物从工厂运到火车站时花费最少。 设转运站M距B点的距离为xkm,则M离火车站的距 离就是5-xkm,根据所给条件知道,此时所需总路 费的函数f(x),只需要求f(x)的极小值点,该问 题就解决了。
第一部分:数学建模及其基础知识详解
第一章 微积分、线性代数的基础知识及 其在matlab中的实现
第一部分:数学建模及其基础知识详解
1.1 数学建模中常用的微积分知识及其在matlab中的实 现
1.1.1 导数、极值和积分、Taylor公式及在matlab中的实现 1.1.2 数值微分和数值积分在matlab中的实现 1.1.3 线性方程和非线性方程在matlab中的各种求解方法 1.1.4 matlab中求和及求极值的方法 1.1.5 函数插值与曲线的拟合(重点)
3.2 随机变量的分布及其数字特征
3.2.1 离散型随机变量的分布及其数字特征
3.2.2 连续型随机变量的分布及其数字特征(均匀分布、
指数分布、正态分布) 3.2.3 t分布和F分布
第一部分:数学建模及其基础知识详解
3.3 参数估计与假设检验
3.3.1 样本的数字特征(集中趋势(位置)度量、离中趋 势(散布)度量、中心矩、样本的峰度和偏度、相 关系数) 3.3.2 参数估计 3.3.3 假设检验(正态总体参数假设检验、非参数假设检 验)
MATLAB的建模和仿真
课程设计说明书
题目:基于Matlab的IIR滤波器设计与仿真班级:2012 级电气五班
姓名:王璐
学号:201295014178
指导教师:张小娟
日期:2015年 1 月12日
课程设计任务书
基于MATLAB的IIR滤波器设计与仿真
前言
数字信号处理(digital signal processing,DSP)是从20世纪60年代以来,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。数字信号处理是把信号用数字或符号表示的序列,通过计算机或通用(专用)信号处理设备,用数字的数值计算方法处理(例如滤波、变换、压缩、增强、估计、识别等),以达到提取有用信息便于应用处理的目的。数字信号处理系统有精度高、灵活性高、可靠性高、容易大规模集成、时分复用、可获得高性能指标、二维与多维处理等特点。正是由于这些突出的特点,使得它在通信、语音、雷达、地震测报、声呐、遥感、生物医学、电视、仪器中得到愈来愈广泛的应用。在数字信号处理中起着重要的作用并已获得广泛应用的是数字滤波器(DF,Digital Filter),根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应IIR(Infinite Impulse Response)滤波器和有限冲激响应FIR(Finite Impulse Response)滤波器。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来结算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的有点,使MATLAB成为一个强大的数学软件,在新的版本中也加入了对C,FORTRAN,C++,JA V A的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。
数模
4. 图形窗口的分割
subplot
subplot( n, m, k )
%==================================== subplot(2,2,1),fplot('humps',[0 1]) subplot(2,2,2),fplot('abs(exp(j*x*(0:9))*ones(10,1))',[0 2*pi]) subplot(2,2,3),fplot('[tan(x),sin(x), cos(x)]',2*pi*[-1 1 -1 1]) subplot(2,2,4),fplot('sin(1./x)',[0.0 1 0.1],1e-3) %====================================
§ 4 视角变换与三视图
1.三维图形的视角与变换矩阵 1.三维图形的视角与变换矩阵
view(az,el) view([az,el]) view(T)
2.三维图形的三视图 2.三维图形的三视图
[az,el]=view view(2); view(3) T=view
mesh(x,y,z)
view(az,el)
axis(范围 范围 范围) 范围:[ xmin , xmax , ymin , ymax ] 范围
3. 绘图模式下鼠标的应用
数模竞赛matlab -回复
数模竞赛matlab -回复
数学建模竞赛和Matlab的应用
摘要:数学建模竞赛是一项旨在培养学生实际问题解决能力的竞赛。在该竞赛中,Matlab作为一种强大的数学软件工具得到了广泛的应用。本文将详细介绍数学建模竞赛和Matlab在竞赛中的应用,并通过一步一步的讲解提供技巧和指导。
第一步:理解数学建模竞赛
数学建模竞赛是一项重要的学术竞赛,要求参赛者在规定的时间内,通过数学方法,对所给出的实际问题进行动态建模、求解和分析。这类竞赛旨在培养学生的综合知识应用能力和创新思维,是培养学生实践能力和综合素质的重要途径。
第二步:认识Matlab
Matlab是一种用于数值计算、可视化和编程的强大软件工具。它具有丰富的算法库和函数,方便进行各种数学运算、数据分析和图像处理。由于其简洁高效的编程语言和友好的用户界面,Matlab成为了数学建模竞赛中最常用的工具之一。
第三步:Matlab在竞赛中的应用
Matlab提供了一系列的函数和工具箱,可以帮助参赛者完成竞赛中的各
个环节。下面我们将逐步介绍它们的应用。
1. 数据处理和可视化
在竞赛中,往往需要对大量的实验数据进行处理和分析。Matlab提供了丰富的统计分析函数和数据可视化工具,可以方便地进行数据预处理、特征提取、拟合曲线等操作,并通过绘制图表直观地展现数据。
2. 模型参数估计和优化
在建模过程中,需要根据实际情况估计模型参数,并通过优化算法找到最优解。Matlab中的优化工具箱提供了多种寻优算法,可以对不同类型的模型进行参数估计和优化。这些工具使得模型的建立和求解更加高效和准确。
2024年数模培训计划
2024年数模培训计划
随着社会的发展和科技的进步,数学建模已经成为一种重要的能力,被广泛应用于各行各
业中。在未来的数年里,数学建模将会变得更加重要,因此在2024年,我们制定了一份
全面的数学建模培训计划,以便帮助更多的人掌握这一重要的技能。
培训目标
本次培训计划的目标是培养学员对数学建模的综合应用能力。通过培训,学员将学会如何
利用数学知识解决实际问题,以及如何运用建模软件进行模型的建立和分析。希望通过培
训让学员掌握数学建模的基本方法和技巧,提高他们在实际工作中的应用能力。
培训内容
本次培训计划将持续为期三个月,培训内容包括但不限于以下几个方面:
第一阶段:数学基础知识
在第一阶段,学员将学习数学的基础知识,包括代数、几何、概率统计等方面的知识。通
过这一阶段的学习,学员将对数学的基本原理和方法有一个全面的了解,为建模过程奠定
坚实的基础。
第二阶段:建模方法与技巧
在第二阶段,学员将学习数学建模的方法和技巧,包括建模的基本流程、模型的构建和求解、模型的分析与评价等方面的知识。学员将学会如何利用数学建模的方法解决实际问题,提高自己的建模能力。
第三阶段:建模软件的应用
在第三阶段,学员将学习建模软件的基本操作和应用技巧,包括常用的建模软件如MATLAB、Python等的基本操作和应用。学员将通过实际案例和练习,掌握建模软件的使用方法,提高自己的建模水平。
第四阶段:项目实践与综合应用
在第四阶段,学员将参与一个实际的建模项目,通过团队合作的方式,独立完成一个建模
项目,并对项目结果进行总结和分析。通过这一阶段的实践,学员将对数学建模的应用有
2010数模培训——最值问题的计算方法与若干应用
机动
目录
上页
下页
返回
结束
以下通过实例来说明Lagrange乘数法的基本 思想. 例2 求函数z = f (x, y) = (x + y -1/4)exp(- x2 y2) 在约束条件g(x, y) = (x - 1/2)2 + (y – 1/3)2 = 1下的最大值点. 如果我们画出约束曲线g(x; y) = 1图像及函 数f (x; y)的若干等高线, 将是图所示的效果.
z z z
y y y
x x x
Байду номын сангаас
定理1 (必要条件) 函数 偏导数, 且在该点取得极值 , 则有
存在
f x ( x0 , y0 ) 0 , f y ( x0 , y0 ) 0
证: 取得极值 , 故 取得极值 取得极值 据一元函数极值的必要条件可知定理结论成立.
说明: 使偏导数都为 0 的点称为驻点 .
经求解, 稳定点为(x; y) = (0.441, 0.441)和(x; y) = (0.566, 0.566). 由图
2 Lagrange乘数法
Lagrange乘数法是当存在约束条件时高维函 数求最大值和最小值的一种强有力的数学 方法. 该方法简单且易于通过计算机软件进 行操作, 并被广泛应用于科学计算中. 对于一个二元函数, 约束条件可以认为是最 优解必须经过的xy-平面上的一条曲线, 不在这条曲线上的点不在考虑的范围之内.
MatLab-Basic
2.2
复数运算
MATLAB 中提供了一此复数运算的函数, 这里列出一些重要的复数运算函数. 复数输入 实部 虚部 模长 共轭复数 幅角 >> >> >> >> >> >> x = 3 + 4j real(x) image(x) abs(x) conj(x) angle(x) =⇒ =⇒ =⇒ =⇒ =⇒ 3 4 5 3 - 4i 0.9273
周吕文
数模教材: MATLAB 快速入门
第 2 页, 共 10 页
需要注意的是, 一个数组每一行元素的个数必须完全相同, 每一列元素的个数也必须完 全相同. 对于复数的输入, 虚部前的系数和 ‘i’ 或’j’ 之间不能有空格, 如-1 + 2 i是不对的, 而-1 + 2i或-1 + i*2 才是有效的输入方式.
3.4
常用数学函数
MATLAB 中包括了大量的内置函数, 这些函数的组合可以很方便的完成很多复杂的功能. 下面给出常用的数学函数: sin cos tan cot exp log abs min sum 正弦 余弦 正切 余切 指数函数 自然对数 绝对数 取小 求和 asin acos atan acot sqrt log10 sign max 反正弦 反余弦 反正切 反余切 平方根 以 10 为底的对数 符号函数 取大
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数模培训
一、曲线插值与拟合
二、数值微分与积分
三、微分方程数值解
四、优化问题
五、回归分析
1.一维插值
对表格给出的函数,求出没有给出的函数值。
在实际工作中,经常会遇到插值问题。
例1:表1是待加工零件下轮廓线的一组数据,现需要得到x坐标每改变0.1时所对应的y的坐标.
下面是关于插值的两条命令(专门用来解决这类问题):
y=interp1(x0,y0,x) 分段线性插值
y=spline(x0,y0,x) 三次样条插值
其中x0,y0是已知的节点坐标,是同维向量。y对应于x处的插值。y与x是同维向量。解决上述问题,我们可分两步:
一用原始数据绘图作为选用插值方法的参考.
二确定插值方法进行插值计算
对于上述问题,可键入以下的命令:
x0=[0,3,5,7,9,11,12,13,14,15]';
y0=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]'
plot(x0,y0) %完成第一步工作
x=0:0.1:15;
y=interp1(x0,y0,x'); %用分段线性插值完成第二步工作
plot(x,y)
y=spline(x0,y0,x');
plot(x,y) %用三次样条插值完成第二步工作
练习:对y=1/(1+x2),-5≤x≤5,用n(=11)个节点(等分)作上述两种插值,用m(=21)个插值点(等分)作图,比较结果。
解:键入并运行如下命令
n=11;m=21;x=-5:10/(m-1):5;y=1./(1+x.^2);
xo=-5:10/(n-1):5;yo=1./(1+xo.^2);
y1=interp1(xo,yo,x);
y2=spline(xo,yo,x);
plot(x,y,'r',x,y1,'b',x,y2,'k')
练习:在某处测得海洋不同深度处水温如下:
解:输入程序:
D=[446,714,950,1422,1634];
T=[7.04,4.28,3.40,2.54,2.13];
Di=[500,1000,1500];
Ti=interp1(D,T,Di)
MATLAB的命令interp1(X,Y,Xi,’method’)用于一元插值.其中Method可选’nearest’(最近邻插值),’linear’(线性插值),’spline’(三次样条插值),’cubic’(三次多项式插值)
2.二维插值
MATLAB中二维插值的命令是:
z=interp2(x0,y0,z0,x,y,'meth')
例2:在一个长为5个单位,宽为3个单位的金属薄片上测得15个点的温度值,试求出此薄片的温度分布,并绘出等温线图。(数据如下表)
程序:temps=[82,81,80,82,84;79,63,61,65,87;84,84,82,85,86];
mesh(temps) %根据原始数据绘出温度分布图,可看到此图的粗造度。
%下面开始进行二维函数的三阶插值。
width=1:5; depth=1:3; di=1:0.2:3; wi=1:0.2:5;
[WI,DI]=meshgrid(wi,di);%增加了节点数目
ZI=interp2(width,depth,temps,WI,DI,'cubic');% 对数据(width,depth,temps)进 % 行三阶插值拟合。
surfc(WI,DI,ZI)
contour(WI,DI,ZI)
3.曲线拟合
假设一函数g(x)是以表格形式给出的,现要求一函数f(x),使f(x)在某一准则下与表格函数(数据)最为接近。
由于与插值的提法不同,所以在数学上理论根据不同,解决问题的方法也不同。
此处,我们总假设f(x)是多项式。
例3:弹簧在力F的作用下伸长x厘米。F和x在一定的范围内服从虎克定律。试根据下
在MATLAB中,用以下命令拟合多项式。
polyfit(x0,y0,n)
一般,也需先观察原始数据的图像,然后再确定拟和成什么曲线。
对于上述问题,可键入以下的命令:
x=[1,2,4,7,9,12,13,15,17]';
F=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1]';
plot(x,F,'.')
从图像上我们发现:前5个数据应与直线拟合,后5个数据应与二次曲线拟合。于是键入a=polyfit(x(1:5),F(1:5),1); a=polyfit(x(5:9),F(5:9),2)
得
注意:有时,面对一个实际问题,究竟是用插值还是用拟合不好确定,还需大家在实际中仔细区分。同时,大家(包括学过计算方法的同学)注意去掌握相应的理论知识。
4.数值积分
先看一个例子:
例4.现要根据瑞士地图计算其国土面积。于是对地图作如下的测量:以西东方向为横轴,以南北方向为纵轴。(选适当的点为原点)将国土最西到最东边界在x轴上的区间划取足够多的分点x i,在每个分点处可测出南北边界点的对应坐标y1,y2。用这样的方
根据地图比例知18mm相当于40km,试由上表计算瑞士国土的近似面积。(精确值为41288km2)。
解题思路:数据实际上表示了两条曲线,实际上我们要求由两曲线所围成的图形的面积。解此问题的方法是数值积分的方法。具体解时我们遇到两个问题:1。数据如何输入;2。没有现成的命令可用。
解:对于第一个问题,我们可把数据考备成M文件(或纯文本文件)。
然后,利用数据绘制平面图形。键入
load mianji.txt
A=mianji';
plot(A(:,1),A(:,2),'r',A(:,1),A(:,3),'g')
接下来可以计算面积。键入:
a1=trapz(A(:,1)*40/18,A(:,2)*40/18);
a2=trapz(A(:,1)*40/18,A(:,3)*40/18);
d=a2-a1
d = 4.2414e+004
至此,问题可以说得到了解决。之所以说还有问题,是我们觉得误差较大。但计算方法的理论给了我们更精确计算方法。只是MATLAB没有相应的命令。想得到更理想的结果,我们可以自己设计解决问题的方法。(可以编写辛普森数值计算公式的程序,或用拟合的方法求出被积函数,再利用MA TLAB的命令quad,quad8)