数学实验2-matlab编程
数学实验练习二 参考答案
数学实验二实验内容:学习matlab的m文件编写和函数的编写,体会matlab编程特点,掌握matlab 的编程基本方法。
要求:一.学习ppt教案的例题代码,能正确的输入、运行代码;二.写出如下各段代码的作用,将以下各段循环执行的代码,改为不需要循环的矩阵和数组运行,并使用tic,toc测试不同代码的执行时间:%程序1,文件名:ex2_2_1.mticdx = pi/30;nx = 1 + 2*pi/dx;for i = 1:nxx(i) = (i-1)*dx;y(i) = sin(3*x(i));endtoc以上程序实现将[0,2*pi]间隔pi/30分成60等分,x和y分别为61个元素的数组,y为计算sin(3x)的值。
以上程序可以使用简单的matlab数组计算实现:x2=0:pi/30:2*pi;y2=sin(3*x2);大家可以比较一下,x1和x2完全相同,y和y2也完全相同。
%程序2,文件名:ex2_2_2.mticA=round(2+rand(50,60)*6); 生成一个在[2,8]上均匀分布的50*60随机数组[X,Y]=size(A); 求出其大小;X=50,Y=60minA=A(1,1); 设最小值为矩阵A的第1行1列的元素for i=1:Xfor j=1:Yif A(i,j)<minAminA=A(i,j);minX=i;minY=j;endendend 以上程序按行、列搜索矩阵A的最小值,若当前值A(I,j)小,则将最小值设为当前值;[minA ,minX,minY] 输出矩阵最小值minA及矩阵最小值所在的行minX、列minY。
toc上述程序可以使用find函数及min函数实现;此时只需: minA=min(A(:));[minX,minY]=find(A ’==minA,1);%注意此处需将矩阵A 转置,因为matlab 中是按列优先搜索的,而题目的程序是按行有限搜索。
matlab实验二
北京工业大学Matlab实验报告**: ***学号: ************: **实验二、Matlab 的基本计算(一)实验目的1.掌握建立矩阵的方法。
2.掌握Matlab 各种表达式的书写规则以及常用函数的使用。
3.能用Matlab 进行基本的数组、矩阵运算。
4.掌握矩阵分析的方法以及能用矩阵运算或求逆法解线性方程组。
5.掌握Matlab 中的关系运算与逻辑运算。
(二)实验环境1.计算机2.MATLAB7.0集成环境(三)实验内容及要求1、熟练操作MATLAB7.0运行环境;2、自主编写程序,必要时参考相关资料;3、实验前应写出程序大致框架或完整的程序代码;4、完成实验报告。
(四)实验程序设计1.利用diag 等函数产生下列矩阵。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=032570800a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=804050702b2.利用reshape 函数将1题中的a 和b 变换成行向量。
3.产生一个均匀分布在(-5,5)之间的随机矩阵(10×2),要求精确到小数点后一位。
4.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=731203321B求下列表达式的值:(1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵)(2) B A K *21=和B A K *.22=(3) 331^A K =和3.32^A K =(4) B A K /41=和A B K \42=(5) ],[51B A K =和]2:);],3,1([[52^B A K = 5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.03216/15/14/15/14/13/14/13/12/1x x x(1)求方程的解(矩阵除法和求逆法)(2)将方程右边向量元素3b 改为0.53,再求解,并比较3b 的变化和解的相对变化。
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 71 3 5 7 9 11 132 4 6 8 10 12 14Columns 8 through 915 1716 18reshape(A,2,3,3)ans(:,:,1) =1 3 52 4 6ans(:,:,2) =7 9 118 10 12 ans(:,:,3) =13 15 17 14 16 18(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 0 A&Bans =0 0 1 11 1 0 0 A|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 0(4)绘制y= 0.53t e -t*t*sin(t),t=[0,pi]并标注峰值和峰值时间,添加标题y= 0.53t e -t*t*sint ,将所有输入的指令保存为M 文件。
数学建模实验二:微分方程模型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 。
数学2-用MATLAB绘制二维-三维图形(lq)
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,
列j,和元素的值v(按所在位置先后 顺序输出)
A=[3 2 0; -5 0 7; 0 0 1]; [i,j,v]=find(A)
i= 1 2 1 2 3 j= 1 1 2 3 3 v = 3 -5 2 7 1
[X,Y]=meshgrid(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: z=f(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat %去除网格线。
例2-7画出矩形域[-1,1]×[-1,1]旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; [X,Y]=meshgrid(x,y); %生成矩形区[-1,1]×[-1,1]的网格坐标矩阵 Z=X.^2+Y.^2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲面z=x2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
用matlab绘制二维、三维图形
2.1二维图形的绘制
2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。
使用该命令,软件将开辟一个图形窗口,并 画出连接坐标面上一系列点的连线。
例2-5 采用不同形式(直角坐标、参数、极坐标),画出 单位圆x2+y2=1的图形。
分析:对于直角坐标系方程,y= 1 x2,对于参数方 程x=cost,y=sint,t[0,2 pi] ,利用plot(x,y)命令可以实现。 而在极坐标系中单位圆为r=1(1+0t),利用polar(t,r)命 令实现。
数学实验2 班级 学号 姓名 一.用MATLAB计算下列极限: (1); (2
ans =
m/n
(8)
syms x m n
>> limit((tan(m*x)+x)/sin(n*x),x,0)
ans =
(m+1)/n
二.用MATLAB解方程。
1.一元方程与线性方程组
用两个函数solve ( )和linsolve( )来解线性方程,具体格式如下:
>> X=linsolve(A,B)
X =
[ 1]
[ -1]
[ -1]
[ 1]
说明:X=zeros(4,1)表示建立一个4元素列向量X。
1.非线性方程(组)
用命令函数fsolve()来解非线性方程(组)。具体格式如下:
X=fsolve(fun,x0,options)
参数fun为定义好的待求解的非线性方程(组)的文件名。x0为求解方程的初始向量或矩阵。Options设置命令函数fsolve求解过程的各种参数。通常我们设为optimset(fsolve)。Options的其他参数项可通过帮助文档查询,或直接在MATLAB的命令行输入help optimset查询。
limit(f(x),x,a,'left')(求 )
例1.用MATLAB计算下列极限:
(1) ;(2) ;
(3) ;(4) ;
(5) ;(6) ;
(7) ;(8) 。
解(1)
clear
>> syms x
>> limit((exp(2*x)-1)/x,x,0)
ans =
2
(2)clear
>> syms x k
实验项目1 MATLAB熟悉使用及编程基础2
实验项目1 MATLAB熟悉使用及编程基础MATLAB是美国Mathworks公司推出的一套高件能的数值分析和计算软件,它将矩阵运算、数值分析、图形处理、编程处术结合在一起,为用户提供了一个强有力的科学及工程问题分析计算和程序设计的工具。
MATLAB本身也在不断改进和创新,特别是2000年以出的版本6,无论在界面设计、计算方法、编程阶段和工具等方面都有了巨大的突破,全面引入了面向对象编程的概念和方法,使MATLAB真正成为了具有全部高级语言功能和特征的新一代软件开发平台。
MATLAB开发环境是一组工具和组件的集成,这些工具是图形化的用户接口,它们包括 MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口以及帮助信信息、工作空间、文件和搜索路径等浏览器。
MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到特殊函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅里叶变换等)的范围。
MATLAB语言是一种高级编程语言,包括控制流的描述、函数、数据结构、输入输出及面对对象编程,既可以编制适用于快速使用的小程序,也可以编制大型复杂的应用程序。
MATLAB提供了功能强大的图形系统,既可以完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以定制图形的外观,如建立一个完整的图形用户界由的应用程序。
1.实验目的:掌握MA TLAB编程语言和偏微分方程PDE工具箱对电磁场的基本问题进行仿真;2 实验内容:1、MATLAB启动MA TLAB安装到硬盘后,启动方法有:(1)点击Windows桌面上自动生成的快捷方式图标;(2)点击matlab 6\文件夹下快捷方式图标令MATLAB(3)点击matlab/bin/win32文件夹中的Matlab.exe2、m文件编写熟悉基本指令、基本数学运算,借助help、lookfor等命令实现在线帮助。
建立M文件的一般步骤如下:(1)打开文件编辑器:指的是MA TLAB内部编辑/调试器,可以有几种不同的方法打开文件编辑器,最简单的方法是在操作桌面助工具栏上选择蹦(建立新文件)或选择瞪(打开已有的文件),也可以在命令窗口输入命令edit建立新文件或输入命令edit filename,打开名为fi1ename的M文件。
数学实验2 班级 学号 姓名 一.用MATLAB计算下列极限: (1); (2
>> [x,y,f]=fsolve('eg2_2fun',[0.1,0.1])
回车显示
y =
-0.2484 -0.3676
y =
-0.2484 -0.3676
y =
-0.2484 -0.3676
y =
0.0249 0.0530
y =
0.0249 0.0530
y =
0.0249 0.0530
ans =
exp(m*n)
(6)
clear
>> syms y m n k
>> limit((1+m*y)^(n/y+k),y,0)
ans =
exp(m*n)
(7)
clear
>> syms x m n
>> limit(sin(m*x)/tan(n*x),x,0)
ans =
m/n
(8)
syms x m n
y =
1.0e-003 *
0.3389 0.2246
y =
1.0e-003 *
0.3389 0.2246
y =
1.0e-003 *
0.3389 0.2246
y =
1.0e-007 *
0.4429 0.7265
y =
1.0e-007 *
0.5281 0.7649
y =
1.0e-007 *
0.4575 0.9178
用MATLAB计算极限的命令语句如下:
clear
>> syms x y m n(生成符号变量 )
limit(f(x),x,a)(求 )
数学实验MATLAB版课程设计
数学实验MATLAB版课程设计选题背景数学实验是数学教育中不可或缺的一部分。
随着科技的发展,各类软件工具也逐渐进入了数学实验领域。
MATLAB作为一款广泛应用于科技领域的数学计算软件,被越来越多的教师和学生所使用。
本课程设计旨在利用MATLAB软件,进行一系列有趣且具有实际意义的数学实验,以提高学生对数学的兴趣和实际应用能力。
选题内容本课程设计共包含以下三个实验项目:实验一:数学模型的建立与求解本实验旨在让学生了解数学模型的概念和建立方法,并通过MATLAB软件进行模型的求解。
具体步骤如下:1.学生自主选择一个实际问题,如某产品销售量的预测、某城市的交通流量分析等,并对问题进行分析,确定所需变量和关系。
2.学生利用所学知识建立相应的数学模型,并用MATLAB进行求解。
3.学生根据实际情况,对模型和求解结果进行分析和评价。
实验二:微积分理论的应用本实验旨在让学生了解微积分的基本理论和应用,以及MATLAB软件在微积分计算中的作用。
具体步骤如下:1.学生自主选择一个数学问题,如函数求极值、曲线积分计算等,并对问题进行分析。
2.学生利用所学知识,通过MATLAB软件进行计算和绘图,并对结果进行分析和评价。
实验三:离散数学的应用本实验旨在让学生了解离散数学的基本知识和应用,在MATLAB软件中实现离散数学的计算。
具体步骤如下:1.学生自主选择一个数学问题,如概率统计分析、图论问题等,并对问题进行分析。
2.学生利用所学知识,通过MATLAB软件进行计算和可视化,并对结果进行分析和评价。
实验要求1.学生需在规定时间内完成实验报告的撰写,并按要求提交。
2.学生需在实验前自行学习相关知识,具备独立思考和解决问题的能力。
3.学生需积极合作,认真对待实验和实验报告的撰写。
实验评估本课程设计采用综合评估方式,主要考虑以下四个方面:1.实验报告的撰写质量,包括实验目的、原理、步骤、结果和分析等。
2.实验过程中的表现,包括合作精神、独立思考能力、问题解决能力等。
数学模型与数学实验课件第02讲 MATLAB入门
%显示目录上的文件 %清除内存中的全部变量 %把name.mat文件中的a变量装入
内存 %检查内存中有什么变量
➢ 其他帮助命令 ——who、whos
联机演示系统
进入演示界面的方法: ➢ 选中MATLAB主窗口中的Help下拉菜单
的Demos选项 ➢ 在命令窗口中执行demo
MATLAB的常用命令
➢ who或whos:显示当前内存变量 ➢ clear:清除指定或所有内存变量 ➢ clc:清除工作窗口 ➢ clf:清除图形窗口
➢ 直接交互的指令行操作方式
➢ M文件的编程工作方式
——脚本文件 ——函数文件
直接交互的指令行操作方式
➢ 在Command Window中看到“<<”提示符 后就可以输入任何想要的函数或变量运 算
➢ 若没有“<<”提示符,则表示MATLAB正 在执行任务,可等待也可终止
➢ 任何时候可以使用“Ctrl+Break”或 “Ctrl+C”终止正在执行的任务
第02讲 MATLAB入门
MATLAB 简介
MATLAB是MATrix LABoratory的缩写, 是由美国MathWorks公司开发的工程计 算软件,1984年MathWorks公司正式将 MATLAB推向市场,迄今MATLAB已推出多 个版本.在国际学术界,MATLAB已经被确 认为准确可靠的科学计算标准软件.在 设计研究单位和工业部门,MATLAB被认 作进行高效研究和开发的首选软件工具.
几点说明:
➢ 所有的命令必须在英文状态下输入 ➢ MATLAB中严格区分大小写 ➢ 不同的语法关键词显示颜色不同 ➢ 可以作编辑菜单中的复制、粘贴、撤销
数学实验 第2章 MATLAB数值运算
软
件
篇
数学实验
软
例2.5 向量的点积和叉积运算.
>> A = [4 -2 1];
>> B = [1 -1 3];
>> C=dot(A,B)
%向量A和B的点积
C=
9
>> D = cross(A,B) %向量A和B的叉积
D=
-5 -11 -2
件
篇
澡身浴德 修业及时
澡身浴德 修业及时
2.2 矩阵及其运算
① x(n)
表示向量中的第n个元素
② x(n1:n2)
表示向量中的第n1至n2个元素
例2.3 向量元素的引用、修改和扩展.
>> x=1:2:5
x=
1
3
5
件
篇
数学实验
软
>> x(2)=6
%修改第2个元素为6
x=
1
6
>> x(5)=7
%增加第5个分量,第4个分量没有赋值,自动设为0
x=
1
6
5
0
7
>> x([1,end])
2
.
= ( , , . . . , )
或
1 2
.
.
叫做 n 维向量,向量的第 i 个分量称为 .
件
篇
数学实验
软
2.1.1 向量的创建
MATLAB中向量可以由以下方法创建:
(1)元素输入法
在命令行窗口中直接输入,向量元素用“[ ]”括起来,元素之间用空格、逗号或分
号分隔.用空格和逗号分隔生成行向量,用分号分隔生成列向量.
MATLAB数学实验报告2
MATLAB数学实验报告姓名:李帆班级:机械(硕)21学号:2120104008第一次数学实验报告——线性规划问题一,实验问题1,某饲养场饲养动物出售,设每头动物每天至少需要700g蛋白质,30g矿物质,100mg 维生素。
现有五种饲料可供选择,各种饲料的每千克营养成分含量和单价如下表。
是确定既能满足动物生长的营养需要,游客是费用最省的选用饲料方案。
2,某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。
工厂每天可利用的工时为12个,可供应的原料为15公斤。
为使总利润为最大,试确定日生产计划和最大利润。
二,问题分析1,1)该题属于采用线性规划的方式求出最优解的数学问题。
该题有以下特点,1.目标函数有线性,是求目标函数的最小值;2.约束条件为线性方程组;3.未知变量都有非负限制。
1,2)求解该类问题的方法有图解法,理论解法和软件解法。
图解法常用于解变量较少的线性规划问题。
理论解法要构建完整的理论体系。
目前用于解线性规划的理论解法有:单纯形法,椭球算法等。
在此,我们采用单纯形法的MATLAB软件解法来求解该问题。
1,3)此题中,要求既要满足动物生长的营养需要,又要使费用最省,则使每种饲料的选用量为变量,以总费用的最小值为所求量,同时每种饲料的使用量要符合营养成分的要求。
1,4)在此,首先确定建立线性规划模型。
设饲料i选用量为xi公斤,i=1,2,3,4,5.则有模型:Minz=0.2x1+0.7x2+0.4x3+0.3x4+0.8x5s.t.{3x1+2x2+6x4+18x5>=700;x1+0.5x2+0.2x3+2x4+0.5x5>=300.5x1+x2+0.2x3+2x4+0.8x5>=100Xj>=0,j=1,2,3,4,5解之得:x1=x2=x3=0X4=39.74359X5=25.14603Zmin=32.435902,1)该问题与第一题分析步骤相似,故只在此写出其线性规划模型Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15三,程序设计流程图第一题:c=[0.2,0.7,0.4,0.3,0.8]A=[3,2,1,6,18;1,0.5,0.2,2,0.5;0.5,1,0.2,2,0.8;1,0,0,0,0;0,1, 0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]b=[700,30,100,0,0,0,0,0][x,fval]=linprog(c,-A,-b)c=0.20000.70000.40000.30000.8000A=3.0000 2.0000 1.0000 6.000018.00001.00000.50000.20002.00000.50000.5000 1.00000.2000 2.00000.80001.000000000 1.000000000 1.000000000 1.000000000 1.0000b=7003010000000Optimization terminated.x=0.0000-0.00000.000039.743625.6410fval=32.4359第二题c=[-2-3-5]A=[231;315]b=[12;15]lb=[000][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。
MATLAB实验报告
实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量矩阵数组的生成及基本运算(区分数组运算和矩阵预算)、常用的数学函数。
了解字符串的操作。
二、实验内容(1)向量的生成和运算。
(2)矩阵的创建、引用和运算。
(3)多维数组的创建和运算。
(4)字符创的操作。
三、实验步骤1.向量的生成和运算1)向量的生成<1>、直接输入法<2> 冒号表达式法<3> 函数法:Linspace()是线性等分函数,logspace()是对数等分函数。
2)向量的运算1>维数相同的行、列向量之间可以相加减,标量可以与向量直接相乘除。
2>向量的点积与叉积运算E1和E2虽然表达式相同,但E1是标量,E2是矩阵。
2.矩阵的创建、引用和运算1)矩阵的创建和引用矩阵是由m*n元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。
1>直接输入法:2>抽取法:包括单下标抽取和全下表抽取两种方式,且两种方式抽取的元素都必须以小括号括起来。
3>函数法:利用ones(m;n)创建全1矩阵,zeros()创建全0矩阵,eyes()创建单位矩阵等等。
4>拼接法:纵向拼接横向拼接5>利用拼接函数cat()repmat()和变形函数reshape()>> A1=[1 2 3;9 8 7 ;4 5 6];A2=A1.';>> cat(1,A1,A2) 沿行向拼接ans =1 2 39 8 74 5 61 9 42 8 53 7 6>> cat(2,A1,A2) 沿列向拼接ans =1 2 3 1 9 49 8 7 2 8 54 5 6 3 7 6>> repmat(A1,2,2)ans =1 2 3 1 2 39 8 7 9 8 74 5 6 4 5 61 2 3 1 2 39 8 7 9 8 74 5 6 4 5 6> A=linspace(2,18,9)A =2 4 6 8 10 12 14 16 18 >> reshape(A,3,3)ans =2 8 144 10 166 12 182)矩阵的运算练习(1)用矩阵除法求下列方程组的解x=[x1;x2;x3]>> A=[6 3 4;-2 5 7;8 -1 -3];B=[3;-4;-7];X=A\BX =1.0200-14.00009.7200(2)求矩阵的秩A=[6 3 4;-2 5 7;8 -1 -3];>> rank(A)ans =3[X,lamda]=eig(A)X =0.8013 -0.1094 -0.16060.3638 -0.6564 0.86690.4749 0.7464 -0.4719lamda =9.7326 0 00 -3.2928 00 0 1.5602(3)矩阵的开方>> B=sqrtm(A)B =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 +2.3845i (4)矩阵的指数与对数:> C=expm(A)C =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745>> logm(C)ans =6.0000 3.0000 4.0000-2.0000 5.0000 7.00008.0000 -1.0000 -3.0000(6)矩阵的转置D=A'D =6 -2 83 5 -14 7 -3(7)矩阵的提取与翻转:通过各种特定函数如triu(A)、tril(A),diag(A)、flipud (A)、fliplr(A)等等。
Matlab数学实验2 一元函数极限
x 3 由于左右极限不等,我们就可以指出lim 不存在了。 x 3 | x 3 |
二重极限的命令调用格式: limit(limit(f,x,x0),y,y0)表示
例6.计算 lim ( x y) ln( x 2 y 2 )
( x , y ) (0,0)
( x , y )( x 0, y 0 )
如果我们绘制函数的图像,x 3这一点不连续是很明显的, 为了要显示图像的间断点,我们给Matlab指定了定义域:
也可以编写如下程序代码: x=[-5:0.1:5]; y=(x-3)./abs(x-3); plot(x,y) axis([-5 5 -2 2])
结果如下图所示:
由于x 3是间断点,所以当x 3时要求左右极限, 运行命令如下所示:
命令
limit(f) limit(f,x,a)或 limit(f,a) limit(f,x,inf)
功能
命令
limit(f,x,a, 'right') limit(f,x,a, 'left') limit(f,x, +inf) limit(f,x, -inf)
功能
lim f ( x)
x 0
xa
4、 解:输入命令: limit((cot(x))^(1/log(x)),x,0,'right') 得结果:ans=1/e1.实验目的
掌握函数极限的运算常用命令及常用函数
2.实验要求
熟练掌握有关limit命令的操作及应用
3. 实验内容
MATLAB求解极限的命令
☆ MATLAB使用syms这个函数命令来创建和定 义基本的符号对象.其调用格式为: syms Var1 Var2 … ☆一元函数极限的调用格式如下表所示:
数学实验二(matlab中二分法求解方程)
云南大学数学与统计学实验教学中心实验报告
数学实验(二)
一、实验目的:练习用数值迭代逼近法解非线性方程。
1.区间迭代法:对分法和黄金分割法
2.点的迭代法:简单迭代法
二、实验内容:用二分法(即对分法)编程求解方程。
0123=---x x x
三、实验环境:MATLAB.
四.实验方法:
程序代码:
function X=fan(a,b)
e=1e-2;
ep=1;
x0=a;
xn=b;
x=0;
k=0;
N=100;
while (ep>e)
x=(x0+xn)/2;
f1=x^3-x^2-x-1;
f2=x0^3-x0^2-x0-1;
f3=xn^3-xn^2-xn-1;
if f1*f2<0
x0=a;
xn=x;
elseif f1*f3<0
x0=x;
xn=b;
end
ep=abs(f1);
k=k+1;
if k>N
break;
end
x
ep
实验结果:
fan(a,b)
x =
1.8572
ep =
0.0993
五、实验过程
1实验步骤
2 关键代码及其解释
3 调试过程
六、实验总结
1.遇到的问题及解决过程
2.产生的错误及原因分析
3.体会和收获。
数学实验报告2函数的可视化与Matlab作图[1]6页word
实验报告实验课程名称数学实验与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数学实验报告
实验一 Matlab基本操作1.实验课程名称数学实验2.实验项目名称Matlab基本操作3.实验目的和要求了解Matlab的基本知识,熟悉其上机环境,掌握利用Matlab进行基本运算的方法。
4.实验内容和原理内容:三角形的面积的海伦公式为:area=)s-sa--)()(s(csb其中: s=(a+b+c)/2原理:将一般数学问题转化成对应的计算机模型并进行处理的能力。
了解Matlab的基本功能,会进行简单的操作。
5.主要仪器设备计算机与Windows 2000/XP系统;Matlab等软件。
6.操作方法与实验步骤步骤:(1)在M文件编辑窗口输入以下程序,并以文件名”area_helen.m”保存:a= input(‘a=‘) ; b= input(‘b=‘) ; c= input(‘c=‘) ;s= (a+b+c)/2;area=sqrt (s* (s-a) * (s-b) * (s-c))(2)在命令窗口输入文件名“area_helen”,按回车键,即可运行上面的程序,输入三边长,立即可得三角形面积(3)第二题在命令窗口输入b=6;a=3;c=a*b,d=c-2*b(4) 按回车键,即可运行上面的程序7.实验结果与分析<1> a=3; b=4; c=5;时,aera=6 当a为3,b为4,c为5时,s=6,aera=6<2> c= 18,d=6,a为3,b为6时,c=18,d=6实验二 Matlab的数值计算1.实验课程名称数学实验2.实验项目名称Matlab的数值计算3.实验目的和要求了解一些简单的矩阵、向量、数组和多项式的构造和运算方法实例,懂得编写简单的数值计算的Matlab程序。
熟悉一些Matlab的简单程序,会用Matlab的工具箱,懂得Matlab的安装和简单的使用。
4.实验内容和原理内容:从函数表:)1(),5.0(),2( ,0x 1x 021x 1x f(x) 32-⎪⎩⎪⎨⎧≤≤<>+=f f f x x求设)1(),2( ,1211)(2-⎩⎨⎧≤>+=f f x xx x x f 求设 原理:利用矩阵、向量、数组、和多项式的构造和运算方法,用常用的几种函数进行一般的数值问题求解。
matlab实验报告实验二
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例15:用二分法求函数x^2-2=0的正实根.
f ( x ) x 2 2, [a, b] [1,2], f (a ) f (b) 0
1)c (a b) / 2 :
if f (c ) 0(或 | f (c ) | r ), g c;
elseif f (c ) f (a ) 0 b c;
function [p,q]=fun1(a,b,n) p=(a+b).^n; q=(a-b).^n; fun1.m
例14编制程序,从键盘输入a,b,n,计算(a+b)^n,(ab)^n aa8.m a=input(„a=„);b=input(„b=„);n=input(„n=„); [p,q]=fun1(a,b,n); fprintf(„(a+b)^n=%.4f,(a-b)^n=%.4f\n‟,p,q)
aa3.m
例4
编程产生一个 m n矩阵,使得 1 A(i, j) i j
m=input('请输入 m= '); n=input('请输入 n= '); for i = 1:m for j = 1:n A(i,j) = 1/(i+j); end end A
例5 数列极限 MATLAB程序: hold on % 图形迭加 axis([0,100,2,3]); % 设置坐标轴 grid % 加坐标网格 for n=1:90 % 循环操作 an=(1+1/n)^n; % 计算数列值 plot(n,an,'r*'); % 画出坐标点 pause(0.05); % 暂停0.05秒 fprintf('n=%d an=%.4f\n',n,an); % 显示坐标位置 end
fprintf(' M=%.5f\n ',M);
aa6.m
M-文件中选择控制命令(if命令)
多项选择控制 格式: if (condition is true) commands; elseif (condition is true) commands; else commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。
x=input(‘成绩=’) switch fix(x/10) case {10,9} grade='A' case 8 grade='B' case 7 grade='C' otherwise grade='D' end
Break 语句
Break语句的格式为: break; 用于立即跳出包含该 break语句的各种循 环语句while和for 在循环语句中使用的 break语句一般应和if 语句配合使用 例如: while 条件1 …….. if 条件2 break; end ……… end
fprintf('k=%.0f A(%.2f,%.2f) B(%.2f,100) d=%.2f\n',k ,A(1),A(2),B(1),d);
end
M-文件中条件循环命令(while命令)
格式: while (condition is true) commands; end 作用:当条件成立时,执行命令集 commands,直到条件不成立.
if f(a)*f(c)<0 b=c; else a=c; end c=(a+b)/2; fprintf('k=%.0f,c=%.8f\n', k,c); k=k+1; end
二分法求根程序:
a=1;b=2; er=1.0e-8; k=1; c=(a+b)/2; while abs(b-a)>er if abs(f(c))==0 fprintf('k=%.0f,r=%.8f\n',k,r); break; end function y=f (x) y=x^2-2;
No
| b a | er ?
Yes
输出:迭代次数k,方程的近似根c.
二分法求根程序:
a=1;b=2; er=1.0e-8; f=inline('x.^2-2'); k=1; c=(a+b)/2; while abs(b-a)>er if abs(f(c))==0 fprintf('k=%.0f,r=%.8f\n',k,r); break; end
例15 编写一个function 函数,调用该函数 ,可以将考试分数 值化为“A” ”B” “C” ”D”等级值.
function f=grad(x) switch fix(x/10) case {10,9} grade='A' case 8 grade='B' case 7 grade='C' otherwise grade='D' end
例12:建立符号函数sgn(x)
function sn=sgn(x) if x>0 sn=1; elseif x==0 sn=0; else sn=-1; end 以sgn作为文件名存盘,即建立了函数。 调用: 在命令区执行 : sn=sgn(10)或sn=sgn(-2)
例13:建立计算(a+b)^n,(a-b)^n的函数
用M-文件定义函数
格式 function [y1,y2]=funname(x,y,a,n) 其中: function 为关键字; [y1,y2,…]为输出列表; funname为自定义的函数名; (x,y,a,n,…)为函数参数,用来传递相 关数值. 存盘时,要求用funname作为函数名.
else a c;
2) if b a er,stop, 输出根。 否则goto 1).
输入初值: f ( x ), a , b, 误差限er
c (a b) / 2
f (c ) 0 ?
No Yes
ac
No
f (a ) f (c ) 0 ?
Yes
bc
c (a b) / 2
if f(a)*f(c)<0 b=c; else a=c; end c=(a+b)/2; fprintf('k=%.0f,c=%.8f\n', k,c); k=k+1; end
实验内容
1. 编写程序实现猜数游戏
首先由计算机随机产生一个 [1,100] 之间的一 个整数,然后由用户猜测所产生的这个数。根据 用户猜测的情况给出不同的提示,如果猜测的数 大于产生的数,则显示 “High” ,小于则显示 “ Low ” ,等于则显示 “You won!”,同时退 出游戏。用户最多有 7 次机会。
例7:求和:s=1+2+…+n<3000
s=0;k=1; while s+k<3000 s=s+k; fprintf(' k=%.0f, s=%.0f\n ',k,s); k=k+1; end aa4.m
例8:求e:e=1+1+1/2!+1/3!+… (1/n!<1.0e-8) p=1;e=1;r=1;i=1; while r>=1.0e-8 p=p*i; r=1/p; e=e+r; fprintf(' i=%.0f, r=%.9f, e=%.9f \n ',i,r,e); i=i+1; end aa5.m
程序结构
程序一般包含: 数据输入 a=input('请输入数组 a[n]= '); [m,n]=size(a); M=a(1); for i=2:n if M<a(i) M=a(i); end end fprintf(' M=%.5f\n ',M);
数据处理
结果输出
M-文件中输入、输出命令
直接赋值输入: x=2; a=[1,2;3,4]; s= 'any string!';
直接输出: x
提示对话输入(input命令) x=input('请输入参数 x='); a=input('请输入矩阵 a='); s=input('Please input s=');
格式控制输出(fprintf命令) fprintf('x=%.0f, y=%.5f\n',pi,pi);
M-文件中循环控制命令(for命令)
例2:求阶乘:p=1×2 × 3 × … × n=n! n=input('请输入 n= '); p=1; for i=1:n p=p*i; fprintf(' i=%.0f, p=%.0f\n ',i,p); end aa2.m
例3:求e:e=1+1+1/2!+1/3!+…+1/n! n=input('请输入 n= '); p=1;e=1; for i=1:n p=p*i; p1=1/p; e=e+p1; fprintf(' i=%.0f, p=%.0f, e=%.8f \n ',i,p,e); end
M-文件中选择控制命令(if命令)
单项选择控制 格式: if (condition is true) commands; end 作用:若条件成立,则执行命令集 commands. 否则,不执行。
例9:求n个实数中最大的数M.
a=input('请输入数组 a[n]= '); [m,n]=size(a); M=a(1); for i=2:n if M<a(i) M=a(i); end end
B=7;