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安装与使用redis的方法
Apr 19 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
python实现可视化动态CPU性能监控
Jun 21 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
python获取array中指定元素的示例
Nov 26 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
Python自动化操作实现图例绘制
Jul 09 Python
python中remove函数的踩坑记录
Jan 04 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内核之php in array
2015/11/10 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
15 个 JavaScript Web UI 库
2010/05/19 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python GUI计算器的实现
2020/10/09 Python
华为慧通面试题
2012/09/11 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
二年级数学教学反思
2014/01/21 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
高中班主任评语
2014/12/30 职场文书
小学校长个人总结
2015/03/03 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL