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入门篇之面向对象
Oct 20 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
python中requests和https使用简单示例
Jan 18 Python
Django中cookie的基本使用方法示例
Feb 03 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
python中的random模块和相关函数详解
Apr 22 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python 中的 else详解
2016/04/23 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
化工专业个人的求职信范文
2013/11/28 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
个人函授自我鉴定
2014/03/25 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
整改通知书
2015/04/20 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
贷款收入证明格式
2015/06/24 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
5道关于python基础 while循环练习题
2021/11/27 Python