matlab sym用法_MATLAB新手入门篇1(基础)

4aa66f582d5218713db6d7bf0d06870c.png

MATLAB是一个数学工具性软件,做数值分析很有用,而且相比较C类编程软件语言更加简单,用习惯后操作起来很便捷,尤其是它的三个界面(Command Window、Current Directory Workspace and Command History),在指令窗(Command Window)中输入指令,在工作空间浏览器(Workspace)中查看已有变量名、大小和字节数,很喜欢历史指令窗( Command History)重复输入的语句不用再指令窗中再打一遍可以由历史指令窗直接调出。

①下面是MATLAB入门基础中的基础:

计算语句:

equation?tex=%5B15%5Ctimes%28177%2B68%29-5%5D%5Ctimes3%5E%7B2%7D
>> (15*(177+68)-5)*3^2

ans =

       33030

语句换行:3个或3个以上连续的黑点表示续行,在下一行可以继续输入语句。例,

>> s=1-1/2+1/3-1/4+1/5-1/6+1/7-...
1/8+1/9-1/10

s =

    0.6456

变量名:对字母大小写敏感,第一个字符是英文字母,可以由字母数字和下连符构成,由以下语句判断是否与MATLAB自用变量名重复(零则不重复可以使用)。例,

>> exist cool
ans =
     2
>> exist verygood
ans =
     0

②Matlab面向复数:复数可以由直角坐标表示和极坐标表示,real/imag/abs/angle分别计算复数的实部、虚部、模和幅角(弧度单位)。下面是这几个语句的例子,读者自行练习:

>> z1=2+3*i
>> z2=2*exp(pi/6*i)
>> z=z1*z2
>> rz=real(z)
>> iz=imag(z)
>> az=abs(z)
>> az1=angle(z)
>> az2=angle(z)*180/pi  %度数单位

下面请读者自行选择练习:复数相加的几何意义、MATLAB可绘图功能。

>> z1=4+3*i;z2=1+2*i;
>> z3=z1+z2;
>> z3=z1+z2
>> plot([0,z1,z3],'-b','LineWidth',3)
>> plot([0,z3],'-r','LineWidth',3)
>> plot([0,z1,z3],'-b','LineWidth',3)
>> hold on
>> plot([0,z3],'-r','LineWidth',3)
>> plot([z1,z3],'ob','MarkerSize',8)
>> hold off,grid on,
>> axis equal
>> axis([0,6,0,6])
>> text(3.5,2.3,'z1')
>> text(5,4.5,'z2')
>> text(2.5,3.5,'z3')
>> xlabel('real')
>> ylabel('image')
>> shg

58263a31d603268e5f1a882966345387.png
运行结果

理解

equation?tex=%5Csqrt%5B3%5D%7B-27%7D 的计算结果:首先构造
equation?tex=p%3Dr%5E%7B3%7D-a 它的系数向量是[1,0,0,-a],这里a为-27.
>> a=-27;
>> p=[1,0,0,-a];
>> r=roots(p)
r =

  -3.0000 + 0.0000i
   1.5000 + 2.5981i
   1.5000 - 2.5981i

③Matlab面向数组:矩阵的输入,例,

>> A=[1,3;2,4]
>> B=[1,3
2,4]

数组的运算,以画衰减振荡曲线

equation?tex=y%3De%5E%7B-t%2F3%7Dsin3t 在[0,4
equation?tex=%5Cpi ]上的图像为例:
>> t=0:pi/50:4*pi;
>> y=exp(-t/3).*sin(3*t);
>> plot(t,y,'-r','LineWidth',2)
>> axis([0,4*pi,-1,1])
>> xlabel('t'),ylabel('y')

注意此处为数组乘法用点乘。

④MATLAB中符号计算:

定义符号对象sym或syms,后加‘positive’表示正数字符,后加‘real’表示实数字符。判断变量类型class,判断自由变量symvar,将指令化简为最简形式simplify

下面以求解

equation?tex=x%5E%7B2%7D%2B3x%2B2%3D0 方程和化简
equation?tex=f%3D%5Csqrt%5B3%5D%7B%5Cfrac%7B1%7D%7Bx%5E%7B3%7D%7D%2B%5Cfrac%7B6%7D%7Bx%5E%7B2%7D%7D%2B%5Cfrac%7B12%7D%7Bx%7D%2B8%7D 为例:
>> syms x
>> y=x^2+3*x+2;
>> x1=solve(y,x)
x1 = 
 -2
 -1
>> f=(1/x^3+6/x^2+12/x+8)^(1/3)
f =
(12/x + 6/x^2 + 1/x^3 + 8)^(1/3)
>> g=simplify(f) 
g =
((2*x + 1)^3/x^3)^(1/3)

下面介绍subs用法:对函数赋值;转变函数变量,下面是该语句的例子,读者自行练习:

>> syms a b x;
>> f=a*sin(x)+b
>> f1=subs(f,a,3)
>> f2=subs(f,x,0:pi/2:pi)
f2 = 
[ b, a + b, b]
>> t=0:pi/10:2*pi;
>> f6=subs(f,{a,b,x},{2,3,t});
>> plot(t,f6)

ee4b850dd5d726934ef4941c0e24d2a3.png

函数f对于变量x在a点求极限:limit(f,x,a);在a点求右极限limit(f,x,a,'right');在a点求左极限limit(f,x,a,'left')。函数f对于变量x求n阶导数:diff(f,x,n)。多元函数f对于自变量v=[x1,x2]求雅可比矩阵:jacobian(f,v)。一元函数f对于自变量x在a点的n-1阶泰勒展开式: taylor(f,x,a,'Order',n)。多元函数g对于变量x,y在[a,b]点的n-1阶泰勒展开式:taylor(g,[x,y],'ExpansionPoint',[a,b],'Order',n)。函数f在区间[a,b]对x求定积分:int(f,x,a,b)。

下面是这几个语句的例子,读者自行练习:

>> syms f k t x;
>> f=sin(k*t)/(k*t);
>> g=(1-1/x)^(k*x);
>> f1=limit(f,t,0)
>> g1=limit(g,x,inf)

>> syms a;
>> f=[a,t^3;t*cos(x),log(x)];
>> d1=diff(f)
>> d2=diff(f,t,2)
>> d12=diff(diff(f,x),t)

>> syms x1 x2;
>> f=[x1*exp(x2);x2;cos(x1)*sin(x2)];
>> v=[x1;x2];
>> Jf=jacobian(f,v)

>> f=x*exp(x)
>> g=taylor(f,x,0,'Order',8)
>> clear
>> syms x y
>> g=sin(x^2+y);
>> tg=taylor(g,[x,y],'ExpansionPoint',[0,0],'Order',6)

>> syms x positive
>> syms y z
>> F=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2);
>> F1=vpa(F)
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值