matlab(5月6日晚上练习)
matlab实验三、四、五、六(2012-2013-1)
实验三 图像的代数运算
一、实验目的
1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验原理
图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:
C(x,y) = A(x,y) + B(x,y)
C(x,y) = A(x,y) - B(x,y)
C(x,y) = A(x,y) * B(x,y)
C(x,y) = A(x,y) / B(x,y)
图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。
使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。下表列举了所有图像处理工具箱中的图像代数运算函数。
表2-1 图像处理工具箱中的代数运算函数
函数名功能描述
Imabsdiff 两幅图像的绝对差值
Imadd 两幅图像的加法
Imcomplement 补足一幅图像
Imdivide 两幅图像的除法
Imlincomb 计算两幅图像的线性组合
Immultiply 两幅图像的乘法
imsubtract 两幅图像的减法
MATLAB编程练习(含答案很好的)
001双峰曲线图:
z=peaks(40);
mesh(z);
surf(z)
002解方程:
A=[3,4,-2;6,2,-3;45,5,4];
>> B=[14;4;23];
>> root=inv(A)*B
003傅里叶变换
load mtlb ;
subplot(2,1,1);
plot(mtlb);
>> title('原始语音信息');
>> y=fft(mtlb);
>> subplot(2,1,2);
>> yy=abs(y);
>> plot(yy);
>> title('傅里叶变换')
004输入函数:
a=input('How many apples\n','s')
005输出函数
a=[1 2 3 4 ;5 6 7 8;12 23 34 45;34 435 23 34]
a =
1 2 3 4
5 6 7 8
12 23 34 45
34 435 23 34
disp(a)
a =
1 2 3 4
5 6 7 8
12 23 34 45
34 435 23 34
b=input('how many people\n' ,'s')
how many people
two people
b =
two people
>> disp(b)
two people
>>
006求一元二次方程的根
a=1;b=2;c=3;
d=sqrt(b^2-4*a*c);
x1=(-b+d)/(2*a)
x1 =
-1.0000 + 1.4142i
>> x2=(-b-d)/(2*a)
实验二:MATLAB编程单纯形法求解
北京联合大学
实验报告
项目名称:运筹学专题实验报告
学院:自动化专业:物流工程
班级: 1201B 学号:2012100358081 姓名:管水城成绩:
2015 年 5 月 6 日
实验二:MATLAB编程单纯形法求解
一、实验目的:
(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab (C 或VB)语言进行程序设计中一些常用方法。
(2)使学生对线性规划的单纯形法有更深的理解. 二、实验用仪器设备、器材或软件环境 计算机, Matlab R2006
三、算法步骤、计算框图、计算程序等
本实验主要编写如下线性规划问题的计算程序:
⎩⎨
⎧≥≥≤0
,0..min b x b Ax t s cx 其中初始可行基为松弛变量对应的列组成. 对于一般标准线性规划问题:
⎩⎨
⎧≥≥=0
,0..min b x b Ax t s cx 1.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:
对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。设初始基为B,然后执行如下步骤:
(1).解B Bx b =,求得
1
B x B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量
(2).计算单纯形乘子w, B wB C =,得到1
B w
C B -=,对于非基变量,计算判别数
1i i i B i i z c c B p c σ-=-=-,可直接计算σ=1
B A c c B --令
max{}k i R
σσ∈=,R 为非基变量集合
青岛大学 matlab实验5、6
MATLAB 实验五
一、实验目的:Be familiar with Input/Output functions
二、实验内容:
1. Write a m-file. The m-file creates an array containing 1× 50 random values, sorts the array into ascending order, opens a user-specified file for writing only, then writes the array to disk in 32-bit floating-point format , and close the file. It then opens the file and read the data back into 5 × 10 array.
%The M file: sy5.m
a=randn(1,50);
b=sort(a);
fid=fopen('xiaoxiao.dat','w');
cnt=fwrite(fid,b,'float32');
TorF=fclose(fid);
fid=fopen('xiaoxiao.dat','r');
[c,cnt2]=fread(fid,[5,10],'float32');
TorF2=fclose(fid);
2. Edit a file as data4_4.txt that contains 4 × 4 square matrix, then import the array use uiimport function, and calculate the inverse of the square matrix .
MATLAB经典练习题
Matlab 变量命名要符合什么样的规则?
用MATLAB 语句输入矩阵⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1423143212344321A 和⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡++++++++++++++++=i i i i i i i i i i i i i i i i B 41143223411423324132231414233241 如果给出A (5; 6) = 5 命令将得出什么结果?
假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵, 用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。
查阅命令函数“dot ”和“cross ”的作用及使用方法。
先构造矩阵⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=105017368531A ;显示该矩阵的第3行第1列的元素;再显示该矩阵的第1、4行第2、3列的元素;将该矩阵第3行第2列元素改成8;添加1行1列使得第5行第4列的元素为9,其它元素为0.
(1)矩阵每一行中的元素之间要用某个符号分隔,这个符号可以是( )。
A. 分号
B. 减号
C. 回车
D. 空格
(2)ones(n,m)函数是用来产生特殊矩阵的,由它形成的矩阵称为( )。
A. 单位矩阵
B. 行向量
C. 1矩阵
D. 列向量
(3)在 MATLAB 中,函数 log(x)是对 x 求对数,它的底是( )。
A. 2
B 10 C. x D. e (4) 当 a =-3.2,使用取整函数得出-4,则该取整函数是( )。 A. fix B. round C. ceil
matlab练习程序(傅里叶拟合)
matlab练习程序(傅⾥叶拟合)对于⼀组数据,通常可以⽤多项式来拟合,当然对于有周期规律的数据,我们也可以⽤傅⾥叶级数来拟合。
傅⾥叶级数公式形式如下:
当我们确定好n之后,关键就是求出A0、an、bn和w即可。
由于有待求系数在⾮线性函数cos和sin中,我们⽤⾮线性最优化⽅法来求解。
matlab代码如下:
clear all;close all;clc;
n=7; %傅⾥叶级数的阶数
x = (0:0.1:5)';
y = x - x.^2+ 10*cos(2*x).*sin(x)+5*cos(2*x); %构造⼀个模型
% y = [zeros(25,1);ones(26,1)]; %试试阶跃
plot(x,y,'ro')
epsilon = 1e-6;
epsilon_inv = 1/epsilon;
pre=rand(2*n+2,1);
for i=1:500 %⾮线性迭代优化
f0 = func(pre,x,n);
g = y - f0;
%数值计算雅克⽐
for k = 1:length(pre)
x_ = pre;
x_(k) = pre(k) + epsilon;
jac(:, k) = (func(x_,x,n) - f0) .* epsilon_inv;
end
J = jac;
delta = inv(J'*J + eye(2*n+2))*J'* g;
pcur = pre+delta;
if norm(delta) <1e-16
break;
end
pre = pcur;
end
hold on;
x=0:0.01:5;
Matlab习题6(含答案)
实验六三维图形绘制
班级:学号:姓名:
一、实验目的:
1. 掌握绘制三维图形的常用函数。
2. 掌握绘制图形的辅助操作。
二、实验内容:
1. 绘制函数的曲线图和等高线。
=
cos cos
其中x的21个值均匀分布[-5,5]范围,y的31个值均匀分布在[0,10],要求使用subplot(2,1,1)
和subplot(2,1,2)将产生的曲面图和等高线图画在同一个窗口上。
运算结果:
=
2. 绘制曲面图形,并进行插值着色处理。
cos cos 3cos sin 0,022sin x s t y s t s t z s
ππ=⎧⎪⎪=≤≤≤≤⎨⎪=⎪⎩
运算结果:
三、实验心得:
matlab课后习题及答案详解
matlab课后习题及答案详解
第1章练习题
1.安装matlab时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装matlab时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即matlab选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
2.matlab操作方式桌面存有几个窗口?如何并使某个窗口瓦解桌面沦为单一制窗口?又如何将瓦解过来的窗口再次置放至桌面上?与其他计算机语言相比较,matlab语言注重的特点就是什么?matlab系统由那些部分共同组成?
在matlab操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的close按钮,一个是可以使窗口成为独立窗口的undock按钮,点击undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择dock……菜单项就可以将独立的窗口重新防止的桌面上。
matlab具备功能强大、使用方便、输出简便、库函数多样、开放性弱等特点。
matlab系统主要由开发环境、matlab数学函数库、matlab语言、图形功能和应用程序接口五个部分组成。
3.如何设置当前目录和搜寻路径,在当前目录上的文件和在搜寻路径上的文件存有什么区别?命令历史窗口除了可以观测前面键入的命令外,除了什么用途?
当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的setpath菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被matlab运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。
matlab教程习题答案
matlab教程习题答案
MATLAB教程习题答案
MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:
```matlab
sum = 0;
for i = 2:2:100
sum = sum + i;
end
disp(sum);
```
2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:
```matlab
matrix = rand(10, 10);
row_sum = sum(matrix, 2);
col_sum = sum(matrix);
disp(col_sum);
```
3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。答案:
```matlab
fibonacci = zeros(1, 20);
fibonacci(1) = 1;
fibonacci(2) = 1;
for i = 3:20
fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);
end
disp(fibonacci);
```
4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:
```matlab
num = input('请输入一个正整数:');
factorial = 1;
MATLAB讲座5作业及答案(附程序)
MATLAB讲座5作业及答案(附程序)
1、将101-125等25个数填入一个5行5列的表格中,使每行每列及对角线的值和均为565
Matlab程序:
clear all;clc;close all;
n=10000;
for i=1:n
rand=randperm(25)+100;
magic0=[rand(1:5);rand(6:10);rand(11:15);rand(16:20 );rand(21:25)];
magic1=sum(magic0,1);
magic2=sum(magic0,2);
magic3=sum(diag(magic0));
magic4=magic0(5)+magic0(9)+magic0(13)+magic0(17)+ma gic0(21);
if
length(unique(magic1)==1)&&length(unique(magic2)==1 )&&magic3==565&&magic4==565
magic0
break;
end
end
2、已知A=[2 13 23 5;7 4 12 9 ;10 17 4 5] ,B=eye (3),求
(1)A中行的最大元素;
(2)A中列的最小元素;
(3)生成一个与A大小相等的单位阵;
(4)C1=A’*B;
(5)C2=A*B,C24
(6)C3=2A—3B
Matlab程序:
clear all;clc;close all;
A=[2 13 23 5;
7 4 12 9;
10 17 4 5];
B=eye(3);
[m,n]=size(A);
A1=max(A)
matlab仿真实例100题
matlab仿真实例100题
Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程仿真等领域。在学习和使用Matlab的过程中,通过实例的方式进行仿真练习是一种非常有效的学习方法。下面将给出100个Matlab仿真实例题目,帮助读者更好地掌握Matlab的使用。
1. 编写一个程序,计算并输出1到100之间所有奇数的和。
2. 编写一个程序,计算并输出1到100之间所有偶数的乘积。
3. 编写一个程序,计算并输出1到100之间所有素数的个数。
4. 编写一个程序,计算并输出1到100之间所有整数的平方和。
5. 编写一个程序,计算并输出1到100之间所有整数的立方和。
6. 编写一个程序,计算并输出1到100之间所有整数的阶乘和。
7. 编写一个程序,计算并输出1到100之间所有整数的倒数和。
8. 编写一个程序,计算并输出1到100之间所有整数的平均值。
9. 编写一个程序,计算并输出1到100之间所有整数的中位数。
10. 编写一个程序,计算并输出1到100之间所有整数的标准差。
11. 编写一个程序,计算并输出1到100之间所有整数的方差。
12. 编写一个程序,计算并输出1到100之间所有整数的最大值。
13. 编写一个程序,计算并输出1到100之间所有整数的最小值。
15. 编写一个程序,计算并输出1到100之间所有整数的平方根和。
16. 编写一个程序,计算并输出1到100之间所有整数的立方根和。
17. 编写一个程序,计算并输出1到100之间所有整数的对数和。
18. 编写一个程序,计算并输出1到100之间所有整数的指数和。
(完整版)matlab基础练习题(带答案)
Matlab 基础练习题
常量、变量、表达式
1、 MATLAB 中,下面哪些变量名是合法的?( )
(A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。
(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( )
(A )eps (B )none (C )zero (D )exp
4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放
一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 )
5、 判断:MA TLAB 中,i 和j ( 对 )
6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 )
7、 在MA TLAB 中,若想计算的5
1)3.0sin(21+=
πy 值,那么应该在MA TLAB 的指令窗中
输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。
8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字
节。
9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。
数组
1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序
的逆序排列输出,应该使用下面的( )指令。
MATLAB 模拟题6
《 MATLAB 语言》试卷
注意事项:1. 考前请将密封线内填写清楚;
2. 所有答案请直接答在试卷上(或答题纸上); 3.考试形式:开(闭)卷;
一、选择题 (共51分 每题3分) (1)下列不是创建复数的命令______。
A. z=3+2*i
B. z=4+3i
C. z=complex(4 ,5)
D. z=real(3)+imag(8)
( 2 ) 与命令linspace(2,10,5) 产生的向量相同的命令______。
A. a=[2 10 5]
B. a=2:2:10
C. a=logspace(2,10,5)
D. a=2 4 6 8
( 3 )
已知数组a = 9
87654
3
21 ,则a (1,
:)是指_______。 A. 第一列向量
B. 第一行向量
C. 整个数组
D. 第三行向量
(4)a=[1 2;4 5 ];b= [2 1;3 2], 求c=a .* b= 。 A. c=[2 2 ; 12 10] B. c=[1 1 ; 10 12] C. c=[8 5 ; 23 14] D. c=[3 3 ; 7 7]
(5) 已知t=0:3 , y=(t(1))&&(t(2)>3)=_________。 A. 1 B. 2 C. 0 D.T
(6)计算多项式s1 s2 s3 的乘积,则算式位________.
A.conv(s1,s2,s3)
B. s1*s2*s3
C.conv(s1*s2*s3) C. conv(conv(s1,s2),s3)
(7)运行下列命令: >>x=[1 2 3; 4 5 6] >>ploy(x)
MATLAB习题
MATLAB习题
习题一
1、通常情况下,MATLAB的工作界面主要由有哪几种窗口构成?
答:指令窗口、历史指令窗口、工作空间浏览器、当前目录浏览器等窗口构成。
2、在MATLAB窗口中,可以键入各种指令、函数,并显示运行结果的窗口为【 A 】
A、指令窗口
B、当前目录浏览器
C、工作空间浏览器
D、历史指令窗口
3、在MATLAB窗口中,可以对内存变量直接进行操作的窗口为【 C 】
A、指令窗口
B、当前目录浏览器
C、工作空间浏览器
D、历史指令窗口
4、在MATLAB窗口中,记录在MATLAB命令窗口执行过的指令操作的窗口为【 D 】
A、指令窗口
B、当前目录浏览器
C、工作空间浏览器
D、历史指令窗口
5、在MATLAB窗口中,用于搜索、查看和改变MATLAB路径和文件的窗口为【 B 】
A、指令窗口
B、当前目录浏览器
C、工作空间浏览器
D、历史指令窗口
6、在MATLAB语言中,如果一个命令行很长,可以在物理行之后如下续行符【 B 】
A、“,”
B、“…”
C、“、、、”
D、“,”
7、在MATLAB语言中,提示其后语句为输入指令的行提示符为【 D 】
A、“;”
B、“:”
C、“,”
D、“>>”
8、在MATLAB语言中,在指令窗口运行过的指令再次调出运行的按键为【 B 】
A、“;”
B、“↑”或“↓”
C、“,”
D、“>>”
9、在MATLAB语言中,若希望结果不被显示,可在语句之后加上符号【 A 】
A、“;”
B、“:”
C、“,”
D、“>>”
10、在MATLAB语言中,下列常用操作命令解释错误的是【BE 】
MATLAB平时练习题(附答案)
一、填空题
1、MATLAB常用操作界面包括、工作空间窗口、、、内存数组编辑器、M文件编辑/调试器、帮助导航
/浏览器、图形窗口等。
2、MATLAB中Inf或inf表示、NaN或nan表示、nargout表示。
3、MATLAB中逗号主要用作;用作输入量与输入量之间的分隔符;。
4、工作空间浏览器主要用于内存变量的、和。
5、MATLAB实现将全下标转换为单下标的指令为、据单下标换算出全下标的指令为。
6、二维数组的标识有、、“逻辑1”标识。
二、简述下列命令在MATLAB中的作用
1.clf %清除图对象
clear %清除工作空间内的所有变量
clc %清除当前屏幕上显示的所有内容,但不清除工作空间中的数据
2.ceil %沿+∞方向取整
factor %符号计算的因式分解
3.sph2cart %球坐标变为直角坐标
pow2 %2的幂
4.digits(d) %设置当前的可变算术精度的位数为整数 d 位
vpa(pi,100) %设置当前pi的小数位数为100
5.box on %打开框状坐标轴开
grid off %网格关
6.logspace %对数分度向量
cat %串接成高维数组
7.sym2poly %符号多项式转变为双精度多项式系数向量
poly2sym %双精度多项式系数转变为向量符号多项式
8.plot3 %三维线图
poly2str %以习惯方式显示多项式
9.bar %二维直方图
pie %二维饼图
10.zoom on %打开图形缩放模式 edit %M文件编辑
11.whos %对当前工作空间变量的信息进行列表
Matlab测试567答案
第5、6、7章测验
一、单项选择题(每小题6分,共24分)
1.下列命令中,(D)用于计算向量X各元素的积。
A.min(X)
B.sum(X)
C.mean(X)
D.prod(X)
2.对于线性方程组Ax=b,下列解法中,只有( B )是正确的。
A.x=b/A
B.x=A\b
C.x=b*A-1
D.x=b*inv(A) (x=inv(A)*b)
3.下列函数中,( C )用于求解一元函数的最小值。
A.fminsearch (多元函数)
B.fzero
C.fminbnd
D.fsove
4.下列函数中,(B)用于对由表格形式定义的函数关系求定积分。
A.quad
B.trapz
C.diff
D.polyfit(最小二乘拟合多项式系数)
二、填空题(每空7分,共63分)
1.运行命令[y,I]=max(X),则返回向量X的最大值存入__y____,最大值的序号存入_I_,如果X中包含复数元素,则按__模___取最大值。
2.在函数调用格式prod(A,dim)中,当dim为__1___时,该函数等同于prod(A);当dim为___2__时,返回一个列向量,其第i个元素是矩阵A的第__i___行的各元素乘积。
3.运行命令y=min(X),返回向量X的__最小___值。
4.roots函数用于求_多项式__的全部根,其调用格式为x=roots(P),其中P为多项式的_系数向量_,求得的根赋给向量x。
三、判断题(正确的打“√”,错误的打“×”,每小题6分,共12分)
1.X为向量(矩阵就不一样),则y=min(X)与y=min(transpose(X))操作结果一样。(√)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基础知识:
matlab进入与运行方式
变量与函数 数组与矩阵 Matlab程序设计* Matlab作图
参考书:
• • • • • 数学建模与数学实验.高教出版社.赵静 Matlab工具箱应用指南.电子工业出版社.李涛 Matlab统计分析与应用:40个案例分析.北航出版社.谢中华 运筹学与最优化Matlab编程.机械出版社.吴祈宗等 基于matlab7.0的统计信息处理.湖南科技出版社.陈仲生
>> x=[1.23 3.45 6.5789]; >> y=rats(x) y= 123/100 69/20 7296/1109
Matlab浮点数 几乎所有的情况下,matlab数据都是双精度数值表 示,这些双精度数在系统内部是二进制表示。这样带来 一个问题,很多实数不能被精确表示,且对表示的数也 有一个限制,还有一个浮点相对误差,即matlab能够区 分两个实数大小时,这两个数值之间的最小差值。 例题
数组元素的访问
(1)访问一个元素:x(i)表示数组中的第i个元素; (2)访问数组的一块元素:访问某些元素或子块: X(a:b:c)访问数组x的从第a个元素开始,以步 长b到第c个元素,如果b为负值,c缺省为1;
(3)直接使用元素编址序号: x([a b c d])表示提取数组x的第a,b,c,d构成的 数组[x(a),x(b),x(c ),x(d)].
全局变量 Matlab语言中,函数内部定义的变量都是局部 变量,他们不会加载到工作空间。有时用户需要用到 这些变量,就需要用global来定义。 global 变量名 算例 编写M文件: z=a*x^2+b*y^2. function z=funglobal(x,y) global a b z=a*x.^2+b*y.^2; 在命令窗口计算 >> global a b >> a=2;b=3; >> z=funglobal(1,2) z= 14
Matlab优点与缺点
优点
1、容易使用; 2、可以由多操作系统支持; 3、丰富的内部函数; 4、强大的图形和符号功能; 5、可以自动选择算法; 6、可以与其他软件和语言有良好的对接。
缺点
1、matlab是合成语言,因此比其它高级语言,它运 行的时间较长。 2、价格贵!(按功能模块使用期限售价)
Matlab的运行环境和方式
数组 数组的建立 X=[a b c d e f ] 创建指定元素的行向量;
X=first:last
创建从first开始,加1计数,直到last 结束的行向量;
X=first:increment:last 创建从first开始,加 increment计数,直到last结束的行向量; linspace(first,last,n) 有n个元素的行向量。 创建从first开始,last结束,
a*x^(a - 2)*(a - 1) - 4*sin(2*x)
函数积分 积分命令 int(f,v) 求函数f关于v的不定积分 int(f,v,a,b) 求函数f关于v在区间[a,b]上的定积分 >> syms x y >> int(sin(x)*x,x) ans = sin(x) - x*cos(x) >> int(x^2+1/x,x,1,2) ans = log(2) + 7/3
函数导数 命令格式 diff( f,y,n) 对表达式f求关于y的n阶导数 diff (f,n) 对表达式f求关于x的n阶导数 diff (f,y) 默认对表达式f求关于y的一阶导数 diff(f) 默认对表达式f求关于x的一阶导数
>> syms x y a >> diff(sin(2*x)+x^a,x,2) ans =
变量与函数 Matlab中变量名的命名规则是: (1)变量名必须不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过31个字符; (4)变量名必须以字母打头,之后可以任意字母、 数字或下划线,变量名中不允许使用标点符号; 变量的输出格式:format format format long 15字长浮点 short 5字短浮点
当你在计算机里成功安装MATLAB后,你的桌面 就会出现一个matlab图标,然后双击图标,就会进入 matlab界面,共五个窗口: 1、命令窗口(Command Windows) 2、起始界面(Launch Pad) 3、工作空间(Workspace) 4、命令历史(Command History) 5、当前目录(Current Director) Matlab的运行方式有:命令行方式和M文件方式 (后面逐一介绍)
>> c=[1-2i 2+3i 4+3i]; >> c' ans = 1.0000 + 2.0000i 2.0000 - 3.0000i 4.0000 - 3.0000i
>> c.' ans = 1.0000 - 2.0000i 2.0000 + 3.0000i 4.0000 + 3.0000i
数组的运算 (1)标量—数组运算 数组对标量的加、减、乘、除、乘方是数组每个 元素对该标量施加相应的加、减、乘、除、乘方。
Matlab简介 Matlab是美国的MathWork公司1984年推出,是 迄今为止最优秀的科技应用软件之一。其强大的科学计 算与可视化功能、简单易用的开放式可扩展环境以及多 达30多个面向不同领域的可扩展工具箱(Toolbox), 成为许多科学领域应用开发的首选平台。 目前我国很多高校开设了有关matlab的课程,BBs 上有专门的matlab讨论区,美国数模和中国数模竞赛每 年专门设立了matlab应用的专项奖项。 除了基础的数学表达外,与数学建模有关的工具箱 分别为:统计工具箱,偏微分工具箱,样条工具箱,优 化工具箱。
数组的方向 前面产生的数组都是行方向分布的,称为行向量, 数组也可以是列向量,它的产生方式有两种:直接产 生和转置产生 以空格或逗号分隔的元素指定的是不同列的元素, 而以分号分隔的各元素指定了不同列的元素。当数组 b是复数时,转置(b‘)产生的是复数的共轭转置,而点 -转置(b.’)产生的是只对数组的转置,不进行共轭,对 实数来说,b’和b.’是等效的。
Matlab主菜单
Matlab工具栏
Matlab命令窗口
Matlab当前路径
管理和工作空间令
命令 help 功能说明 启动联机帮助
type what clear clc save load who,whos version edit quit dir,delete
列出M文件 列出当前目录下所有M文件 删除内存中所有变量与函数 清空屏幕 将工作空间中的变量存盘 从文件中导入数据 列出空间工作的变量名 显示matlab版本 编辑(M文件名) 退出matlab环境 前者查目录,后者删除文件
>> x=[-4.8 -2.1 -0.1 0.1 2.1 3.8]; [x',sign(x'),fix(x'),floor(x'),ceil(x'),round(x')]
ans = -4.8000 -1.0000 -4.0000 -5.0000 -4.0000 -2.1000 -1.0000 -2.0000 -3.0000 -2.0000 -0.1000 -1.0000 0 -1.0000 0 0.1000 1.0000 0 0 1.0000 2.1000 1.0000 2.0000 2.0000 3.0000 3.8000 1.0000 3.0000 3.0000 4.0000 -5.0000 -2.0000 0 0 2.0000 4.0000
函数的极限、导数、积分
符号函数的格式 syms y x1 x2 y=f(x1); y=g(x1,x2)
>> syms y x x1 x2 >> y=x^2; >> x=sin(x1)*cos(x2); >> y y =x^ >> x x =cos(x2)*sin(x1)
函数的极限 limit (F,x,a). 求函数F当自变量x趋向于a时的极限 limit (F,a) (默认字变量为x) limit(F) (默认x0) limit (F,x,a,'right') limit (F,x,a,'left') syms x a t h; limit(sin(x)/x) returns 1 limit((x-2)/(x^2-4),2) returns 1/4 limit((1+2*t/x)^(3*x),x,inf) returns exp(6*t) limit(1/x,x,0,'right') returns inf limit(1/x,x,0,'left') returns -inf limit((sin(x+h)-sin(x))/h,h,0) returns cos(x) v = [(1 + a/x)^x, exp(-x)]; limit(v,x,inf,'left') returns [exp(a), 0]
Matlab数学函数
函数 sin(x) cos(x) tan(x) 名称 正弦 余弦 正切 函数 asin(x) acos(x) atan(x) 名称 反正弦 反余弦 反正切
abs(x) min(x) sqrt(x) log(x) sign(x) floor(x) round(x) gcd(x,y) rats(x)
>> a=0.33-0.5+0.17 a= 2.7756e-017
>> b=0.33+0.17-0.5 b= 0
>> c=0.17-0.5+0.33 c= 5.5511e-017
M文件 Matlab内部函数有限,为了根据实际问题需要, 研究者需要自己定义一个复杂的函数,这类函数就是 M文件,后缀为m,这类文件第一行必须以function 开始,格式为: function 因变量名=函数名(自变量名) 以下各行从自变量计算因变量的语句,并最终赋值 给因变量。且函数M文件名必须与函数名完全一致。
a=[a1,a2,…,an],a=(标量),则
a+c=[a1+c,a2+c,…,cn+c]; a*c=[a1*c,a2*c,…,an*c]; a./c=[a1/c,a2/c,…,an/c];(右除,分母同) a.\c=[c/a1,c/a2,…,c/an];(左除,分子同) a.^c=[a1^c,a2^c,…,an^c]; c.^a=[c^a1,c^a2,…,c^an];
例1 编写M文件,计算函数值
f ( x) ( x 20 ) 2 ( x 120 ) 2 120 2
并计算f(2),f(20),f(400).
例2 计算f(2,3),f(4,5)。其中
f ( x1, x2 ) 100( x2 x ) (1 x1 )
2 2 1
2
全局变量和局部变量 局部变量 局部变量是在函数内部使用的变量,其影响范围 只能在本函数内,每个函数在运行时,都有独立的函 数工作空间,此空间和matlab的工作空间相互独立, 局部变量仅存在于函数的工作空间。当函数执行完毕 后,该变量基自行消失。
或者vpa(x,n): 显示精确到小数点后第n-1位的x
算例 pi
Matlab中特殊的变量名,用户自命名的变量名 最好避开这些特殊的变量名。
特殊变量 ans pi eps 取值
inf NaN i,j realmin realmax bitmax
用于结果的缺省变量名 圆周率 计算机最小数,1+eps>1 无穷大,1/0 不确定,0/0,∞/∞ 虚数单位 最小正浮点数 最大正浮点数 最大整数
绝对值 最小值 平方根 自然对数 符号函数 沿-∞方向取整 截取最近的整数 x,y的最大公约数 对x有理输出
max(x) sum(x) exp(x) log10(x) fix(x) ceil(x) rem(x,y) lcm(x,y)
最大值 求和 以e为底的指数 以10为底的对数 沿0方向取整 沿+ ∞方向取整 x除以y所得余数 x,y最小公倍数
数学运算符号及标点符号
符号 = 说明 赋值符号
+ * .* ./ ^ .^ () [] ‘ \
加法,适用于两个数或两个同型矩阵 减法运算 乘法运算 点乘运算 点除运算 乘幂运算 向量乘幂 下标运算或参数定义 矩阵生成 矩阵转置 反斜杠表示左除
Matlab中标点符号的意义 (1)matlab每条命令后,若为逗号或无标点符 号,则显示命令的结果;若Hale Waihona Puke Baidu令后为分号,则禁 止显示结果; (2)%后面所有文字为注释; (3)…表示延行.