|
|
isa( 变量 , \'类名\' )
判断 变量是否是这种 数据类型
.* .^ 矩阵对应元素相运算
.* 对应元素相乘 .^ 乘幂 ./ .\ 除 a = [ 2 , 3 , 4 ]; b = a .* a c = a .^ 3
.\' 只转置不共轭 C = [1+i, 4-i; 5+2*i, 3-3*i] C.\' C\'
逻辑运算
矩阵对应元素进行比较,成立返回1,反之返回0 > < >= <= == ~= &与 |或 ~非 xor异或
randint
创建整数随机数
randint(m,n,[a,b]) m*n规格的 a到b 的随机数 a,b缺省为 0~1
复数
imag 虚部,不含系数 i real 实部 angle 幅角
取整
fix 向0靠近 floor 比他小 ceil 比他大 round 四舍五入
rem
相除取余数 rem(a,b) a除以b的余数
double
将分数值划归为实数 a=solve(\'x^3+12*x-5=0\'); double(a)
初等函数
sin cos tan asin acos sqrt exp log log10 abs sign
特殊函数
gamma 伽马函数 beta 贝塔函数 rat 有理近似 erf 误差函数 ellipj 椭圆函数 ellipk 椭圆全积分 bessei 贝赛尔函数 eerfinv 逆误差函数
vpa
结果用小数表示
求出来的结果如果是复杂的分数表示,用 vpa作用一下即可
分数转换成小数
常量
pi 圆周率 inf 无穷 NaN 无意义 i j 虚数单位
realmax 最大实数 realmin 最小实数 eps 无穷小数 end 数组最后元素序号
一些注意事项
有些函数使用的表达式是字符串格式,包括 ezplot solve
矩阵是先行后列
数据类型
整型 int8 uint8 及 16 32 实型 double 字符型 char
\ 反除
2\12=6
矩阵左除 MX=Y X为列向量 则 X=M\Y 若 XM =Y 则 X=Y/M a=[ 5 2 -9 ; -9 -2 2 ; 6 7 3 ] ; b=[2 ; 3 ; 4]; c=a\b; [a*c,b]
更多逻辑运算函数
all 列向量所有元素非零,返回1 any 列向量有非零元素 exist 变量或函数被定义过 finite 元素有限 isempty 参数为空 isglobal 参数为全局变量 ishold 当前画图状态是on isieee 当前运算是IEEE算术运算 isinf 元素无穷大 isnan 元素无意义 isletter 元素是字母 isreal 实数 isspace 空格 issparse 稀疏矩阵 isstr 字符串
判断 条件
conv
两个多项式相乘系数展开
conv([1 2], [2 1 3] )
deconv
两个多项式相除 返回 [ 商 余式 ]
[a b]=deconv([1 2 3], [1 1])
simple 最简形式
输出表达式在各种函数下的运算结果,给出最简形式 用 [a,b]=simple(符号表达式) 得到 a为化简结果,b为化简方式
factor
因式分解 factor(符号表达式)
collect
合并同类项 collect(符号表达式)
polyvalm 多项式代入求值
多项式代入自变量的值求值
polyvalm(c,x) c为系数向量,降幂排列
方阵x作为一个整体带入多项式求值
polyval 多项式代入求值
多项式代入自变量的值求值
polyval(c,x) c为系数向量,降幂排列
x的每个元素均代入多项式中求值
simplify
化简 simplify(符号表达式)
solve
解方程 solve(\'方程\',\'变量\') solve(\'x+3=0\') solve(\'a*x+5\',\'a\')
solve可以有多个方程 用,隔开 返回为结构体 s = solve(\'5*x + 4*y = 3\',\'x - 6*y = 2\'); s.x
symsum
根据通项求和
symsum(符号表达式,自变量,起点,终点) 可缺省 区间
syms n symsum(1/2^n+1/3^n)
symsum(1/2^n+1/3^n,1,inf)
**************
expand
展开代数式 expand(符号表达式) syms x; expand(cos(x-4)*(x+2))
支持对矩阵各元素操作 syms x; expand([(x+2)^2 (12-x)^3])
sym
定义符号及类型 sym(\'值\',\'类型\') 类型包括 real,unreal(无约束),positive a=sym(\'a\',\'real\');b=sym(\'a\',\'real\'); conj(a+b*i) 值可以是表达式,矩阵 a=sym(\'sin(x)\'); ezplot(a); hold on; ezplot(log(a)) syms 可以同时声明多个符号 syms val1,val2...real
sym 可以将任意式子变成符号式,进行符号运算
factor(sym(2^100)-1)
******************************************************
poly2str(系数 , \'符号\')
多项式系数显示为多项式形式
a=[1 3 -2 0 -43 3 -9 ]; >> poly2str(a,\'x\')
polyfit 拟合
多项式拟合 polyfit(x,y,n)
poly 特征多项式
求出方阵的特征多项式
返回行向量系数 降幂排列
已知方程的根构造多项式
a=[1 2 -4]; poly(a) poly2str(ans,\'t\')
********************************************
int
积分 int(\'表达式\',\'变量\') int(\'表达式\',下限,上限)
quad
求数值积分的一种方法,正交积分 quad(\'表达式\',xmin,xmax) 运算要使用矩阵元素乘法
ODE求解微分方程
一阶
新建 m 文件 ,写入方程函数 格式 返回值a = 微分方程右边b a代表微分项,b代表普通项,在微分方程中是同一变量,在程序中要分别用返回值和参数表示 调用 ODE格式为 ode23(\'函数名\',[xmin,ymin],y(0)) 23是取点数,可选 45 113
实例
新建 m 文件 输入 function a=eq1(t,y) a=cos(t) 保存为 eq.m 命令台输入 [t,y]=ode23(\'eq\',[0,2*pi],2) % y(0)=2,区间[0,2pi] 即将结果 分别赋给了 t和y plot(t,y,\'o\') 可以查看结果
方程组
把x,y...看做一个向量的分量 function xdot = eqx(t,x);xdot = zeros(2,1); xdot(1) = -x(1)^2 + x(2); xdot(2) = -x(1) - x(1)* x(2); 画图时要注意调用一整列元素 [t,x] = ode45(\'eqx\',[0 10],[0,1]); plot(t,x(:,1),t,x(:,2),\'--\')
二阶
可以让 y\'=x1 化为方程组
limit 极限
极限 limit(表达式,极限点) syms x;limit(sin(x)/x,0)
limit(表达式,极限点,方向) \'left\' 或 \'right \' limit(字符串,自变量,极限点)
s=\'(x-3)/abs(x-3)\';
limit(s,x,3,\'left\')
taylor
展开为泰勒级数
taylor(表达式,n) n为阶数,可缺省
laplace laplace变换
ilaplace 逆变换
rsums
黎曼和求积分 rsums(符号表达式,[xmin,ymin] 区间缺省为 [0,1]
syms x;
rsums(sin(cos(x)+1),[2,4])
trapz 梯形法求积分
用分割梯形法求数值积分 trapz(x,y)
diff
求导 diff(表达式,自变量,阶数) 对于数值矩阵,求差分,即相邻元素间的差
dsolve
求解微分方程 dsolve(\'表达式\') 一阶导用 Df表示 二阶 D2f 依次类推 dsolve(\'Df=-2*f+cos(t)\')
初值用 y(x0)=y0 表示就行了 dsolve(\'D2f-f=0\',\'f(0)=-1\',\'Df(0)=2\')
默认变量是t 在最后加上指定自变量 dsolve(\'D2f-sin(x)/x*(1-2/x^2)-2*cos(x)/x^2=0\',\'f(0)=2\',\'Df(0)=0\',\'x\')
微分项要在方程左边
********************************
inline 由字符串构造函数
比较
f=\'x+2\' f(2) f=inline(\'x+2\') f(2)
******************************************************************************
fourier 傅里叶 fourier 变换
ifourier 逆变换
|
请发表评论