⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.txt

📁 这是一些关于学习matlab 的资料
💻 TXT
📖 第 1 页 / 共 5 页
字号:
R4 =
     cos(x)+i*sin(x)
R5 =
     exp(i*x)
R6 =
     x ^3-x
R7 =
     (x+1)^3
R8 =
     4*x^3-3*x
how =
      expand
命令14  符号表达式的化简
函数  simplify
格式  R = simplify(S) 
说明  使用Maple软件中的化简规则,将化简符号矩阵S中每一元素。
例3-13
>>syms x a b c
>>R1 = simplify(sin(x)^4 + cos(x)^4) 
>>R2 = simplify(exp(c*log(sqrt(a+b))))
>>S = [(x^2+5*x+6)/(x+2),sqrt(16)];
>>R3 = simplify(S)
计算结果为:
R1 =
     2*cos(x)^4+1-2*cos(x)^2
R2 =
     (a+b)^(1/2*c)
R3 =
     [ x+3,   4] 
命令15  符号矩阵的维数
函数  size
格式  d = size(A)       %若A为m*n阶的符号矩阵,则输出结果d=[m,n]。
      [m,n] = size(A)    %分别返回矩阵A的行数于m,列数于n。
      d= size(A, n)     %返回由标量n指定的A的方向的维数:n=1为行方向,n=2为列方向。
例3-14
>>syms a b c d
>>A = [a b c ; a b d; d c b; c b a];
>>d = size(A)
>>r = size(A, 2)
计算结果为:
d =
     4     3
r =
     3
命令16  代数方程的符号解析解
函数  solve
格式  g = solve(eq)   %输入参量eq可以是符号表达式或字符串。若eq是一符号表达式x^2 -2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve(eq)对方程eq中的缺省变量(由命令findsym(eq)确定的变量)求解方程eq=0。若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。
g = solve(eq,var)   %对符号表达式或没有等号的字符串eq中指定的变量var求解方程eq(var)=0。
g = solve(eq1,eq2,…,eqn)   %输入参量eq1,eq2,…,eqn可以是符号表达式或字符串。该命令对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解。若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结果给相应的变量。
g = solve(eq1,eq2,…,eqn,var1,var2,…,varn)   %对方程组eq1,eq2,…,eqn中指定的n个变量如var1,var2,…,varn求解。
注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。
例3-15
>>solve('a*x^2 + b*x + c') 
>>solve('a*x^2 + b*x + c','b') 
>>solve('x + y = 1','x - 11*y = 5') 
>>A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a +6')
计算结果为:
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
ans =
-(a*x^2+c)/x
ans = 
    x: [1x1 sym]
    y: [1x1 sym]
A = 
    a: [4x1 sym]
    u: [4x1 sym]
    v: [4x1 sym]
命令17  以共同的子表达式形式重写一符号表达式
函数  subexpr
格式  [Y,SIGMA] = subexpr(X,SIGMA)
[Y,SIGMA] = subexpr(X,'SIGMA') 
说明  找出符号表达式 X中相同的子表达式,再结合命令pretty(X)将X中相同的、比较复杂的子字符串用符号%1,%2,…代替。而用命令pretty(Y)将X中相同的、比较复杂的子字符串用符号SIGMA代替。
例3-16
>>t = solve('a*x^3+b*x^2+c*x+d = 0'); 
>> [r,s] = subexpr(t,'s');
>>pretty(t)
>>pretty(r)
计算结果为:(略)
命令18  特征多项式
函数  poly
格式  p = poly(A)或p = poly(A, v) 
说明  若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令poly(sym(A))近似等于poly2sym(poly(A))。其近似程度取决于舍入误差的大小。若A为一符号矩阵,则返回矩阵A的变量为x的特征多项式。若带上参量v,则返回变量为v的特征多项式。
例3-17
>>A = hilb(4); 
>>p = poly(A)
>>q = poly(sym(A))
>>s = poly(sym(A),z)
计算结果为:
p =
    1.0000   -1.6762    0.2652   -0.0017    0.0000
q =
    x^4-176/105*x^3+3341/12600*x^2-41/23625*x+1/6048000
s =
    -176/105*z^3+3341/12600*z^2-41/23625*z+1/6048000+z^4
