matlab-计算 函数速查


数字计算

isa( 变量 , '类名' )
  
判断 变量是否是这种 数据类型
randn
 
正态分布随机数 
 randn(m,n)
.*  .^ 矩阵对应元素相运算
  
.* 对应元素相乘  .^ 乘幂  ./ .\    除
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
rand
 
生成随机数 rand(a,b)
复数
 
 imag 虚部,不含系数 i
  real 实部
  angle 幅角
pow2  2的次方
取整
 
fix 向0靠近
 floor 比他小
 ceil  比他大
 round 四舍五入
rem
 
相除取余数  rem(a,b)  a除以b的余数
conj
 
共轭复数
 
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]
numeric 
 
将符号转化为数值进行计算
 
更多逻辑运算函数
 
all   列向量所有元素非零,返回1
 any  列向量有非零元素
 exist 变量或函数被定义过
 finite 元素有限
 isempty 参数为空
 isglobal 参数为全局变量
 ishold 当前画图状态是on
 isieee 当前运算是IEEE算术运算
 isinf  元素无穷大
 isnan 元素无意义
 isletter 元素是字母
 isreal  实数
 isspace 空格
 issparse 稀疏矩阵
 isstr   字符串
判断 条件
代数式

residue(分子,分母)
 
部分分式化
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(符号表达式)
 
roots 多项式的根
 
求多项式的零点
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)
 
**************
latex
 
表达式转换成 LaTeX 代码格式
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)
 
******************************************************
ccode
 表达式转换成C语言格式
 
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   逆变换
ztrans   Z变换
iztrans   逆变换
The content on this page is provided by a Google Notebook user, and Google assumes no responsibility for this content.

posted on 2010-05-05 15:05  大宝pku  阅读(1818)  评论(0编辑  收藏  举报

导航