(更新中)
非线性方程组的求解是数学中的一大难点,但是我们可以通过计算机的运算快速求出非线性方程组的近似解,下面给出四种求解非线性方程组的方法:二分法、不动点迭代法
以下的内容均用Python语言实现,所定义的函数可以直接使用(用来写数值分析(or计算方法)的作业),需要可以自取
1.二分法:
原理就是高数中的方程的根的存在定理:若一个区间的两端点的函数值一正一负,则该区间内至少有一个根。因此可以每次将区间长度二等分,直到区间足够小或者所得到的区间的两端点函数值同号为止。
下面是二分法的代码:
使用方法:函数f(x)自己写一个即可,输入区间两端点a,b,以及所要求的精度e,即可以返回在精度范围内方程的近似解
def dichotomy(a,b,e):
if a>=b:
print("这不是一个有效区间!")
elif f(a)*f(b)>=0 and a<b:
print("({},{})不是有根区间!".format(a,b))
else:
mid=(a+b)/2
while fabs(f(mid))>e and b-a>0.001:
if f(a)*f(mid)<0:
b=mid
mid=(a+mid)/2
else:
a=mid
mid=(mid+b)/2
return mid