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 THREADING模块中的JOIN()方法深入理解
Feb 18 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 Python
python实现神经网络感知器算法
Dec 20 Python
Python实现将照片变成卡通图片的方法【基于opencv】
Jan 17 Python
python实现一个简单的并查集的示例代码
Mar 19 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
python使用turtle库与random库绘制雪花
Jun 22 Python
python实现石头剪刀布程序
Jan 20 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 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在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP常用数组函数介绍
2014/07/28 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
js中作用域的实例解析
2017/03/16 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
编写简单的Python程序来判断文本的语种
2015/04/07 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
python判断链表是否有环的实例代码
2020/01/31 Python
《白鹅》教学反思
2014/04/13 职场文书
差生评语大全
2014/05/04 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
公司禁烟通知
2015/04/23 职场文书
新员工入职感想
2015/08/07 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
《开国大典》教学反思
2016/02/16 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
golang连接MySQl使用sqlx库
2022/04/14 Golang