本文章仅为记录个人学习历程,希望大家指出其中的不足。
代码部分:
disp('本程序设计用于求解二元一次方程');
disp('方程形式:A*X^2+BX+C=0'); %程序运行时的用户提示
a=input('输入参数A');
b=input('输入参数B');
c=input('输入参数C');
coutn=b^2-4*a*c; %定义四个运算时涉及的变量
if coutn>0 %可能发生的第一种情况,输出两个根,并绘制图形
x1=(-b+sqrt(coutn))/(2*a);
x2=(-b-sqrt(coutn))/(2*a);
disp('这个方程有两个根');
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
x=linspace(x1-20,x2+20);
y=a*(x.^2)+b*x+c;
plot(x,y);
xlabel('x');
ylabel('函数值');
elseif coutn==0 %可能发生的第二种情况,输出一个重根,并绘制图形
x1=(-b)/(2*a);
disp('这个方程有唯一根');
fprintf('x1=x2=%f\n',x1);
x=linspace(x1-20,x1+20);
y=a*(x.^2)+b*x+c;
plot(x,y);
xlabel('x');
ylabel('函数值');
else %可能发生的第三种情况,输出两个复数根
real_part=(-b)/(2*a);
imag_part=sqrt(abs(coutn))/(2*a);
disp('该方程有复数解');
fprintf('x1=%f+i%f\n',real_part,imag_part);
fprintf('x1=%f-i%f\n',real_part,imag_part);
end