一元一次方程计算器下载,如何用计算器计算一元二次方程

  

  输入方程a*X*X b*X C=0的参数A,B,C,计算方程的解。   

  

  参考代码如下:   

  

  Print('请输入方程A * x a*X*X b*X C=0=0,')A=float(input(' A : '))B=float(input(' B 3360 '))C=float(input(' C 3360 '))DLT=B . C))if A==0: if B==03360 if C==03360 print(' X取任意值!')else: print('方程无解!')else 3360 print(' x=% g ' %(-c/b))else 3360 if DLT=03360 x 1=(-b(DLT)* * 0.5)/(2 * a)X2=(-b-(DLT)* * 0.5)其实这道题并不难,主要是训练解题思维的完整性,比如要判断一个二次方程能不能形成,如果不能形成会怎么样等等。这些你都考虑过了吗?   

  

  求根公式是解二次方程最常用的方法,但是还有其他方法吗?显然是有的,比如牛顿迭代法。什么?你不知道牛顿迭代法?呵呵,普及一下吧。   

  

  20201201一元二次方程的求解(求根公式与牛顿迭代)   

  

  上面的函数y=f(x)图像与x轴有一个交点,这就是方程f(x)=0解x,所以取附近任意一个Xn,取函数图像对应的切线,然后得到这个切线与x轴的交点,把这个点称为Xn 1。找到了吗?Xn 1比Xn更接近x吗?如果一直这样下去,能无限逼近X吗?   

  

  这就是牛顿迭代法的原理。这不是很简单吗?那么Xn对应的正切方程是什么呢?在这个高等代数里,你应该已经学过了,就是对f(x)求导得到f'(x),带入Xn得到切点处的斜率k。那么方程可以写成:y=k(x-Xn) Yn。这样我们就可以计算出与x轴的交点xn 1=-Yn/k Xn。   

  

  那么回到a*X*X b*X C=0的解,我们先对y=a*X*X b*X C求导,得到y'=2*a*X b,那么xn对应的正切方程就是y=(2*a*Xn b)(x-Xn) (a*Xn*Xn b*Xn C)。继续下降,直到Xn,Xn 1非常接近。   

  

  Print('请输入方程a*X*X b*X C=0的参数,)a=float(input(' a : '))b=float(input(' b : '))C=float(input(' C 3360 '))def nt(X)3360 #迭代函数return-(a * X * X b * X X % g * X % g=0的解:' % (a,b,C))如果a==03360如果b==03360)else: print('方程无解!')else 3360 print(' X=% g ' %(-c/b))else 3360 if DLT=03360 Middle=-b/(2 * a)#对称轴X _ 1=中间0.00001 #轴右侧初始值X _ 2=中间-0.000初始值t=x _ 1 1同时轴左侧ABS (x _ 1-t) 0.0000013360 #迭代求右侧解最终区间精度要求为0.000001t=x _ 1x _ 1=nt(x _ 1)print(' x1=% g ' % x _ 1)t=x _ 21而ABS (x _ 2-t) 0.000001: #,最终区间精度要求为0.000。 )需要注意的问题:   

  

  (1)如果有解,那么在解附近的迭代一定收敛。而以一个初值开始的迭代只能逼近一个解,所以需要从函数图像中分析方程会有多少个解,然后相应地得到相邻的初值。比如,二次方程有解,就要在对应的二次函数对称轴的两侧得到两个初值。   

  

  (2)牛顿迭代法是求解一元高次方程的有效方法,并不局限于求解一元二次方程,这是我们在这里研究的意义。   

相关文章