Python实现一元一次与一元二次方程求解
作者:?????? 发布时间:2022-03-30 14:09:32
一、前言
本文讲述的是1元1次方程,1元2次方程的python解法。只用给出一般形式的系数和常数,自动给出方程的解。还附带函数解析。
二、1元1次
1元1次方程的一般形式为ax+b=0。解出来真的超级超级简单。
ax+b=0(a≠0)
同减b,得ax=-b
同除以a,得x=-b/a
所以,我们只需要获取a、b两个数就能求出结果。
另外,我们需要分析一次函数:y=kx+b。(k≠0)
k如果是正数,则x越大y越大(增函数)。k是负数,则x越大y越小(减函数)。
1.获取a和b
2.计算x并输出
3.通过待定系数法描绘函数图像:
该函数是经过点(0,c),(5,d)的一条直线。
4.说明该函数是增函数还是减函数。
太简单辣!代码:
print("任意一个一元一次方程都可以表述为ax+b=0。请输入a和b")
a=int(input())
if a==0:
print("一次项不能为0!")
while True:
input()
b=int(input())
x=-b/a
print("该方程的解是",x)
print("y=",a,"x +",b,"的函数图像是过点( 0,",b,")以及( 5,",5*a+b,")的一条直线。为一次函数。")
if a>0:
print("该函数为增函数。y随着x的变大而变大。")
else:
print("该函数为减函数。y随着x的变大而减小。")
轻松搞定。
如果你认为这配不上你的智商,那接下来便是一元二次——
三、1元2次
在这之前,先讲讲1元2次的解法。
一元二次方程的一般形式是ax²+bx+c=0
我相信不会有人没学就被难倒的~
回归正题。我们先要通过判别式判断有方程有多少实数根,再依次根据公式进行解答。
接下来就是二次函数的分析。
二次函数的图像是抛物线,对称轴为b/2a。
ab>0,对称轴在y轴左侧。ab<0,对称轴在y轴右侧。ab=0,对称轴在y轴
函数的顶点位置为(b/2a,4ac-b2/4a).这也是二次函数的最小/大值。
a>0时,抛物线开口朝上。小于零则朝下。|a|越大,开口越小。
图像与x轴有2个点重合,方程便有2个解。1点重合1个解,0点重合无实数解。
接下来,便是代码。
1.获取a,b,c
2.根据判别式判断方程有几个根,再按照公式计算。
3.输入二次函数的性质,直接套公式。
因为代码有点难,加个注释:
import math#导入math模块
print("请将方程转换成ax2+bx+c=0的形式,a、b、c分别是多少?")#询问
while True:#循环判断输入
try:#异常捕捉
a=int(input())
b=int(input())
c=int(input())#获取a、b、c
if a==0:#a不能为0
print(3/0)
break#运行到这儿没bug就可以退出循环
except:
print("输入错误!请重新输入!")#重新输入一遍
pbs=b**2-4*a*c#设置变量判别式
dcz=b/2/a#设置变量对称轴
if pbs > 0:#如果判别式大于0
gen=math.sqrt((pbs)/(4*a*a))-dcz#依照根式求根1
gen2=int(math.copysign(math.sqrt((pbs)/(4*a*a)),-1))-dcz#依照根式求根2
print("方程有两个解,解1为",gen,"解2为",gen2)#输出
genshu=2
elif pbs == 0:#如果判别式等于0
print("方程有一个解,为",dcz)#直接输出
genshu=1
else:#如果判别式小于零
print("该方程无解")#输出
genshu=0
"""依照公式输出数据"""
print("函数y = ",a,"x 2 + ",b,"x + ",c,"是二次函数,为抛物线")
print("该函数的对称轴为",dcz,)
print("该函数的顶点也是最大/小值位置为( ",dcz,", ",(4*a*c-b*b)/(4*a),")")
print("函数图像与x轴的交点有",genshu,"个,这意味方程有",genshu,"个实数解")
if a>0:#判断开口
print("方程的开口朝上")
else:
print("方程的开口朝下")
if b==0:#判断对称轴
print("该函数的对称轴在y轴上")
elif (a>0 and b<0) or(a<0 and b>0):
print("该函数的对称轴在y轴右边")
else:
print("该函数的对称轴在y轴左边")
以 3x²+6x-9=0为例,结果:
再以 2x²+4x+2=0为例。结果:
再以3x²+6x+9=0为例,结果:
来源:https://blog.csdn.net/C_ygxb/article/details/130977599


猜你喜欢
- 关于变量的命名,这又是一个容易引发程序员论战的话题。如何命名才能更具有可读性、易写性与明义性呢?众说纷纭。本期“Python为什么”栏目,我
- 本文实例讲述了Python实现替换文件中指定内容的方法。分享给大家供大家参考,具体如下:这里使用python编写的程序,实现如下功能:将文件
- 一、背景 PyCharm执行Python时,找不到自己安装的package,例如pandas、numpy、scipy、scikit等,在执行
- 首先安装解析的第三方包:go get gopkg.in/yaml.v2示例:package main import ( "os&q
- MySql Server安装步骤如下所示:1安装MySql Server2 安装MySqlServer管理工具解压中文语言包,将文件复制到安
- 身体是革命的本钱,身体健康了我们才有更多精力做自己想做的事情,追求女神,追求梦想。然而程序员是一个苦比的职业,大部分时间都对着电脑,我现在颈
- 前言WSGI 有三个部分, 分别为服务器(server), 应用程序(application) 和中间件(middleware). 已经知道
- 现在能用自动化实现的,尽量使用自动化程序去操作,代替人工去操作,更有效率。今天说下用python结合adb命令去实现安卓手机端的通话压力测试
- 现在不写asp了这次我将我以前沉淀下的一些函数库共享给大家,希望能给初学者启示,给老手也有所帮助吧.先谢谢大家支持! <%@
- pyecharts显示数据为百分比的柱状图pyecharts是做数据分析的好帮手,柱状图比较简单,网站例子不够多,一般柱状图就是直接传两组数
- 最近在学习Golang语言,中间遇到一个前辈指点,有一个学习原则:Learning By Doing。跟我之前学习Java的经验高度契合。在
- 试官: 听说你熟悉python,那么你能简单阐述一下python的装饰器、生成器以及迭代器么?我: emm, 我不清楚,我只是了解过pyth
- Python 中常用的数据类型包括:数字类型:包括整型(int)、长整型(long)、浮点型(float)、复数型(comple
- 你同样可以使用cache标签来缓存模板片段。 在模板的顶端附近加入{% load cache %}以通知模板存取缓存标签。模板标签{% ca
- 点击进入Lombok官网下载Lombok jar包使用Lombok可能需要注意的地方(1)、当你的IDE是Idea时,要注意你的Idea是支
- 如果有一个字符串 eg: "sun,star,moon,clouds",想要在MS SQL中根据给定的分隔符',
- 关于Variable和Tensor旧版本的Pytorch中,Variable是对Tensor的一个封装;在Pytorch大于v0.4的版本后
- 保持良好的代码风格是每个Coder必学的课程,同样在HTML设计的时候也要特别注意代码的规范性,虽然说不规范的代码不会直接造成严重的后果,但
- 前言支持向量机 (Support Vector Machine, SVM) 是一种监督学习技术,它通过根据指定的类对训练数据进行最佳分离,从
- 总有一些程序在windows平台表现不稳定,动不动一段时间就无响应,但又不得不用,每次都是发现问题了手动重启,现在写个脚本定时检测进程是否正