【教程】使用MATLAB进行公式推导、解方程组

1. 公式推导

以求函数的导函数为例。

1. 已知表达式

已知x = t 2 x=t^2x=t2y = x 2 y=x^2y=x2,求y yyt tt的导数:

>> clear
>> syms x t;
>> x=t^2;
>> y=x^2;
>> dy=diff(y,t);
>> latex(dy)

ans =

    '4\,t^3'

>>

将公式代码复制到 Markdown 格式如下:

4 t 3 4\,t^34t3

2. 未知表达式

已知x = f ( t ) x=f(t)x=f(t)y = x 2 y=x^2y=x2,求y yyt tt的导数:

>> clear
>> syms x t;
>> x = str2sym('x(t)');
>> y=x^2;
>> df=diff(y,t);
>> latex(df)

ans =

    '2\,x\left(t\right)\,\frac{\partial }{\partial t} x\left(t\right)'

>>

将公式代码复制到 Markdown 格式如下:

2 x ( t ) ∂ ∂ t x ( t ) 2\,x\left(t\right)\,\frac{\partial }{\partial t} x\left(t\right)2x(t)tx(t)

2. 解方程组

1. 已知系数

求解以下方程组:

{ x + y + z = 7 2 x + y + 3 z = 16 3 x + 2 y + z = 11 \left \{ \begin{array}{rcl} x+y+z=7\\ 2x+y+3z=16\\ 3x+2y+z=11 \end{array} \right.x+y+z=72x+y+3z=163x+2y+z=11

>> clear
>> A=[1,1,1;2,1,3;3,2,1];
>> B=[7;16;11];
>> x=A\B;
>> x

x =

    1.0000
    2.0000
    4.0000

>>

依次得到结果:x = 1 , y = 2 , z = 4 x=1,y=2,z=4x=1,y=2,z=4

由于得到的解x xx是个列向量,可以单独得到其中的元素:

>> x(3,1)

ans =

     4

>>

2. 未知系数

求解以下方程组,解用a , b , c a,b,ca,b,c表示:

{ x + y + c z = 7 a x + y + 3 z = 16 3 x + b y + z = 11 \left \{ \begin{array}{rcl} x+y+cz=7\\ ax+y+3z=16\\ 3x+by+z=11 \end{array} \right.x+y+cz=7ax+y+3z=163x+by+z=11

>> clear
>> syms a b c;
>> A=[1,1,c;a,1,3;3,b,1];
>> B=[7;16;11];
>> x=A\B;
>> x

x =

 (21*b + 11*c - 16*b*c - 24)/(a + 3*b + 3*c - a*b*c - 10)
  (7*a + 48*c - 11*a*c - 46)/(a + 3*b + 3*c - a*b*c - 10)
  (11*a + 16*b - 7*a*b - 38)/(a + 3*b + 3*c - a*b*c - 10)

>>

单独得到y yy的值并转化为公式:

>> latex(x(2,1))

ans =

    '\frac{7\,a+48\,c-11\,a\,c-46}{a+3\,b+3\,c-a\,b\,c-10}'

>>

将公式代码复制到 Markdown 格式如下:

7 a + 48 c − 11 a c − 46 a + 3 b + 3 c − a b c − 10 \frac{7\,a+48\,c-11\,a\,c-46}{a+3\,b+3\,c-a\,b\,c-10}a+3b+3cabc107a+48c11ac46

3. 系数中含虚数 i​

求解以下方程组,解用a , b , c , d a,b,c,da,b,c,d表示:
{ a x − b i y = c b i x − d y = 0 \left \{ \begin{array}{rcl} ax-biy=c\\ bix-dy=0 \end{array} \right.{axbiy=cbixdy=0

>> clear
>> syms a b c d;
>> A=[a,-b*i;b*i,-d];
>> B=[c;0];
>> x=A\B;
>> x

x =

        (c*d)/(b^2 + a*d)
 -(b*c)/(b^2*1i + a*d*1i)

>>

单独得到y yy的值并转化为公式:

>> latex(x(2,1))

ans =

    '-\frac{b\,c}{b^2\,1{}\mathrm{i}+a\,d\,1{}\mathrm{i}}'

>>

将公式代码复制到 Markdown 格式如下:

− b c b 2 1 i + a d 1 i -\frac{b\,c}{b^2\,1{}\mathrm{i}+a\,d\,1{}\mathrm{i}}b21i+ad1ibc

可以将1 i 1i1i中的1 11去除:

− b c b 2 i + a d i -\frac{b\,c}{b^2\,{}\mathrm{i}+a\,d\,{}\mathrm{i}}b2i+adibc


??欢迎在我的博客上访问:
https://lzxjack.top/


版权声明:本文为Jack_lzx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。