在 MATLAB 中求解二次方程
Sheeraz Gul
2023年1月30日
本教程將演示如何在 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
在上面的程式碼中,a
、b
和 c
是二次方程的係數,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 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