Matlab—方程式求根

mac2022-06-30  89

symbolic variable

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

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

定义符号变量其实有很大的作用,我们不需要给她一个实际的数值,只需要声明它表示一个符号即可,我们之前讲了diff 函数,这里拓展一下,配合符号变量求一个函数的微分或者偏微分 f ( x ) = e x 2 x 3 − x + 3 , d ( x ) d ( y ) = ? g ( x ) = x 2 + x y − 1 y 3 + x + 3 , ∂ f ∂ x = ? 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} = ? \\ f(x)=x3x+3ex2,d(y)d(x)=?g(x)=y3+x+3x2+xy1,xf=?

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 的第二个参数里即可

最新回复(0)