非线性方程组求解
optimize库中的fsolve函数:对非线性方程组进行求解
调用形式为:fsolve(func, x0)
func(x)是计算方程组误差的函数,它的参数x是一个矢量,表示方
程组的各个未知数的一组可能解,func返回将x代入方程组之后得到
的误差;x0为未知数矢量的初始值。
对下面方程组进行求解:
f1(u1,u2,u3)=0
f2(u1,u2,u3)=0
f3(u1,u2,u3)=0
误差函数func可以定义为:
def func(x):
u1,u2,u3 = x
return [f1(u1,u2,u3), f2(u1,u2,u3), f3(u1,u2,u3)]
使用fsolve求解分线性方程组:
5?1 + 3 = 0
4?0^2 − 2 sin ?1?2 = 0
?1?2 − 1.5 = 0
误差函数可以定义为
from math import sin
def f(x):
#转换为标准的浮点数列表
x0, x1, x2 = x.tolist()
return[5*x1+3,
4*x0*x0 - 2*sin(x1*x2),
x1*x2-1.5]
求解和输出结果
from scipy.optimize import fsolve
#f是计算的方程组误差函数,[1,1,1]是未知数的