命令19  将多项式系数向量转化为带符号变量的多项式
函数  poly2sym
格式  r = poly2sym(c)和r = poly2sym(c, v)  
说明  将系数在数值向量c中的多项式转化成相应的带符号变量的多项式(按次数的降幂排列)。缺省的符号变量为x;
若带上参量v,则符号变量用v显示。poly2sym使用命令sym的缺省转换模式(有理形式)将数值型系数转换为符号常数。该模式将数值转换成接近的整数比值的表达式,否则用2的幂指数表示。若x有一数值值,且命令sym能将c的元素精确表示,则eval(poly2sym(c))的结果与polyval(c,x)相同。
例3-18
>>r1 = poly2sym([1 2 3 4]) 
>>r2 = poly2sym([.694228, sqrt(2), sin(pi/3)]) 
>>r3 = poly2sym([1 0 1 -1 2], y)
计算结果为:
   r1 =
       x^3+2*x^2+3*x+4
   r2 =
       6253049924220329/9007199254740992*x^2+x*2^(1/2)+1/2*3^(1/2)
   r3 =
       y^4+y^2-y+2
命令20  将复杂的符号表达式显示成我们习惯的数学书写形式
函数  pretty
格式  pretty(S)    %用缺省的线型宽度79显示符号矩阵s中每一元素
      pretty(S,n)   %用指定的线型宽度n显示
例3-19
>>A = sym(pascal(3));
>>B = eig(A)
>>pretty(B,50)  % 多看几次结果,会发现该命令显示的特点
>>syms x
>>y=log(x)/sqrt(x);
>>dy = diff(y)
>>pretty(dy) 
计算结果为:
B =
     [         1]
     [ 4+15^(1/2)]
     [ 4 -15^(1/2)]
[    1    ]
[         ]
[      1/2]
[4 + 15   ]
[         ]
[      1/2]
[4 - 15   ]
dy =
    1/x^(3/2)-1/2*log(x)/x^(3/2)
 1          log(x~)
----  - 1/2   -------
  3/2          3/2
x~          x~
命令21  从一符号表达式中或矩阵中找出符号变量
函数  findsym
格式  r = findsym(S)   %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量为由字母(除了i与j)与数字构成的、字母打头的字符串)。若S中没有任何的符号变量,则findsym返回一空字符串。
r = findsym(S,n)  %返回字母表中接近x的n个符号变量
例3-20
>>syms a x y z t alpha beta
>>1 = findsym(sin(pi*t*alpha+beta))
>>S2 = findsym(x+i*y-j*z+eps-nan)
>>S3 = findsym(a+y,pi)
计算结果为;
   S1 =
        pi, alpha, beta, t
   S2 =
       NaN, x, y, z
   S3 =
       a, y
命令22  函数的反函数
函数  finverse
格式  g = finverse(f)   %返回函数f 的反函数。其中f为单值的一元数学函数,如f=f(x)。若f的反函数存在,设为g,则有g[f(x)] = x。
g = finverse(f,u)  %若符号函数f中有几个符号变量时,对指定的符号自变量v计算其反函数。若其反函数存在,设为g,则有g[f(v)] = v。
例3-21
>>syms x p q u v;
>>V1 = finverse(1/((x^2+p)*(x^2+q))) 
>>V2 = finverse(exp(u-2*v),u)
计算结果为:
   Warning: finverse(1/(x^2+p)/(x^2+q)) is not unique.
   > In D:\MATLABR12\toolbox\symbolic\@sym\finverse.m at line 43
   V1 =
       1/2/x*2^(1/2)*(x*(-x*q-x*p+(x^2*q^2-2*x^2*q*p+x^2*p^2+4*x)^(1/2)))^(1/2)
   V2 =
       2*v+log(u)
命令23  嵌套形式的多项式的表达式
函数  horner
格式  R = horner(P)   %若P为一符号多项式的矩阵,该命令将矩阵的每一元素转换成嵌套形式的表达式R。
例3-22
>>syms x y
>>H1 = horner(2*x^4-6*x^3+9*x^2-6*x-4) 
>>H2 = horner([x^2+x*y;y^3-2*y])
计算结果为:
   H1 =
       -4+(-6+(9+(-6+2*x)*x)*x)*x
   H2 =
       [  x^2+x*y]
       [ (-2+y^2)*y]
