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通过floor函数舍弃小数位的方法
Mar 17 Python
Python中的异常处理简明介绍
Apr 13 Python
Python 实现使用dict 创建二维数据、DataFrame
Apr 13 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
简单了解Django项目应用创建过程
Jul 06 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
matplotlib对象拾取事件处理的实现
Jan 14 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 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中执行系统外部命令
2006/10/09 PHP
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
Javascript基于OOP实实现探测器功能代码实例
2020/08/26 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
python类装饰器用法实例
2015/06/04 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
python下载图片实现方法(超简单)
2017/07/21 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
英国自行车商店:AW Cycles
2021/02/24 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
网站开发实习生的自我评价
2013/12/11 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers