一元二次方程matlab
时间: 2023-10-11 10:13:34 浏览: 150
在MATLAB中,一元二次方程可以用polyval和roots函数求解。假设一元二次方程为ax^2+bx+c=0,其中a、b、c均为常数。则可以用以下代码求解:
```matlab
% 定义方程系数
a = 1;
b = 2;
c = 1;
% 求解方程
x = roots([a, b, c]);
% 输出结果
fprintf('x1 = %f, x2 = %f\n', x(1), x(2));
```
其中,roots函数可以求解方程的根,输入参数为一个长度为3的向量,向量中分别为二次项系数、一次项系数和常数项系数。输出为一个长度为2的向量,分别为方程的两个根。polyval函数可以用来验证求解的根是否正确,输入参数为一个长度为3的向量和根值,输出为方程在该根处的函数值。
相关问题
求根公式一元二次方程matlab
一元二次方程通常指的是形如 ax^2 + bx + c = 0 的方程,其中 a、b 和 c 是常数,且 a ≠ 0。求解一元二次方程的根可以使用求根公式,也称为二次公式。该公式可以直接给出方程的根,公式如下:
x = (-b ± √(b^2 - 4ac)) / (2a)
在 MATLAB 中,你可以使用内置函数 `roots` 来求解一元二次方程的根,也可以直接应用上述的求根公式。下面是使用求根公式在 MATLAB 中解一元二次方程的代码示例:
```matlab
% 假设一元二次方程的系数为 a = 1, b = -3, c = 2
a = 1;
b = -3;
c = 2;
% 计算判别式
discriminant = b^2 - 4*a*c;
% 根据判别式的值来计算根
if discriminant > 0
% 两个不同的实数根
root1 = (-b + sqrt(discriminant)) / (2*a);
root2 = (-b - sqrt(discriminant)) / (2*a);
elseif discriminant == 0
% 两个相同的实数根(重根)
root1 = root2 = -b / (2*a);
else
% 两个复数根
realPart = -b / (2*a);
imaginaryPart = sqrt(-discriminant) / (2*a);
root1 = complex(realPart, imaginaryPart);
root2 = complex(realPart, -imaginaryPart);
end
% 显示结果
fprintf('方程 %dx^2 + %dx + %d = 0 的根为:\n', a, b, c);
fprintf('x1 = %f\n', root1);
fprintf('x2 = %f\n', root2);
```
请注意,上述代码中 `sqrt` 函数用于计算平方根,`complex` 函数用于创建复数。
一元二次方程求解matlab
以下是一元二次方程求解的Matlab代码:
```matlab
clear all; clc;
a = input('a=?');
b = input('b=?');
c = input('c=?');
det = b * b - 4 * a * c;
p = [a, b, c];
x = roots(p);
if (det > 0)
disp("有互不相等两个实根");
elseif (det == 0)
disp("有两个相等实根");
else
disp("有两个复根");
end
x
```
用户需要输入方程的三个系数a、b、c,程序会自动计算出方程的根,并输出结果。如果方程有两个互不相等的实根,则输出“有互不相等两个实根”;如果方程有两个相等的实根,则输出“有两个相等实根”;如果方程有两个复根,则输出“有两个复根”。
阅读全文