命令24  符号表达式求和
函数  symsum
格式  r = symsum(s)     %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从0到k-1求和
r = symsum(s,v)    %对符号表达式s中指定的符号变量v从0到v-1求和
r = symsum(s,a,b)   %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从a到b求和
r = symsum(s,v,a,b)   %对符号表达式s中指定的符号变量v从a到b求和
例3-23
>>syms k n x
>>r1 = symsum(k^3) 
>>r2 = symsum(k^2-k) 
>>r3 = symsum(sin(k*pi)/k,0,n) 
>>r4 = symsum(k^2,0,10) 
>>r5 = symsum(x^k/sym('k!'), k, 0,inf)   %为使k!通过MATLAB表达式的检验,必须把它作为一符号表达式。
计算结果为:
r1 = 
    1/4*k^4-1/2*k^3+1/4*k^2
r2 =
    1/3*k^3-k^2+2/3*k
r3 =
     -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1)
r4 =
     385
r5 =
     exp(x)
命令25  广义超几何函数
函数  hypergeom
格式  hypergeom(n, d, z)   %该命令为广义超几何函数F(n,d,z),即已知的Barnes扩展超几何函数,记做jFk,其中j=length(n),k=length(d)。对于标量a,b与c,hypergeom([a,b],c, z)为Gauss超几何函数2F1(a,b;c,z)。
说明  超几何函数的定义为: ,  其中 
例3-24
>>syms a z n
>>H1 = hypergeom([],[],z)
>>H2 = hypergeom(1,[],z) 
>>H3 = hypergeom(1,2,'z') 
>>H4 = hypergeom([1,2],[2,3],'z')
>>H5 = hypergeom(a,[],z) 
>>H6 = hypergeom([],1,-z^2/4)
>>H7 = hypergeom([-n, n],1/2,(1-z)/2) 
计算结果为:
H1 =
     exp(z)
H2 =
    -1/(-1+z)
H3 =
    (exp(z)-1)/z
H4 =
    -2*(-exp(z)+1+z)/z^2
H5 =
    (1-z)^(-a)
H6 =
    besselj(0,z)
H7 =
    hypergeom([n, -n],[1/2],1/2-1/2*z)
3.2.1  函数计算器
函数  funtool
格式  funtool   %该命令将生成三个图形窗口,Figure No.1用于显示函数f的图形,Figure No.2用于显示函数g的图形,Figure No.3为一可视化的、可操作与显示一元函数的计算器界面。在该界面上由许多按钮,可以显示两个由用户输入的函数的计算结果:加、乘、微分等。funtool还有一函数存储器,允许用户将函数存入,以便后面调用。在开始时,funtool显示两个函数f(x) = x与g(x) = 1在区间[-2*pi, 2*pi]上的图形。Funtool同时在下面显示一控制面板,允许用户对函数f、g进行保存、更正、重新输入、联合与转换等操作。
输入命令funtool后,生成的界面如下:
 
图3-1  函数工具funtool界面
       
图3-2  函数f的图形                   图3-3  函数g的图形
说明  文本输入框区域:控制面板的上面几行,可以输入文本;
f = :显示代表函数f的符号表达式,可在该行输入其他有效的表达式来定义f,再按回车键即可在Figure No.1中画出图形;
g = :显示代表函数g的符号表达式,可在该行输入其他有效的表达式来定义g,再按回车键即可在Figure No.2中画出g图形;
x = :显示用于画函数f与g的区间。可在该行输入其他的不同区间,再按回车键即可改变Figure No.1与Figure No.2中的区间;
a = :显示一用于改变函数f的常量因子(见下面的操作按钮)。可在该行输入不同的常数。
控制按钮区域:该区域有一些按钮,按下它们将对函数f转换成不同的形式与执行不同的操作。
df/dx:函数f的导数;
int f:函数f的积分(没有常数的一个原函数),当函数f的原函数不能用初等函数表示时,操作可能失败;
simple f:化简函数f(若有可能);
num f:函数f 的分子;
den f:函数f的分母;
1/f:函数f的倒数;
finv:函数f的反函数,若函数f 的反函数不存在,操作可能失败;
f+a:用f(x)+a代替函数f(x);
f-a:用f(x)-a代替函数f(x);
f*a:用f(x)+a代替函数f(x);
f/a:用f(x)/a代替函数f(x);
f^a:用f(x)^a代替函数f(x);
f(x+a):用f(x+a)代替函数f(x);
f(x*a):用f(x-a)代替函数f(x);
f+g:用f(x)+g(x)代替函数f(x);
f-g:用f(x)-g(x)代替函数f(x);
f*g:用f(x)*g(x)代替函数f(x);
f/g:用f(x)/g(x)代替函数f(x);
g=f:用函数f(x)代替函数g(x);
swap:函数f(x)与g(x)互换;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -