在 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