在 MATLAB 中求解二次方程

Sheeraz Gul 2023年1月30日
  1. 在 MATLAB 中使用 solve() 方法求解二次方程
  2. 在 MATLAB 中创建用户定义的函数来求解二次方程
在 MATLAB 中求解二次方程

本教程将演示如何在 MATLAB 中求解二次方程。

在 MATLAB 中使用 solve() 方法求解二次方程

solve() 函数可以求解二次方程并为我们求根。它还可以求解高阶方程。让我们尝试使用 solve() 方法求解二次方程:

syms x
quad_equation1 = x^2 + 7*x + 10 == 0;
quad_equation2 = 7*x^2 + 5*x + 10 == 0;

X = solve(quad_equation1, x);
Y = solve(quad_equation2, x);

disp('The first root of the first quadratic equation is: '), disp(X(1));
disp('The second root of the first quadratic equation is: '), disp(X(2));

disp('The first root of the second quadratic equation is: '), disp(Y(1));
disp('The second root of the second quadratic equation is: '), disp(Y(2));

上面的代码尝试使用 solve() 方法求解两个给定的二次方程。

输出:

The first root of the first quadratic equation is:
-5

The second root of the first quadratic equation is:
-2

The first root of the second quadratic equation is:
- (255^(1/2)*1i)/14 - 5/14

The second root of the second quadratic equation is:
(255^(1/2)*1i)/14 - 5/14

在 MATLAB 中创建用户定义的函数来求解二次方程

我们可以创建函数来求解 MATLAB 中的二次方程。我们需要二次公式和二次方程的系数。

求解二次方程的函数将是:

function [x1, x2] = QuadraticEquation(a, b, c)

    % quad. formula
    d = b^2 - 4*a*c;
    % the real numbered distinct roots
    if d > 0
        x1 = (-b+sqrt(d))/(2*a);
        x2 = (-b-sqrt(d))/(2*a);
    % the real numbered degenerate root
    elseif d == 0
        x1 = -b/(2*a);
        x2 = NaN;
    % complex roots will return NaN, NaN.
    else
        x1 = NaN;
        x2 = NaN;
    end
end

在上面的代码中,abc 是二次方程的系数,d 是二次公式。

现在,让我们尝试使用上面的函数求解二次方程。我们需要二次方程的系数作为输入。

例子:

[x1, x2] = QuadraticEquation (3, 4, -13)

[y1, y2] = QuadraticEquation (1,2,1)

[z1, z2] = QuadraticEquation (3, 3, 1)

输出:

x1 =

    1.5191


x2 =

   -2.8525


y1 =

    -1


y2 =

   NaN


z1 =

   NaN


z2 =

   NaN
作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相关文章 - MATLAB Equation