root.m

来自「《matlab使用详解》的部分源码」· M 代码 · 共 41 行

M
41
字号
function [x1,x2]=root(a,b,c,disc,realpart,imagpart)
%求解一元二次方程a*x^2+b*x+c=0.
%
%变量设置和定义
%a,b,c分别为自变量系数
%disc为判别式
%realpart和imagpart分别代表实部和虚部
%x1、x2分别表示方程的根(如果有双根)
 
disp('求解一元二次方程:a*x^2+b*x+c=0');
a=input('请用户输入 ''a''的值:');
b=input('请用户输入 ''b''的值:');
c=input('请用户输入 ''c''的值:');
disc=b^2-4*a*c;
 
%如果二次项系数等于0
if(a==0)
    x1=-c/b;
    x2=x1;
    fprintf('x=%f\n',x1);
    
%判别式等于0 
elseif(disc==0)
        x1=-b/(2*a);
        fprintf('x=%f\n',x1);
 
%判别式大于0 
elseif(disc>0)
            x1=(-b+sqrt(disc))/(2*a);
            x2=(-b-sqrt(disc))/(2*a);
            fprintf('x1=%f\n',x1);
            fprintf('x2=%f\n',x2);
 
%如果判别式小于0 
else
            realpart=-b/(2*a);
            imagpart=sqrt(abs(disc))/(2*a);
            fprintf('x1=%f+i%f\n',realpart,imagpart);
            fprintf('x2=%f-i%f\n',realpart,imagpart);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?