您的位置:首页 > 编程语言 > MATLAB

matlab在科学计算中的应用1

2017-03-31 16:29 393 查看
一MATLAB 基本命令简介

二MATLAB 程序设计语言基础
数值型数据结构

符号型变量数据类型

MATLAB支持的其它数据结构

MATLAB 的基本语句结构

三基本数学运算
矩阵的代数运算

矩阵的逻辑运算

矩阵的比较运算

解析结果的化简与变换

基本数论运算

四MATLAB 语言流程控制
循环结构

转移结构

开关结构

试探结构

五MATLAB 函数的编写
MATLAB 语言的函数的基本结构

可变输入输出个数

inline 函数和匿名函数

六二维图形绘制
二维图形绘制基本语句

其他二维图形绘制语句

隐函数绘制及应用

七三维图形绘制
三维曲线绘制

三维曲面绘制

一、MATLAB 基本命令简介

clear 清内存

cd 显示修改工作目录

clc 擦除工作窗口显示内容

clf 擦除工作窗口图形

dir 列出目录下文件清单

disp 在运行中显示变量或文字内容

echo 控制运行的文字命令是否显示

hold 控制图形窗口是否刷新

home 擦除命令窗口所有内容

pack 收集内存碎片

quit 退出

type 显示指定文件的全部内容

exit 退出

help 帮助

demo 演示

look for 查找M文件,通过完整的或部分关键字来搜索要查找的内容

who 列出内存中变量

whos 详细信息

what 列出目录下文件

which 显示路径

exist 查找或检查变量和函数的存在性

doc 显示帮助文件

二、MATLAB 程序设计语言基础

MATLAB 的保留常量:





(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.

(2)“%” 后面所有文字为注释.

(3) “…”表示续行.

1. 数值型数据结构

双精度数值变量:double( ) 函数的转换。

其他数据类型:uint8( ),无符号8位整形数据类型,值域为0至255,常用于图像表示和处理。int8( ), int16( ), int32( ),uint16( ), uint32( )

2. 符号型变量数据类型

符号型,sym(A), 常用于公式推导、解析解解法

符号变量声明: syms var_list var_props

例:syms a b real/ syms c positive

符号型数值可采用变精度函数求值:vpa(A), 或 vpa (A,n)

例:vpa(pi,60)

3. MATLAB支持的其它数据结构

字符串型数据:用单引号括起来 。

多维数组:是矩阵的直接扩展,多个下标。

单元数组:将不同类型数据集成到一个变量名下面,用{}表示;例:用A{i,j}可表示单元数组A的第i行,第j列的内容。

类与对象:允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。

4. MATLAB 的基本语句结构

直接赋值语句:赋值变量=赋值表达式

函数调用语句:

[返回变量列表]=函数名(输入变量列表)

例:[a,b,c]=my_fun(d,e,f,c)

冒号表达式:v=s1:s2:s3

该函数生成一个行向量v,其中s1是起始值, s2是步长(若省略步长为1), s3是最大值(不含)。

例:v=[0:0.4:pi,pi] 包括pi

子矩阵提取:B=A(v1,v2)

v1、 v2分别表示提取行(列)号构成的向量。

例:B2=A([3,2,1],[2,3,4]) %提取3,2,1行、2,3,4列构成子矩阵

三、基本数学运算

1. 矩阵的代数运算

矩阵转置:C=A’

矩阵加减法:C=A+B D=A-B

注意维数是否相等

注意其一为标量的情形

矩阵乘法:C=A*B

矩阵除法:

矩阵左除:AX = B,求 X

MATLAB 求解:X=A\B

若A为非奇异方阵,则 X=A-1B

最小二乘解(若A不是方阵)

矩阵右除:XA = B,求 X

MATLAB求解:X=B/A

若A为非奇异方阵,则 X=BA-1

最小二乘解(若A不是方阵)

矩阵翻转

左右翻转 B=fliplr(A)

上下翻转 C=flipud(A)

旋转 90(逆时针) D=rot90(A)

矩阵乘方:F=A^x

MATLAB中矩阵与数组的区别,点运算符的运用:

一维数组相当于向量,二维数组相当于矩阵,所以矩阵是数组的子集。 数组运算是指数组对应元素之间的运算,也称点运算。

数组运算:数组乘数组 A.*B

矩阵运算: 矩阵乘法 A*B 按数学定义的矩阵乘法规则

乘方:k.^A 以k为底的,分别以A的元素为指数求幂值.

2. 矩阵的逻辑运算

与运算(and) A&C

或运算 (or) A|C

非运算(not) ~A

异或运算 xor(A,C)

对 double 变量来说,非 0 表示逻辑 1

3. 矩阵的比较运算

各种允许的比较关系

, >, >=, <, <=, ==,~=, find(), all(), any()

find(A>=5), %大于或等于5元素的下标 ,按列从上自下,从左至右数。

[i,j]=find(A>=5);[i,j] %显示行标,列标

all(A>=5) %某列元素全大于或等于5时,相应元素为1,否则为0。

any(A>=5) %某列元素中含有大于或等于5时,相应元素为1,否则为0。

4. 解析结果的化简与变换

化简:

从各种方法中自动选择最简格式 :s1=simple(s)

[s1,how]=simple(s)

化简并返回实际采用的化简方法。其中,s为原始表达式,s1为化简后表达式,how为采用的化简方法。

其它常用化简函数:

collect( ) 合并同类项

expand( ) 展开多项式

factor( ) 因式分解

numden( ) 提取多项式的分子和分母

sincos( ) 三角函数的化简

变量替换

f=subs(f,{a,b,c,d,t},{a’,b’…,t’})

例:f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})

