if-else-end结构求判别式和一元二次方程的根

 时间:2024-10-24 23:25:38

对于一元二次方程a*x^2+b*x+c=0而言,判别式delta大于0有两个不同的实根,delta等于0有两个相同的实根,delta小于0没有实数根。if-else-end分支结构是MATLAB一种重要的控制流结构,本文介绍使用if-else-end分支结构进行判别式判断(大于0,等于0,小于0),然后求一元二次方程的根。

if-else-end结构求判别式和一元二次方程的根

工具/原料

MATLAB

delta

solve

一元二次方程

方法/步骤

1、第一,求一元二次方程a*x^2+b*x+c=0的根,判别式delta=b^2-4*a*c,蟠校盯昂delta>稆糨孝汶;0有两个不同的实根,delta=0有两个相同的实根,delta<0没有实根。启动MATLAB,新建脚本(Ctrl+N),在脚本编辑区输入如下代码:closeall;clearall;clca=input('pleaseinput''a'':');b=input('pleaseinput''b'':');c=input('pleaseinput''c'':');delta=b^2-4*a*c;symsxifdelta>0fprintf('theequationhastwodifferentrealroots\n')X=solve(a*x^2+b*x+c==0);x1=X(1),x2=X(2)ezplot(a*x^2+b*x+c);holdonplot([x1,x2],0,'ro','MarkerSize',10,'MarkerFace','r')plot([-2*pi:0.1:2*pi],0,'r')elseifdelta==0fprintf('theequationhastwosamerealroots\n')X=solve(a*x^2+b*x+c==0);x=Xelsefprintf('theequationdoesnothaverealroots\n')end其中solve()是MATLAB自带的求解等式的函数。

if-else-end结构求判别式和一元二次方程的根

2、第二,保存和运行上述脚本,命令行窗口提示请输入a,b和c。以一元二次方程2*x^2+4*x陴鲰芹茯+1=0为例,运行该脚本并输入a=2,b=4和c=1,则会得到如下结果pleaseinput惺绅寨瞀'a':1pleaseinput'b':4pleaseinput'c':2theequationhastwodifferentrealrootsx1=2^(1/2)-2x2=-2^(1/2)-2即一元二次方程2*x^2+4*x+1=0有两个不同的实根。

if-else-end结构求判别式和一元二次方程的根

3、第三,以一元二次方程1*x^2+2*x+1=0为例,运行上述脚本,则得到如下结果。pleaseinput'a':1pleaseinput'b':2pleaseinput'c':1theequationhastwosamerealrootsx=-1-1即一元二次方程1*x^2+2*x+1=0有两个相等的实根。

if-else-end结构求判别式和一元二次方程的根

4、第四,以一元二次方程1*x^2+2*x+3=0为例,运行上述脚本,则得到如下结果。pleaseinput'a':1pleaseinput'b':2pleaseinput'c':3theequationdoesnothaverealroots即一元二次方程1*x^2+2*x+3=0没有实根。

if-else-end结构求判别式和一元二次方程的根

5、第五,在上述脚本的基础上,对于一元二次方程有两个不同实根的情况,要求MATLAB绘制出函数兔脒巛钒图像和标出两个实数根,只需将脚本改进如下:closeall;clearall;clca=in禊诬娱飑put('pleaseinput''a'':');b=input('pleaseinput''b'':');c=input('pleaseinput''c'':');delta=b^2-4*a*c;symsxifdelta>0fprintf('theequationhastwodifferentrealroots\n')X=solve(a*x^2+b*x+c==0);x1=X(1),x2=X(2)ezplot(a*x^2+b*x+c);holdonplot([x1,x2],0,'ro','MarkerSize',10,'MarkerFace','r')plot([-2*pi:0.1:2*pi],0,'r')elseifdelta==0fprintf('theequationhastwosamerealroots\n')X=solve(a*x^2+b*x+c==0);x=Xelsefprintf('theequationdoesnothaverealroots\n')end相比第一步的脚本而言,只是添加三行代码:ezplot(a*x^2+b*x+c);holdonplot([x1,x2],0,'ro','MarkerSize',10,'MarkerFace','r')plot([-2*pi:0.1:2*pi],0,'r')用于绘制函数图像和标出两个不同的实数根。

if-else-end结构求判别式和一元二次方程的根

6、第六,依旧以一元二次方程2*x^2+4*x+1=0为例,运行上述改进的脚本,不仅可以在命令行窗口得到方程的两个不同的实根,还可以得到如下图像。

if-else-end结构求判别式和一元二次方程的根

雨课堂错过了扫码怎么办 #校园分享# 如何使用mathematica求解矩阵的特征多项式? 解向量的秩为什么是n-r 雨课堂时间过了怎么答题 幂指函数的求导方法
热门搜索
贝母图片 小刺猬图片 白玫瑰图片 肌肉男图片 避孕套图片