数值分析算法总结

这篇博客总结了数值分析中的关键算法,包括非线性方程求根(如二分法、牛顿迭代),插值(Lagrange和Newton方法),最小二乘拟合,数值积分(梯形和辛普森法则等),常微分方程初值问题的解法(如Euler改进和RK4),线性方程组的直接解法(高斯消元、LU分解)和迭代解法(Jacobi和Gauss-Seidel),以及特征值求法(正幂法和反幂法)。文章提供了简单的Python代码片段帮助理解和记忆。
摘要由CSDN通过智能技术生成

数值分析算法总结

数值分析的算法总结,用 Python 简要描述各种方法。考前复(yu)习向。

本文给出的代码主要是针对闭卷考试背算法写的。我 jo 得记数学公式和写 LaTeX 一样,是件比写代码更可怕的事。所以,把一些主要的算法用程序写了出来,方便记忆。

(其中一部分是考试前复习时写的,经过考场的抽样检验,比较靠谱。但那时写的不太完整,后面又补充写了点,这时成绩都出了,学的也都忘了,所以可能不太对,总之别报太大期望啦~)

如果你需要的是更全的各种算法完整的代码实现与描述,请移步:

All right, talk is cheap, let me show you the code!

非线性方程求根

二分法

x = (a + b) / 2
while True:
    if f(x) * f(a) < 0:
        b = x
    else:
		a = x
	x = (a + b) / 2

不动点迭代

x = x_0
while True:
    x = phi(x)

收敛:diff(phi, x)存在且连续 && abs(diff(phi, x)(x_0)) < 1

or: 设 x ∗ x^* x f ( x ) = 0 f(x)=0 f(x)=0 的根,可以得到 x ∗ = . . . ( x ∗ ) x^*=...(x^*) x=...(x),所以 x ∗ x^* xx = phi(x) 的不动点,对 x ∗ x^* x 领域的 x:abs(diff(phi, x)) < 1

牛顿迭代

x = x_0
while True:
    x -= f(x) / df(x)

插值

Lagrange 插值

def lagrange_interpolate(points):
	L = 0  # 插值多项式
    for i, (xi, yi) in enumerate(points):
        li = 1
        for j, (xj, yj) in enumerate(points):
            if j == i:
                continue
            li *= (x - xj) / (xi - xj)
        L += yi * li
    return L

这个程序不太好懂,还是看公式:

L ( x ) = ∑ j = 0 k y j ℓ j ( x ) L(x)=\sum _{j=0}^{k}y_{j}\ell _{j}(x) L(x)=j

  • 14
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值