5. 基本数论运算

下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数



floor(A) % 向 -inf 方向取整

ceil(A) % 向 +inf 方向取整

round(A) %取最近的整数

A=hilb(3); [n,d]=rat(A) %将元素变换成最小有理数,n,d分别为分子、分母矩阵。

gcd(m,n), lcm(m,n) %求m,n的最大公约数、最小公倍数。

factor(A) %对A进行质因数分解。

isprime(A) %若向量A中某个整数值为质数,则相应位置为1,其他为零。

rem(A,C) %A中元素对C中元素求模得出的余数。

四、MATLAB 语言流程控制

1. 循环结构



2. 转移结构



3. 开关结构



当开关表达式的值等于某表达式,执行该语句后结束该结构,不用 break

当需要在开关表达式满足若干个表达式之一时执行某一程序段,则用单元形式 (用大括号把这些表达式括起来,用逗号分隔)

otherwise 语句,不是C语言中的 default(但与之等价)

程序的执行结果和各个case顺序无关

case 语句中条件不能重复,否则列在后面的条件将不能执行

4. 试探结构



全新结构(首先试探性执行语句1,若执行过程中有错,将错误信息赋给保留的lasterr变量,并终止这段语句的执行,转而执行语句2。)应将不保险但快的算法放在语句1,保险的放在语句2;或语句2说明语句1失效原因。

五、MATLAB 函数的编写

1. MATLAB 语言的函数的基本结构



nargin, nargout

分别表示输入和返回变量的实际个数,此为MATLAB保留变量,只要进入该函数, MATLAB就将自动生成这两个变量。

varargin, varargout

输入、输出变量列表(可变输入输出个数)。

2. 可变输入输出个数

例: conv( ) 可以计算两个多项式的积, 用 varargin 实现任意多个多项式的积

function a=convs(varargin)
a=1;
for i=1:length(varargin), a=conv(a,varargin{i}); end


P=[1 2 4 0 5]; Q=[1 2]; F=[1 2 3];

D=convs(P,Q,F)

poly2sym(D) %显示为多项式解析式

3. inline 函数和匿名函数





六、二维图形绘制

1. 二维图形绘制基本语句





例:画分段函数





2. 其他二维图形绘制语句



3. 隐函数绘制及应用



七、三维图形绘制

1. 三维曲线绘制



2. 三维曲面绘制



subplot(a,b,c):将多个图画到一个平面上。图排成m行n列,也就是整个figure中有n个图是排成一行的,一共m行。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。

[X,Y] = meshgrid(x,y):用于生成网格采样点的函数,输出X的每一行的数值都是复制的x的值,一共size(y)行;输出Y的每一列的数值都是复制的y的值,一共size(x)列。即想象成x轴上取向量x中的点,y轴上取向量y中的点,交叉处的网格点即为所求。

[X1,X2,X3,…] = ndgrid(x1,x2,x3,…):更高维的同meshgrid函数功能的函数,在2-D、3-D绘图时,还有个小差别:

[X,Y,Z] = meshgrid(x,y,z)等效于[Y,X,Z] = ndgrid(y,x,z)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息