matlab学习笔记(5)

2019-04-16 20:27

符号表达式的化简和替换

collect函数 collect(f,v)表示将f表示为关于符号变量v的多项式形式,即关于v合并同类项,v缺省,则用findsym确定的缺省变量 syms x y

f=x^2*y+y*x-x^2-2*x+1

collect(f) 得到(-1+y)*x^2+(y-2)*x+1 collect(f,y) 得到(x+x^2)*y+1-x^2-2*x expand函数 expand(f)将f展开,写成和的形式 syms x

expand((x-1)^3) 得到x^3-3*x^2+3*x-1 horner函数 horner(f)将f写成镶嵌套形式 syms x

horner(x^3-6*x^2) 得到(-6+x)*x^2

factor函数 factor(f)将f转换成低阶有理多项式的乘积 syms x

f=x^3-6*x^2+11*x-6

factor(f) 得到 (x-1)*(x-2)*(x-3) simplify(f)函数综合化简 simple(f) 函数的最简形式 syms x

f=2*sin(x^2)+cos(3*x)

simple(f) 如果不想看到中间过程,可z=simple(f) 有时使用两次simple命令可以得到最简式 如果想知道哪个简化命令得到最后结果,可以加一个参数how [z,how]=simple(f)

符号表达式的替换 subs(f,new,old) f='a*x^2+b*x+c'

subs(f,'t','x') 得到a*(t)^2+b*(t)+c subs是一个符号函数,返回一个符号变量

subexpr函数有时matlab返回的符号表达式难以理解,用subexpr函数,可以将表达式中重复出现的子式用一个符号表示,从而简化表达形式 c=sym('c','real'); x=sym('x','real'); s=solve(x^3-x+c)

a=subexpr(s) 得到sigma = -108*c+12*(-12+81*c^2)^(1/2) a =

[ 1/6*sigma^(1/3)+2/sigma^(1/3)]

[ -1/12*sigma^(1/3)-1/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))] [ -1/12*sigma^(1/3)-1/sigma^(1/3)-1/2*i*3^(1/2)*(1/6*sigma^(1/3)-2/sigma^(1/3))]

pretty函数有时也能起到同样的作用。 Pretty(f) 显示函数的习惯书写形式

线性方程组的求解

求解线性方程组,用反斜杠\\ a=hilb(3) b=[1 2 3]' a\\b

矩阵的特征值和特征向量

用eig(v,d)函数,[v,d]=eig(A); 其中d将返回特征值,v返回相应的特征向量,缺省第二个参数将只返回特征值 syms a b c real

A=[a b c; b c a; c a b]; [v,d]=eig(A);

为了观察更清楚,使用以前学过的替换函数,这里不用默认的sigma,而改用M,显式的代替繁琐的表达子式

vv=subexpr(v);

vs=subs(vv,'m','sigma') 运行结果为 vs =

[ 1, 1, 1]

[ -(c+(m)-a)/(c-b), -(c-(m)-a)/(c-b), 1] [ -(a-(m)-b)/(c-b), -(a+(m)-b)/(c-b), 1]

再用m替换d中的表达子式 dd=subexpr(d);

ds=subs(dd,‘m‘,‘sigma‘) 运行结果为ds =

[ (m), 0, 0] [ 0, -(m), 0] [ 0, 0, c+a+b]

note 求特征值也可用以下命令

f=poly(A) poly函数用来求A的特征多项式 d=solve(f) solve(f)函数用来求多项式的解

svd( )函数求矩阵的奇异值分解,将矩阵分解为两个正交矩阵和对角矩阵的乘积 a=sym(hilb(2)) [u,s,v]=svd(a)

代数方程和方程组

代数方程的求解可用solve(f)命令,如果f不含=,matlab将给表达式置零。方程的未知量在默认的情况下由findsym决定或显式指出 syms a b c x

solve(a*x^2+b*x+c) 以x为默认变量

solve(a*x^2+b*x+c,a) 指定对a为变量 求含有等号的方程的解(一定要加单引号) f=solve(?cos(x)=sin(x)‘)

x=solve('exp(x)=tan(x)') 如果不能求得符号解,就计算可变精度解。 求解方程组与单方程类似 解一个三元一次方程

v=solve('a*u^2+v^2','u-v=1','a^2-5*a+6') 结果为v =

a: [4x1 sym] u: [4x1 sym] v: [4x1 sym] 一些常用的符号运算 极限运算limit

limit(f) 求x到0的极限

limit(f,x,a)或limit(f,a) 求x到a的极限

limit(f,a,‘left‘) limit(f,a,‘right‘) 求x到a的左极限和右极限 limit(f,inf) 求x趋于无穷的极限 符号求和symsum(s)

symsum(s) 以默认的findsym决定的变量求和 symsum(s,v) 以s中指定的变量v求和

symsum(s,a,b) symsum(s,v,a,b) 从a到b的有限项求和 syms k n

symsum(k) 从0到k求和

symsum(k,0,n-1) 从0到n-1求和 symsum(1/k^2,1,inf) 无限项求和 泰勒级数taylor(f)

taylor(f)表示求f的5阶talor展开,可以增加参数指定展开的阶数(默认式5),也可以对于多元函数指定展开的变量,还可以指定在哪个点展开 syms x t taylor(exp(-x))

taylor(log(x),6,1) 在1点的6阶taylor展开 taylor(x^t,3,t) 对t的3阶taylor展开 积分变换

fourier变换和逆变换fourier(f)

