diff()函数求微分
dsolve()求解微分方程
subs()进行字符替换求解
plot()函数绘图
title()绘图起名
xlabel()命名x轴
grid on网格开
hold on保留绘图
text()在绘图上标注文字
limit()求极限
strcat()字符串拼接
disp()输出
定义函数文件 function 输出=函数名(输入)
legend()添加图例
save()保存当前数据
load()加载指定文件中变量
abs(z) 计算模
angle(z)弧度单位计算辐角
conj(z)共轭复数
角度=180/pi*弧度
polar(theta,rho)极坐标绘图
char 转换为字符数组(字符串)
int2str 整数转换为字符串
mat2str 矩阵转换为字符串
num2str 数字转换为字符串
isnumeric 判断是否为整数或浮点数
isa(x,‘type’)判断是否为指定类型
cast(x,‘type’) 设置为指定类型
intmax(‘type’) 类型的最大整数值
vpa(pi,150)显示变量的精确位
nargin 函数的输入参数的个数
nargout 函数的输出变量的参数个数
ceil()向正无穷取圆整
fix() 向零取圆整
floor向负无穷取圆整
mod() 取余
rem()求余数
round()四舍五入
sign()符号函数
fpiplr()矩阵左右翻转 flipup()矩阵上下翻转 fkipdim()矩阵指定维数翻转 rot90(A,±n)逆时针翻转90 dig()提取对角阵,可嵌套 tril()上三角 triu上三角
min,mean,std标准差,sort,norm欧式长度,prod总乘积,cumsum累计元素总和,cross外积,median中位数,diff相邻元素的差,length,sum。dot内积,cumprod累计元素总乘积
在可逆形势下转换为逆矩阵,右除对右边矩阵逆,左除对左边矩阵逆
linspace()等距向量
~= 不等
all 数组元素是否全部非零
any 数组是否存在非零元素
find 查找非零元素的下标及其值
——————————————
快捷键
home(Ctrl+a)光标置于当前行开头
end(Ctrl+e)光标置于当前行结尾
esc(Ctrl+u)清楚当前输入行
Alt+backspace 恢复上一次删除
微分方程解析解
%% 求解微分方程通解
syms m g cd v(t)
eq=diff(v,t)==g-cd/m*v^2; %微分方程模型
cond=v(0)==0;%初值条件
sol=dsolve(eq,cond)
%% 符号表达式求值
m0=68.1;
g0=9.81;
cd0=0.25;
vt=subs(subs(subs(sol,'m',m0),'g',g0),'cd',cd0)
val=zeros(1,21);
%% 循环求解在时间区间内自由落体速度值
i=1;
for ti = 0:20
val(i)=subs(vt,'t',ti);
i=i+1;
end
%% 对时间内速度进行可视化绘图
tf=0:20;
plot(tf,val,'-','LineWidth',2)
title('0-20s自由落体速度随时间变化曲线')
xlabel('时间t(s)')
ylabel('速度(m/s)')
grid on
hold on
plot(12,val(13),'r.','MarkerSize',15)
text(12,val(13)+3,num2str(val(13)),'HorizontalAlignment','center')
%% 极限速度
limS=limit(vt,'t',inf);
lim=double(limS)
%% 字符串拼接后输出
outstr=strcat('极限是',num2str(lim));
disp(outstr)
数值解
%这是一个函数文件:有输入参数和输出参数
function vt=bengeS(m,cd,th,tend)
if nargin < 4
error('输入参数个数不足')
end
%% 表是运动员质量,cd是集总阻力系数,th表示时间步长,tend表示时间tend秒之前
g=9.81;
i=1;
vbefore=0; %v(ti);
vnext=0; %v(ti+1);
vt=zeros(th,2);
for ti=0:th:tend
vnext=vbefore+(g-cd/m*vbefore^2)*th; %迭代公式
vt(i,1)=ti; %第一列存储时间
vt(i,2)=vbefore; %第二列存储对应时刻的速度值
i=i+1;
vbefore=vnext; %速度的迭代
end
%% 蹦极运动员速度的可视化
plot(vt(:,1).',vt(:,2).','r-','LineWidth',2)
end
绘制y=x+ixsin(x)的图像
x=0:0.01:2*pi;
y=x+i*x.*sin(x);
plot(y)
subplot(2,1,1)
plot(y)
title('直角坐标系')
%极坐标绘图 polar
thata=angle(y);
rho=abs(y);
subplot(2,1