使用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解非线性方程组_python scipy求解非线性方程的方法(fsolve/root)相关推荐

  1. python解一元三次方程_python/sympy求解矩阵方程的方法

    sympy版本:1.2 假设求解矩阵方程 AX=A+2X 其中 求解之前对矩阵方程化简为 (A−2E)X=A 令 B=(A−2E) 使用qtconsole输入下面程序进行求解 In [26]: fro ...

  2. python解三元方程组_python求解/求解三元方程组

    当我试图用python3中的以下代码求解一个由三个方程组成的方程组时,我总是出错:import sympy from sympy import Symbol, solve, nsolve x = Sy ...

  3. 用matlab解非线性方程组,用matlab求解非线性方程组,

    共回答了17个问题采纳率:76.5% matlab源程序为: S=solve('x1-(7+x2^2+4*x3)/12=0','x2-(11-x1^2+x3)/10=0','x3-(8-x2^3)/1 ...

  4. python牛顿法解非线性方程组_用牛顿迭代法解非线性方程组

    题目: 用牛顿迭代法解非线性方程组 有两个非线性方程,未知数是x1,x2: (15x1+10x2)/[(40-30x1-10x2)^2×(15-15x1)]=5e-4; (15x1+10x2)/[(4 ...

  5. c语言割线法解非线性方程,用割线法解非线性方程组.doc

    用割线法解非线性方程组 自动化学院1011203050 陈晓祺 拟牛顿法解下列方程组 先将拟牛顿法的程序代码如下 Function[r,m]=mulVlineF,x0,A, eps) Format l ...

  6. python解复杂方程_Python数据处理篇之Sympy系列(五)---解方程

    前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大. 本章节学习对应官网的:Solvers 官方教程 (一)求解多元一次方程-solve() 1.说明: 解多元一次方程可以使用solve( ...

  7. 如何用matlab解异或方程,Matlab-6:解非线性方程组newton迭代法

    函数文件: function x=newton_Iterative_method(f,n,Initial) x0=Initial; tol=1e-11; x1=x0-Jacobian(f,n,x0)\ ...

  8. python解二元一次方程_Python数据处理篇之Sympy系列(五)---解方程

    前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大. 本章节学习对应官网的:Solvers 官方教程 https://docs.sympy.org/latest/tutorial/solv ...

  9. python解方程代码_Python解方程的技巧介绍(代码示例)

    本篇文章给大家带来的内容是关于Python解方程的技巧介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. numpy numpy 用来解方程的话有点复杂,需要用到矩阵的思 ...

最新文章

  1. 生活有时会有点苦涩——一位第六年还没发paper的PHD的自述
  2. 浅谈Base64编码算法
  3. 极客马拉松JUNCTION✖️TIANJIN
  4. [自制简单操作系统] 4、计时器(线性表实现优化中断)
  5. 第4章 变量、作用域和内存问题
  6. Bootloader传参数到Kernel
  7. css鼠标变成小手_技巧篇:CSS高级技巧详解
  8. struts2 log4j_Struts2和Log4j集成示例项目
  9. 【VC++类型转换】string转换为CString
  10. 最快的PID参数整定口诀
  11. 永久关闭windows的自动更新
  12. Arduino框架下调试STM32F103C8T6
  13. 用友u8服务器修改ipv4,用友U8-OA11.1 用友U8加密狗更换服务器了-用友U8
  14. TBODY的使用方法和意义
  15. 阿里靠什么支撑 EB 级计算力?
  16. 小丑改造计划之复习一
  17. VBA字符串智能拼接与自动换行 VBA代码助手独家功能
  18. 关于重装系统后没有以太网和wifi的问题解决
  19. phpstudy宝塔_宝塔和phpstudy的区别
  20. 水仙花数的判断(JAVA)

热门文章

  1. 知识点9--Docker容器的数据卷
  2. keycloak~11.3.0之后微信认证问题解决
  3. Intel Tick-Tock策略简介
  4. (附源码)springboot公益慈善管理系统 毕业设计 281454
  5. MT【192】又是绝对值函数
  6. fcm code C代码
  7. adb 打开和关闭应用
  8. gulp自动生成精灵图
  9. 全概率公式和逆概率公式(贝叶斯公式)
  10. SINAMICS S120驱动在提升系统中的运用