肥宅Sean

Never give up~

超松弛迭代法求方法组的解(Python实现)

数值分析题目 求方程组 {5x1+2x2+x3=−12−x1+4x2+2x3=202x1+−3x2+10x3=2 \left\{ \begin{array}{c} 5x_1+2x_2 + x_3 = -12 \\ -x_1 + 4x_2+2x_3 = 20 \\ 2x_1+-3x_...

2019-05-19 22:21:21

阅读数 34

评论数 0

常微分方程数值求解【python】

简述 这里只考虑最为简单的一种常微分方程 dydx=f(x,y)\frac{dy}{dx} = f(x,y)dxdy​=f(x,y) 然后这里的实例都是以下面这个方程来做展示的。 dydx=y∗(1−y2)\frac{dy}{dx} = y*(1-y^2)dxdy​=y∗(1−y2) 初...

2018-11-27 20:36:05

阅读数 501

评论数 0

快速生成一个二维矩阵Python

简述 网上方法有很多种。 这里就先记录下,一般人都想不到的一种来试试看~ import numpy as np T = np.arange(count_h) + np.arange(count_t)[:, np.newaxis] print(T.shape) 输出结果是: count_...

2018-09-15 11:22:21

阅读数 705

评论数 0

Sympy计算结果带参数的方程组

简述 下面是我随便写的一个方程,规模是3*3,然后有两个未知数,最后用最后一个未知数来作为参数。 系数的话,选的是行列index的和再+1。(index计数从0开始) 代码 from sympy import * N = 3 xs = symbols('x:%d' % N) fs =...

2018-09-14 21:39:29

阅读数 869

评论数 0

Sympy常见多个变量【一行代码创建】

解决办法 import sympy vrs = sympy.symbols('x1:10') 输出的结果是: (x1, x2, x3, x4, x5, x6, x7, x8, x9) 其实是一个元组,里面的每个元素都是sympy的符号~ 如果第一个不标记为x1的话,就是从0开始数...

2018-09-14 21:20:41

阅读数 479

评论数 2

牛顿插值多项式(python实现)

理论知识 牛顿插值多项式(理论知识) 目标函数 f(x)=11+x2f(x)=11+x2f(x) = \frac{1}{1+x^2} 插值点为[-10, 10]上的整数点。 图片 代码实现 import sympy import numpy as np from mat...

2018-07-08 19:18:53

阅读数 1536

评论数 0

重根迭代法解方程(两种方法)(Python实现)

简述 通过两种不同的重根迭代的来解方程。 处理的方程是 (sin(x) - x/2) ^2 = 0 代码 采用的第一种迭代重根迭代方法: xk+1=xk−mf(xk)f′(xk)xk+1=xk−mf(xk)f′(xk)x_{k+1} = x_k - m\frac{f(x_k)}{f...

2018-06-27 00:16:34

阅读数 1404

评论数 0

牛顿法求根号数(Python)

简述 以前也是用过这个东西的,但是一直都不是很清楚原理。 后来理解了牛顿法了之后,发现这个东西,就是牛顿法的一个简单的应用而已。 代码 target:就是目标数 我们在下面就是为了求这个数的开根号。 同样的原理,我们只需要修改方程中的对应的指数,我们就可以实现了 func部分 fr...

2018-06-26 16:13:34

阅读数 921

评论数 0

牛顿法求解方程(python)

简述 牛顿迭代法跟之前的不动点迭代法系列的区别,就在于这里考虑的function就是函数本身,而不是之前所说的函数迭代函数。 但是实际上还是类似的。 因为这时候的表达式比较清楚而已 迭代函数: xk+1=xk−f(xk)f′(xk)xk+1=xk−f(xk)f′(xk)x_{k+1} =...

2018-06-26 15:44:36

阅读数 2977

评论数 0

斯特芬森迭代法(Python)

简述 斯特芬森迭代法,本质上就使用了埃特金加速法的不动点迭代法。 可以结合不动点迭代法来看,点击访问 代码 from sympy import * import random x = symbols("x") func = (x + 1) ** (1...

2018-06-26 15:10:47

阅读数 505

评论数 0

不动点迭代法求方程的根(Python实现)

简述 不动点迭代法求方程的根:是迭代法解方程的根当中经典的方法。 将求解f(x) = 0的问题变成x = h(x)这样的问题。 转变的方程很简单,一般是移项,平方,开根号什么的。 难点: 问题难点就得到的对应不动点迭代方程是否收敛上。 因为对于一个方程来说,对应的不动点迭代方程会有很多种...

2018-06-26 14:13:32

阅读数 1610

评论数 0

复合高斯积分(节点数小于等于3的版本Python实现)

被积函数 y=11+x2y=11+x2y = \frac{1}{ 1 + x^ 2} x∈[−1,1]x∈[−1,1]x \in [-1, 1] 算法描述 缺点: 在下面代码中,没有实现点数大于3的情况(等于3的话可以使用) 因为计算对应的系数值的时候,这里就不是直接用python的...

2018-06-05 21:19:44

阅读数 531

评论数 0

复合五点高斯公式计算(Python实现)

被积函数 y=11+x2y=11+x2y = \frac{1}{ 1+x^2} x∈[−1,1]x∈[−1,1]x \in [-1 , 1] 算法分析 这里使用分段的方式,这里的节点做了变换之后记得对于结果记得要做类似的变换,来确保这个数值没有问题。 注意到,这里本来想用跟之前的节点数目...

2018-06-05 20:56:10

阅读数 710

评论数 0

勒让德多项式(Python实现)

下面是使用了sympy,其中x为设置的symbols。 point是一个整数的参数,我把这个放到了全局变量中,方便修改 也可以放到函数参数中。 代表的是有多少个零点的勒让德多项式。 def P(): if point == 0: return 1 elif ...

2018-06-05 12:56:11

阅读数 790

评论数 0

Sympy含pi等表达式转浮点数形式

介绍 有时通过sympy进行科学运算的时候,有些时候是需要用到数值形式,有些时候是需要用到表达式形式。 这里介绍将包含有e,pi等的数学表达式转成数值的方法 代码 其中,这里的a就是sympy的表达式 a.evalf() 上述函数返回值就是一个浮点数。...

2018-06-05 00:02:39

阅读数 504

评论数 0

Python求积分(定积分)

函数 ∫21xdx∫12xdx\int_1^2 {x} \,{d}x 代码 from sympy import * x = symbols('x') print(integrate(x, (x, 1, 2))) 解释 integrate(函数,(变量,下限, 上限))

2018-06-04 22:28:01

阅读数 13572

评论数 1

三次样条插值Python实现

函数 y=11+x2y=11+x2y = \frac{1}{1 + x^2} 算法分析 三次样条插值。就是在分段插值的一种情况。 要求: 在每个分段区间上是三次多项式(这就是三次样条中的三次的来源) 在整个区间(开区间)上二阶导数连续(当然啦,这里主要是强调在节点上的连续) 加上边界...

2018-06-04 22:15:20

阅读数 7615

评论数 2

分段埃尔米特插值Python实现并检查误差

函数 y=11+x2y=11+x2y = \frac{1}{1 + x^2} 图像 可以看到,这里已经几乎没有任何差距了。。 代码 import numpy as np from sympy import * import matplotlib.pyplot as plt ...

2018-05-27 16:49:04

阅读数 694

评论数 0

分段线性插值Python实现(同时估计误差)

函数 y=11+x2y=11+x2y = \frac{1}{1+x^2} 算法 这个算法不算难。甚至可以说是非常简陋。但是在代码实现上却比之前的稍微麻烦点。主要体现在分段上。 代码 import numpy as np from sympy import * import matp...

2018-05-27 16:34:13

阅读数 1375

评论数 0

拉格朗日插值--11次切比雪夫多项式零点作为节点Python实现并计算误差

目标函数 y=11+x2y=11+x2y = \frac{1}{1+x^2} 条件 通过拉格朗日进行插值但是通过所给的节点的不同,会导致插值的效果也不同。 下面方法采用的是用等距节点来实现插值效果。 插值节点: 使用的是11次切比雪夫多项式的零点(扩展到指定的x空间) 也就是11...

2018-05-27 15:39:46

阅读数 1613

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