📜  MATLAB –代数

📅  最后修改于: 2021-04-16 09:15:29             🧑  作者: Mango

代数全是关于数学符号和操纵这些符号的规则的研究。在此,变量用于存储/表示数量。在MATLAB中,有一些内置的方法可以求解代数方程。方程的根,求解x,简化表达式是我们可以在MATLAB中执行的一些操作。

以下是MATLAB解决代数的一些功能:

  • 解决()
  • roots()
  • 扩张()
  • 简化()
  • 因素()

解决方程式:要解决一个寻找x值的方程式,或者如果该方程式包含多个变量,我们可以求解一个特定的变量。

Syntax: solve(equation,variable)

此处的默认变量为x。

示例1:此示例说明了最新版本的MATLAB的Solve()函数。

MATLAB
% MATLAB program to illustrate
% solve() function
 
syms x
 
% Below eqn is nothing but
% x-28 = 0
eqn = x-28 == 0;
S = solve(eqn,x);
 
disp(S)


MATLAB
% MATLAB program to illustrate
% solve() function
 
syms x y z
% Here solving the equation for y
eqn = solve(x-y+28*z^2,y);
disp(eqn)


MATLAB
% MATLAB program to find roots
% of a quadratic equation
 
% Finding roots for the equation 'x-28=0'
roots([1,-28])
 
% Finding roots for the equation 'x^2-7*x+12=0'
roots([1,-7,12])


MATLAB
% MATLAB program to find roots
% using solve function
 
syms x
 
a = solve(x-28)
b = solve(x^2 -7*x + 12)
 
% The solve function can also
% higher order equations
c = solve((x-3)^2*(x-7)==0)


MATLAB
% MATLAB program to illustrate
% factor function to find factors
 
syms x
syms y
 
% Finding prime factorization of
% given integer
factor(28)
 
% Finding factors of
% given expressions
factor(x^3-y^3)
factor(x^6-1)


MATLAB
% MATLAB program to illustrate
% factor function
 
a = simplify(sin(x)^2 + cos(x)^2)
   
b = simplify((x^4-16)/(x^2-4))


MATLAB
% MATLAB function to illustrate expand()
% function and expand the given polynomials
 
expand((x - 2)*(x - 4))
 
% Simplifying inputs of functions
% by using identities
expand(cos(x + y))
expand(sin(2*x))


输出:

28

范例2:

的MATLAB

% MATLAB program to illustrate
% solve() function
 
syms x y z
% Here solving the equation for y
eqn = solve(x-y+28*z^2,y);
disp(eqn)

输出:

y = 
28*z^2 + x

查找根:使用roots()solve()函数,可以使用方程式或特定方程式中的变量系数来找到根。让我们看一个例子,以更好地理解

Syntax: roots(p)
where p = column vector

范例1:

的MATLAB

% MATLAB program to find roots
% of a quadratic equation
 
% Finding roots for the equation 'x-28=0'
roots([1,-28])
 
% Finding roots for the equation 'x^2-7*x+12=0'
roots([1,-7,12])

输出:

ans =

    28
    
ans =

     4
     3

范例2:

的MATLAB

% MATLAB program to find roots
% using solve function
 
syms x
 
a = solve(x-28)
b = solve(x^2 -7*x + 12)
 
% The solve function can also
% higher order equations
c = solve((x-3)^2*(x-7)==0)

输出:

a =
 
28
 
 
b =
 
 3
 4
 
c =
 
 3
 3
 7

因子分解和简化:要查找表达式的因子,请使用factor()函数。为了简化表达式,使用了simple()函数。当使用许多符号函数时,应声明变量是符号性的。

factor Syntax:
factor(expression)
    or
factor(integer)

    
simplify Syntax:
simplify(expression)

如果将表达式传递到factor()函数,则它将返回一个因子数组。如果将整数传递给factor()函数,则它将返回给定整数的质数分解。

范例1:

的MATLAB

% MATLAB program to illustrate
% factor function to find factors
 
syms x
syms y
 
% Finding prime factorization of
% given integer
factor(28)
 
% Finding factors of
% given expressions
factor(x^3-y^3)
factor(x^6-1)

输出:

ans =

     2     2     7
     
ans =
 
(x - y)*(x^2 + x*y + y^2)

ans =
 
(x - 1)*(x + 1)*(x^2 + x + 1)*(x^2 - x + 1)

示例2: simple()函数对给定表达式执行代数简化。

的MATLAB

% MATLAB program to illustrate
% factor function
 
a = simplify(sin(x)^2 + cos(x)^2)
   
b = simplify((x^4-16)/(x^2-4))

输出:

a =
 
1
 
b =
 
x^2 + 4

扩展函数:使用expand()函数,我们可以扩展给定的表达式并使用标识简化函数的输入。

Syntax:
expand(expression) 

例子:

的MATLAB

% MATLAB function to illustrate expand()
% function and expand the given polynomials
 
expand((x - 2)*(x - 4))
 
% Simplifying inputs of functions
% by using identities
expand(cos(x + y))
expand(sin(2*x))

输出:

ans =
 
x^2 - 6*x + 8
 
 
ans =
 
cos(x)*cos(y) - sin(x)*sin(y)
 
 
ans =
 
2*cos(x)*sin(x)

笔记:

  • 对于最新版本的MATLAB, resolve()函数参数不应为字符串。而是在方程式中使用符号变量。
  • 在最新版本的MATLAB中, solve()的方程参数应类似于x-28 == 0而不是x-28 = 0。我们应该使用条件运算符(即==)而不是赋值运算符(即=)
  • 在MATLAB编辑器中,除非您在命令末尾添加了分号(;),否则我们无需编写打印函数。
  • 在使用众多符号函数时,我们必须声明符号变量。
  • 在求解多项式时,除非您指定其他任何变量,否则默认的求解变量将为x