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之入门(三)序列
May 25 Python
九步学会Python装饰器
May 09 Python
Python 中的 else详解
Apr 23 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
使用tensorflow实现线性svm
Sep 07 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
Python time库基本使用方法分析
Dec 13 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
python 抓取知乎指定回答下视频的方法
Jul 09 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 memcache扩展的三种安装方法
2009/04/26 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
js登录弹出层特效
2014/03/07 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
Python 爬虫性能相关总结
2020/08/03 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
创立科技Java面试题
2015/11/29 面试题
《果园机器人》教学反思
2014/04/13 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
大客户经理岗位职责
2015/04/09 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL