在 MATLAB 中求解二次方程

Sheeraz Gul 2023年1月30日 2022年5月11日
  1. 在 MATLAB 中使用 solve() 方法求解二次方程
  2. 在 MATLAB 中建立使用者定義的函式來求解二次方程
在 MATLAB 中求解二次方程

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

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

solve() 函式可以求解二次方程併為我們求根。它還可以求解高階方程。讓我們嘗試使用 solve() 方法求解二次方程:

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

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

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
Author: 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