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模拟登录并且保持cookie的方法详解
Apr 04 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
python实现银行实战系统
Feb 26 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
Python把图片转化为pdf代码实例
Jul 28 Python
Python MNIST手写体识别详解与试练
Nov 07 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实现用于计算执行时间的类实例
2015/04/18 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
由Javascript实现的页面日历
2011/11/04 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python插入排序算法实例分析
2015/07/03 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python求出0~100以内的所有素数
2018/01/23 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Python中的类与类型示例详解
2019/07/10 Python
python实现大量图片重命名
2020/03/23 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
CSS3简单实现照片墙
2014/12/12 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
房地产开发计划书
2014/01/10 职场文书
Java死锁的排查
2022/05/11 Java/Android
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技