(打号的不要求掌握就不列出来了)
1.入门基础
1.1创建向量、矩阵
a=1:2:8 (a=[1 3 5 7])
a=1:7;
a=[1 3]
a=linspace(1,9,3) (a = [1 5 9])
a=zeros(1,4) (a=[0 0 0 0])
a=eye(3,5)
(a=[1 0 0 0 0
0 1 0 0 0
0 0 1 0 0])
a=ones(1,5) (a=[1 1 1 1 1])
a=rand(x1,x2,x3,…) 产生n维随机数,大小范围(0,1),两边都取不到
cell 元胞数组
a={‘winter’,123,‘coming’,‘哈哈’};
sparse 创建稀疏矩阵
A=
0 2 0
4 0 6
7 0 0
B=sparse(A)
(2,1) 4
(3,1) 7
(1,2) 2
(2,3) 6
1.2常数
ans 默认结果变量
pi 圆周率
eps 简单的理解为精度值(对于有些分母接近0的,可以加一个eps)
inf 无穷
NaN not a number 一般是因为结果无法计算导致,可能是无穷。还可以用于图形挖去一部分
1.3算术运算符 + - * / \ ^
数组运算符 . ./ .\ .^
矩阵运算符 + -* / \ ^
1.4关系运算符
< <= > >= ~= ==
1.5逻辑预算符
& | ~ && ||
matlab中&和&&差别不大,&&更加智能一些
1.6数组类型
double 双精度
char 字符串
class 查看数据类型
1.7数据的输入输出
input 记得打单引号
x = input(prompt)
str = input(prompt,‘s’)
disp 直接将内容输出在Matlab命令窗口中
sprintf 用格式控制,数字转换成字符串
format 用于设置输出格式
fprintf 把格式化的文本写到文件中或显示屏上
disp(sprintf(‘圆周率pi= %8.5f’,pi))
圆周率pi= 3.14159
1.8绘制函数
1.8.1绘制曲线、参数方程
plot plot(x,y,‘r*’)
plot3 plot(x,y,z,‘r*’)
ezplot ezplot(x,y)
ezplot(f,[min,max])
ezplot(f,[xmin,xmax,ymin,ymax])
figure figure(1)
subplot subplot(3,1,3) (三行,一列,图位于第三个)
1.8.2绘制曲面
meshgrid 绘制坐标网点
mesh(X,Y,Z)
[X,Y]=meshgrid(x,y)
mesh 绘制曲线
surf 和mesh类似
1.8.3极坐标
polar (polarplot)
最简单而常用的命令格式:POLAR(THETA, RHO)
其中,THETA是用弧度制表示的角度,RHO是对应的半径。
1.8.4其他函数
hold on, hold off, subplot, figure
1.9常用函数
1.9.1一般常用函数
size
返回数组的行数和列数
length
L = length(X) 返回 X 中最大数组维度的长度。
who who给出的列表只能按变量名的字母顺序排问列。
whos whos给出的列表可以按变量名的字母顺序排列,也可以按尺寸、所占字节数等顺序排列。
diag
D = diag(v) 返回包含主对角线上向量 v 的元素的对角矩阵。
v = [2 1 -1 -2 -5];
使用 diag 创建一个包含 v 在主对角线上的元素的矩阵。
D = diag(v)
D = 5×5
2 0 0 0 0
0 1 0 0 0
0 0 -1 0 0
0 0 0 -2 0
0 0 0 0 -5
创建一个包含 v 在第一个上对角线 (k=1) 上的元素的矩阵。
D1 = diag(v,1)
D1 = 6×6
0 2 0 0 0 0
0 0 1 0 0 0
0 0 0 -1 0 0
0 0 0 0 -2 0
0 0 0 0 0 -5
0 0 0 0 0 0
如果v是矩阵的话,就返回矩阵的对角元,是一个列向量。
diag(diag(a)) 假设a是数组
取出数组a的对角元构成一个新的数组
1.9.2统计
min
M = min(A)
返回A的最小值,如果为矩阵返回每一列的最小值。是一个行向量。
M = min(A,[],dim)
返回维度dim上的最大值。 max(A,[],2) 是包含每一行的最大值的列向量。
[M,I] = max(___) 返回最小值列表M和最小值所在的位置I(这里的I,是在每一列的位置)。
max (同理min)
sum 正常是返回一行每一列各自的和
S = sum(A,dim) 沿维度 dim 返回总和。例如,如果 A 为矩阵,则 sum(A,2) 是包含每一行总和的列向量。
mean
求平均值 mean(A) mean(A,1)每一列的平均值 mean(A,2) 每一行的平均值
1.9.3排序
sort 排序 (默认升序)
[B,I]=sort(v,direction)
当direction为’ascend’是升序
当direction为’descend’是降序
B为排序后的元素,I为排序后的数组B的元素在原数组v中位置的下标
B = sort(A,dim) 返回 A 沿维度 dim 的排序元素。例如,如果 A 是一个矩阵,则 sort(A,2) 对每行中的元素进行排序。
sort(A,‘ComparisonMethod’,‘abs’) 按模对 A 的元素进行排序。
1.9.4查找
find
[row,col] = find( )使用前面语法中的任何输入参数返回数组 X 中每个非零元素的行和列下标。
k = find(X) 返回一个包含数组 X 中每个非零元素的线性索引的向量。
k = find(X,n) 返回与 X 中的非零元素对应的前 n 个索引。
k = find(X,n,direction)(其中 direction 为 ‘last’)查找与 X 中的非零元素对应的最后 n 个索引。direction 的默认值为 ‘first’,即查找与非零元素对应的前 n 个索引。
1.10数学函数
1.10.1基本函数
abs 求绝对值
exp 自然对数
sqrt 开平方根
log
我们通常所说的log是指以10为底的对数,而MATLAB中的log却不是这样。Matlab中的log函数在默认情况下是以e为底,如果需要计算以10为底的对数,那么需要用log10()函数。同理计算以2为底的对数需要用log2()函数。
log2(4)
ans = 2
log10(10)
ans = 1
log(10)
ans = 2.3026
conj
Zc = conj(Z)
求矩阵 Z 中每个复数的复共轭。
mod
rem
mod(a,m) a/m a:被除数 b:除数
mod 函数生成一个为零或与除数具有相同符号的结果。rem 函数生成一个为零或与被除数具有相同符号的结果。
1.10.2三角函数和反三角函数
sin
cos
tan
cot
asin <=>arcsin
acos
atan
acot
1.10.3取整函数
fix
Y = fix(X) 将 X 的每个元素朝零方向取整
floor 朝负无穷取整
ceil 朝正无穷取整
round 四舍五入为最近的小数或整数
1.11字符串操作数组
strcat
s = strcat(s1,…,sN) 水平串联 s1,…,sN
strvcat 列拼接
str2num
X = str2num(chr) 将字符数组或字符串标量转换为数值矩阵。
num2str
2控制语句
2.1分支语句
if if elseif else end
switch switch case { }, otherwise, end
2.2循环语句
for for i= end
while while i< end
2.3其他函数语句
continue
for、while语句中,用于跳出本次循环
break
中止本次循环并跳出最内层循环
pause
pause(n) 暂停执行 n 秒,然后继续执行。用来画动态点形成的动态图形。
erro
if 逻辑表达式
erro(’ message’),
end
warning 从来没用过
3函数
3.1 inline 不要求
3.2匿名函数
f=@(x)x^2;
3.3 主函数、子函数、系统变量
function function [a,b]=myfun©
nargin 统计输入参数的个数
nargout 统计输出参数的个数
return 基本没用过
4符号工具箱
4.1符号表达式
syms 符号变量
pretty 一个为了让公式更美观的函数(尽管还是很丑)
simplify 化简函数
s=simplify(x^3+3 x ^2+3)
4.2符号计算
diff diff(f,x,n) 求函数f对自变量x的n阶导
limit limit(y,t,inf) 求函数y的自编量t趋于无穷时的值
int int(f,x,a,b) 求函数对x从a到b的积分
solve
[y1,…,yN] = solve(eqns,vars)
solve(2x == 1,x)
dsolve
dsolve(diff(y,t)==y)
S = dsolve(eqn,cond)
例子
syms y(t) a b
eqn = diff(y,t,2) == a^2*y;
Dy = diff(y,t);
cond = [y(0)==b, Dy(0)==1];
ySol(t) = dsolve(eqn,cond)
syms y(t) z(t)
eqns = [diff(y,t)z, diff(z,t)-y];
[ySol(t) zSol(t)] = dsolve(eqns)
4.3常用函数
subs 替换函数
fval=subs(f,{x,y},{1,2}) 将函数f中的x,y替换为1,2
4.4泰勒公式
taylor
taylor(f) 计算5阶劳林表达式
taylor(f,v,a,name,value)
exp(x)的7阶麦克劳林展开式
taylor(exp(x),x,0,‘order’,8) 其中0是展开点
5微积分实验
验证行、实验设计、实验过程;
微积分相关知识点的实验设计
6线性代数实验
6.1线性方程组求解
Ax=b x=A\b
6.2矩阵运算
eig 求特征值和特征向量
[P,D]=eig(A)
P是满秩,P的列向量构成对应于D的特征向量组
D是对角阵,保存所有的特征向量
inv 求矩阵的逆
det 求行列式的值
rand 求矩阵的秩
diag 求矩阵的对角元
tril 获取下三角矩阵
triu 获取上三角矩阵
6.3线性代数相关实验设计
7数值计算实验
7.1 非线性方程求根
roots
求解3x^2-2x-4=0
p = [3 -2 -4];
r = roots§
fzero
fun = @sin; % function
x0 = 3; % initial point
x = fzero(fun,x0)
fun = @cos; % function
x0 = [1 2]; % initial interval
x = fzero(fun,x0)
fsolve
x = fsolve(fun,x0) starts at x0 and tries to solve the equations fun(x) = 0, an array of zeros.
牛顿迭代法
7.2 曲线拟合
polyfit
p=polyfit(x,y,n)
说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。
polyval
y=polyval(p,x)
说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
7.3 数值积分
quad
q = quad(fun,a,b,tol)
- fun 被积函数文件名或函数句柄
- a, b 积分下限,积分上限
- tol 积分精度,tol可省略。
梯形法、矩形法
7.4 微分方程数值解
ode23
[T, Y] = ode23(‘F’,Tspan,y0)
Tspan = [t0,tN]是常微分方程求解区域;y0是表示初始条件;
其中:‘F’ 是包括函数文件名字的字符串或函数句柄。
Tspan = [t0,tN]是常微分方程求解区域;y0是表示初始条件;
例子
function myfun
y0=[2;0];
tn=[0,10];
[t,y]=ode23(@fun1,tn,y0);
plot(t,y(:,1),‘o’,t,y(:,2),’+’);
function dfun=fun1(t,y)
dfun=[y(2);(1-y(2)^2)*y(2)-y(1)];
ode45(没有具体讲,用法同上)
8 最优化方法实验
8.1 一元函数极值
fminbnd 单变量无约束(边界约束)
[xmin,ymin]= fminbnd(fun,x1,x2)
返回xmin和ymin,x要介于x1、x2之间。
8.2 多元函数极值
fminsearch
[xmin,ymin,(exitflag)]=fminsearch(f,x0)
f是函数,x0是起始点。
8.3 解线性规划
linprog
[xmin,fmin]=linprog(C,A,b,Aeq,beq,Lb,Ub)
8.4 解非线性规划
fmincon
[xmin,fmin]=fmincon(fun,X0,A,b,Aeq,Beq,Lb,Ub,nonlcon)
function [C,Ceq]=nonlcon(X) 非线性部分
9 随机实验与统计
9.1 随机数
9.1.1 均匀分布随机数
rand (0,1)的随机数
unifrnd 获得连续的均匀分布
unifrnd(A,B) A和B可以是矩阵,产生A和B之间的随机数
unidrnd (没要求)获得离散的均匀分布
unidrnd(10,1,3)
9.1.2 正态分布随机数
randn 生成服从正太分布的随机数
9.2 统计
9.2.1 直方图,柱状图
hist
bar
9.3 蒙特卡罗法及其应用
9.3.1 原理
9.3.2 估算圆周率
9.3.3 估算定积分
9.3.4 估算二重积分
9.3.5 估算平面区域面积
9.3.6 估算立体体积
9.3.7 求解优化模型
10 数学建模与实验设计
10.1 问题抽象与建模
分析问题,明确建模目标,建立数学模型
函数,最优化模型,微分模型,差分方
程(组),微积分,线性代数,拟合,非线
性方程(组)等
10.2 实验设计
10.3 建模与实验中的算法设计
11 综合应用能力
help
helpwin
doc (强烈推荐使用)
//补充
eval 将字符串变成可以执行的代码