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 Tkinter简单布局实例教程
Sep 03 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
python多维数组切片方法
Apr 13 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
python 把列表转化为字符串的方法
Oct 23 Python
selenium+python自动化测试环境搭建步骤
Jun 03 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
关于python 跨域处理方式详解
Mar 28 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 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/12/25 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python3中int(整型)的使用教程
2017/03/23 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python 元组和列表的区别
2020/12/30 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
某公司面试题
2012/03/05 面试题
妇产医师自荐信
2014/01/29 职场文书
《将心比心》教学反思
2014/04/08 职场文书
银行员工考核评语
2014/12/31 职场文书
Python中字符串对象语法分享
2022/02/24 Python
Python内置数据类型中的集合详解
2022/03/18 Python