fourier分析可以将信号转换为不同频率的正弦曲线。可对离散数据进行分析,也可对连续时间系统进行分析,特别在信号和图形处理领域。离散变换(DFT)作用于有限数据的采集,最有效的是快速fourier变换(FFT)

F=fourier(f) 独立变量x,返回关于参数w的函数 F=fourier(f,v) 返回函数F关于符号对象v的函数

F=fourier(f,u,v) 对关于u的函数f进行变换,而不是缺省的w,返回函数F是关于v的函数 syms t v w x fourier(1/t)

fourier(exp(-t)*sym('Heaviside(t)'),v) fourier(diff(sym('F(x)')),x,w) Fourier逆变换

f=ifourier(F) 缺省独立变量w,返回关于x的函数对w进行积分 f=ifourier(F,v) 返回函数f是关于符号对象v的函数,而不是缺省的x

f=ifourier(F,u,v) 是关于u的函数f进行变换,而不是缺省的x,返回函数f是关于v的函数 Laplace变换和逆变换laplace(f)

应用于连续系统(微分方程)中,可以用来求解微分方程的初值问题 laplace(F) 缺省独立变量t,缺省返回关于s的函数L laplace(F,t) 返回关于t的函数L,而不是缺省的s

laplace(F,w,z) 对函数F的自变量w积分,返回关于z的函数L 逆变换

F=ilaplace(L) 缺省独立变量s,返回关于t的函数F F=ilaplace(L,y) 返回关于y的函数F,而不是缺省的t

F=ilaplace(L,y,x) 对函数L的自变量y积分,返回关于x的函数F Z-变换和逆变换ztrans(f) 标量符号f的Z-变换 F=ztrans(f) 缺省独立变量n,返回关于z的函数

F=ztrans(f,w) 返回关于符号变量w的函数F,而不是缺省的z

F=ztrans(f,k,w) 关于k的符号变量作Z-变换返回关于符号变量w的函数 逆变换iztrans(F)

f=iztrans(F) 或(F,k)或 (F,w,k)

符号绘图函数

符号函数简易绘图函数ezplot(f)

f可以包含单个符号变量x的字符串或表达式,默认画图区间(-2pi,2pi),如果f包含x和y,画出的图像是f(x,y)=0的图像,缺省区间是-2pi

Ezplot(f,xmin,xmax)或ezplot(f,[xmin,xmax])绘制在xmin

ezplot('t*cos(t)','t*sin(t)',[0,4*pi])

绘制符号图像函数fplot(fun,lims,tol,‘linespec‘,n)

其中lims=[xmin,xmax]或[xmin,xmax,ymin,ymax] tol为指定相对误差,默认0.001 ?linespec‘指定绘图的线型 n指定最少以n+1个点绘图

[x,y]=fplot(fun,lims,…) 只返回用来绘图的点,并不绘图,可以自己调用plot(x,y)来绘制图形。 syms x

subplot(2,2,1),fplot('humps',[0,1]) f='abs(exp(x*(0:9))*ones(10,1))' subplot(2,2,2),fplot(f,[0,2*pi])

subplot(2,2,3),fplot('sin(1./x)',[0.01,0.1],1e-3) matlab绘图 二维图形的绘制

plot 在(x,y)坐标下绘制二维图像支持多个x-y二元结构 plot3 在(x,y,z)坐标下绘制三维图形 loglog 在(x,y)对数坐标下绘制二维图形

semilogx 在x为对数坐标,y为线性坐标的二维坐标中绘图 semilogy 在x为线性坐标,y为对数坐标的二维坐标中绘图 plotyy 在有两个y轴的坐标下绘图

plot用法

plot(x,y,'--rs','linewidth',2,'markeredgecolor','k',... 'markerfacecolor','g','markersize',10) plotyy用法

plotyy(x1,y1,x2,y2) 以x1为标准,左轴为y轴绘制y1向量,x2为基准,右轴为y轴,绘制y2向量 plotyy(x1,y1,x2,y2,fun) 用字符串fun指定的绘图函数(plot ,semilogx,semilogy,loglog,stem) plotyy((x1,y1,x2,y2,fun1,fun2) t=0:pi/20:2*pi; y=exp(sin(t));

plotyy(t,y,t,y,'plot','stem') stem为二维杆图

[ax,h1,h2]=plotyy(…) 返回左右两y轴的句柄(分别为ax(1) ax(2),以及在两坐标轴中生成的图形对象的句柄,分别为h1 h2 t=0:900; A=1000; a=0.005; b=0.005; z2=cos(b*t); z1=A*exp(-a*t);

[haxes,hline1,hline2]=plotyy(t,z1,t,z2,'semilogy','plot'); axes(haxes(1))

ylabel('semilog plot') 对数坐标 axes(haxes(2)) ylabel('linear plot') set(hline2,'linestyle','--') 其他二维图形绘图指令 bar(x,y) 二维条形图 hist(y,n) 直方图

histfit(y,n) 带拟和线的直方图,n为直方的个数 stem(x,y) 火柴杆图 comet(x,y) 彗星状轨迹图 compass(x,y) 罗盘图 errorbar(x,y,l,u) 误差限图 feather(x,y) 羽毛状图

fill(x,y,‘r‘) 二维填充函数以红色填充 pie(x) 饼图

polar(t,r) 极坐标图 r为幅值向量,t为角度向量 t=0:0.1:8*pi; r=cos(3*t/2)+1/2;

polar(t,r),xlabel('polar 指令') quiver(x,y) 磁力线图 stairs(x,y) 阶梯图 loglog(x,y) 对数图

semilogx semilogy 半对数图


matlab学习笔记(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公路工程内业资料整理填写及归档范例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: