MENU

Matlab— 方程式求根

November 22, 2018 • Read: 4128 • matlab阅读设置

symbolic variable展开目录

给一个方程式 $y = x^2-2x-8$,要求 y=0 时 x 的值

定义一个变量为符号变量的格式为:syms xx = sym('x')

定义符号变量其实有很大的作用,我们不需要给她一个实际的数值,只需要声明它表示一个符号即可,我们之前讲了 diff 函数,这里拓展一下,配合符号变量求一个函数的微分或者偏微分

$$ f(x) = \frac{e^{x^2}}{x^3 - x + 3} , \frac{d(x)}{d(y)} = ? \\ g(x) = \frac{x^2+xy-1}{y^3+x+3} , \frac{\partial f}{\partial x} = ? \\ $$

  • syms x
  • y - exp(x^2) / (x^3-x+3)
  • yprime = diff(y)
  • syms x y
  • z = (x^2+x*y-1)/(y^3+x+3)
  • zprime = diff(z)

求解积分展开目录

求解积分的函数是 int

  • syms x
  • y = x^2 * exp(x);
  • z = int(y)

积分后面有时还会跟一个常数,一般条件都会给当 z (x)=c, 假设这里给定条件 z (0)=0, 应该如何求解呢?需要用到一个函数 subs,其调用格式为 subs(z,x,c),他表达的含义是函数 z 中的符号变量被 c 替代

  • syms x
  • y = x^2 * exp(x);
  • z = int(y)
  • z = z - subs(z,x,0);

solve()展开目录

给出方程,要求其中某一变量在另外变量确定的条件下的值,就需要用 solve() 函数,其调用格式为:solve(eq,var),eq 代表一个符号表达式或者字符串,var 代表变量名称

  • syms x
  • y = 1 + x;
  • ans = solve(y == 0,x)

slove() 还可以用来求解方程组

  • syms x y;
  • eq1 = x - 2 * y - 5;
  • eq2 = x + y - 6;
  • [a,b] = solve(eq1,eq2,x,y)

代数方程也可以用 slove() 函数求解

  • syms x a b;
  • y = a * x^2 - b;
  • ans = slove(y==0,x)

用 a 和 b 来表示 x,就只需要在 solve 的第二个参数里写上 x,反过来,想用其他的变量来表示某个变量,只需要把这个变量写在 solve 的第二个参数里即可

Last Modified: November 25, 2018
Archives Tip
QR Code for this page
Tipping QR Code