python scipy求解非线性方程的方法(fsolve/root)


Posted in Python onNovember 12, 2018

使用scipy.optimize模块的root和fsolve函数进行数值求解线性及非线性方程,下面直接贴上代码,代码很简单

from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import root,fsolve
#plt.rc('text', usetex=True) #使用latex
## 使用scipy.optimize模块的root和fsolve函数进行数值求解方程

## 1、求解f(x)=2*sin(x)-x+1
rangex1 = np.linspace(-2,8)
rangey1_1,rangey1_2 = 2*np.sin(rangex1),rangex1-1
plt.figure(1)
plt.plot(rangex1,rangey1_1,'r',rangex1,rangey1_2,'b--')
plt.title('$2sin(x)$ and $x-1$')

def f1(x):
 return np.sin(x)*2-x+1

sol1_root = root(f1,[2])
sol1_fsolve = fsolve(f1,[2])
plt.scatter(sol1_fsolve,2*np.sin(sol1_fsolve),linewidths=9)
plt.show()

## 2、求解线性方程组{3X1+2X2=3;X1-2X2=5}
def f2(x):
 return np.array([3*x[0]+2*x[1]-3,x[0]-2*x[1]-5])

sol2_root = root(f2,[0,0])
sol2_fsolve = fsolve(f2,[0,0])
print(sol2_fsolve) # [2. -1.5]

a = np.array([[3,2],[1,-2]])
b = np.array([3,5])
x = np.linalg.solve(a,b)
print(x) # [2. -1.5]
## 3、求解非线性方程组
def f3(x):
 return np.array([2*x[0]**2+3*x[1]-3*x[2]**3-7,
     x[0]+4*x[1]**2+8*x[2]-10,
     x[0]-2*x[1]**3-2*x[2]**2+1])

sol3_root = root(f3,[0,0,0])
sol3_fsolve = fsolve(f3,[0,0,0])
print(sol3_fsolve)

## 4、非线性方程
def f4(x):
 return np.array(np.sin(2*x-np.pi)*np.exp(-x/5)-np.sin(x))
init_guess =np.array([[0],[3],[6],[9]])
sol4_root = root(f4,init_guess)
sol4_fsolve = fsolve(f4,init_guess)
print(sol4_fsolve)
t = np.linspace(-2,12,2000)
y1 = np.sin(2*t-np.pi)*np.exp(-t/5)
y2 = np.sin(t)
plt.figure(2)
a , = plt.plot(t,y1,label='$sin(2x-\pi)e^{-x/5}$')
b , = plt.plot(t,y2,label='$sin(x)$')
plt.scatter(sol4_fsolve,np.sin(sol4_fsolve),linewidths=8)
plt.title('$sin(2x-\pi)e^{-x/5}$ and $sin(x)$')
plt.legend()

python scipy求解非线性方程的方法(fsolve/root)

python scipy求解非线性方程的方法(fsolve/root)

以上这篇python scipy求解非线性方程的方法(fsolve/root)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
实例说明Python中比较运算符的使用
May 13 Python
浅谈python多线程和队列管理shell程序
Aug 04 Python
Python虚拟环境项目实例
Nov 20 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
Python笔记之代理模式
Nov 20 Python
Python 实现数组相减示例
Dec 27 Python
使用python3 实现插入数据到mysql
Mar 02 Python
Python使用Matlab命令过程解析
Jun 04 Python
Python3使用tesserocr识别字母数字验证码的实现
Jan 29 Python
详解Python牛顿插值法
May 11 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 #Python
使用python将时间转换为指定的格式方法
Nov 12 #Python
pandas 快速处理 date_time 日期格式方法
Nov 12 #Python
python内置数据类型之列表操作
Nov 12 #Python
python pandas读取csv后,获取列标签的方法
Nov 12 #Python
对pandas的行列名更改与数据选择详解
Nov 12 #Python
Python numpy.array()生成相同元素数组的示例
Nov 12 #Python
You might like
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python类型强制转换long to int的代码
2013/02/10 Python
python写入已存在的excel数据实例
2018/05/03 Python
python抽取指定url页面的title方法
2018/05/11 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
导游的职业规划书范文
2013/12/27 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
学生评语大全
2014/04/18 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
竞选部长演讲稿
2014/04/26 职场文书
以权谋私检举信范文
2015/03/02 职场文书
小学远程教育工作总结
2015/08/13 职场文书
修辞手法有哪些?
2019/08/29 职场文书