数值分析复习笔记-第七章-非线性方程求根

2023-11-12

Chapter7 非线性方程求根

7.1 前言

  1. 本质:对一些n次代数多项式or超越方程,它们的根是难以通过解析方法求得,因此需采取数值方法
  2. 主要有:
    • 二分法
    • 不动点迭代法:迭代加速
    • 牛顿迭代法:牛顿法、割线法

7.2 二分法

  1. 数学基础:零点定理
  2. 基本步骤:
    • 确定初始区间[a,b]=>satisfy f(a)f(b)<0,
    • x 0 = a + b 2 x_{0}=\frac{a+b}{2} x0=2a+b => calculate f ( x 0 ) f(x_{0}) f(x0)
    • judge:
      • f ( x 0 ) = = 0 f(x_{0})==0 f(x0)==0 ==> out of loop
      • f ( a ) f ( x 0 ) < 0 f(a)f(x_{0})<0 f(a)f(x0)<0 ==> new x 0 ∈ [ a , x 0 ] x_{0}\in [a,x_{0}] x0[a,x0]
      • f ( x 0 ) f ( b ) < 0 f(x_{0})f(b)<0 f(x0)f(b)<0 ==> new x 0 ∈ [ x 0 , b ] x_{0}\in [x_{0},b] x0[x0,b]
  3. disadvantage:
    • 只用了函数值的正负号,而非函数值的大小 => 收敛速度不快
    • 二分法无法求复根

7.3 不动点迭代

7.3.1 基本概念

  1. 概念:类似于 x ( k + 1 ) = B ⋅ x ( k ) + g x^{(k+1)}=B\cdot x^{(k)}+g x(k+1)=Bx(k)+g,将非线性方程转换为 x = ϕ ( x ) x=\phi(x) x=ϕ(x),从而产生迭代算法 x k + 1 = ϕ ( x k ) x_{k+1}=\phi(x_{k}) xk+1=ϕ(xk)
  2. 基本步骤:
    • 取初值 x 0 x_{0} x0
    • 迭代 x k + 1 = ϕ ( x k ) x_{k+1}=\phi(x_{k}) xk+1=ϕ(xk)
    • when ∣ x k + 1 − x k ∣ < ε |x_{k+1}-x_{k}|<\varepsilon xk+1xk<ε,终止迭代
  3. 核心:
    • 构造 x = ϕ ( x ) x=\phi(x) x=ϕ(x)
    • 判断是否收敛

7.3.2 收敛性

  1. 定理:
    设迭代函数 φ ( x ) \varphi(\boldsymbol{x}) φ(x) [ a , b ] [\boldsymbol{a}, \boldsymbol{b}] [a,b] 上连续, 且满足:
    (a) 当 x ∈ [ a , b ] x \in[a, b] x[a,b] 时, a ≤ φ ( x ) ≤ b a \leq \varphi(x) \leq b aφ(x)b;
    (b) 存在一正数 L \boldsymbol{L} L, 满足 0 < L < 1 0<\boldsymbol{L}<\mathbf{1} 0<L<1, 且 ∀ x ∈ [ a , b ] \forall \boldsymbol{x} \in[\boldsymbol{a}, \boldsymbol{b}] x[a,b], 有
    ∣ φ ′ ( x ) ∣ ≤ L \left|\varphi^{\prime}(x)\right| \leq L φ(x)L
     则:
       (1) 方程 x = φ ( x ) \boldsymbol{x}=\varphi(\boldsymbol{x}) x=φ(x)在 [ a , b \boldsymbol{a}, \boldsymbol{b} a,b] 内有唯一解 x ∗ \boldsymbol{x}^* x,且对于任意初值 x 0 ∈ [ a , b ] x_0 \in[a, b] x0[a,b],迭代法 x k + 1 = φ ( x k ) x_{k+1}=\varphi\left(x_k\right) xk+1=φ(xk) 均收敛于 x ∗ x^* x
       (2) 序列 x k {x_{k}} xk的收敛速度有估计
    ∣ x k − x ∗ ∣ ≤ L 1 − L ∣ x k − x k − 1 ∣ \left|\boldsymbol{x}_k-\boldsymbol{x} *\right| \leq \frac{L}{1-L}\left|\boldsymbol{x}_k-\boldsymbol{x}_{k-1}\right| xkx1LLxkxk1
    ∣ x k − x ∗ ∣ ≤ L k 1 − L ∣ x 1 − x 0 ∣ \left|\boldsymbol{x}_k-\boldsymbol{x} *\right| \leq \frac{L^k}{1-L}\left|x_1-x_0\right| xkx1LLkx1x0
  2. 证明:

(1.1) 存在性:构造 g ( x ) = x − ϕ ( x ) g(x)=x-\phi(x) g(x)=xϕ(x),通过零点定理和条件(a)证明 g ( a ) g ( b ) < 0 g(a)g(b)<0 g(a)g(b)<0
(1.2) 唯一性:反证法,假设有一个新真值 y ∗ y^* y,由拉格朗日微分中值定理-> ∣ x ∗ − y ∗ ∣ = ∣ ϕ ( x ∗ ) − ϕ ( y ∗ ) ∣ = ϕ ( ξ ) ′ ∣ x ∗ − y ∗ ∣ |x^*-y^*|=|\phi(x^*)-\phi(y^*)|=\phi(\xi)'|x^*-y^*| xy=ϕ(x)ϕ(y)=ϕ(ξ)xy,显然, ∣ x ∗ − y ∗ ∣ = ϕ ( ξ ) ′ ∣ x ∗ − y ∗ ∣ |x^*-y^*|=\phi(\xi)'|x^*-y^*| xy=ϕ(ξ)xy只有当 ϕ ( ξ ) ′ = = 1 \phi(\xi)'==1 ϕ(ξ)==1时取等号,与条件(b)不符
(1.3) 收敛性: ∣ x k − x ∗ ∣ = ∣ ϕ ( x k − 1 ) − ϕ ( x ∗ ) ∣ = ϕ ( ξ ) ′ ∣ x k − 1 − x ∗ ∣ ≤ L ∣ x k − x ∗ ∣ |x_{k}-x^*|=|\phi(x_{k-1})-\phi(x^*)|=\phi(\xi)'|x_{k-1}-x^*|\leq L|x_{k}-x^*| xkx=ϕ(xk1)ϕ(x)=ϕ(ξ)xk1xLxkx递推, ∣ x k − x ∗ ∣ ≤ L k ∣ x 0 − x ∗ ∣ → 0 |x_{k}-x^*|\leq L^k|x_{0}-x^*|\rightarrow0 xkxLkx0x0,(L属于0,1;而x0和x*都是定值,所以趋近于0)
(2.1) 第一个等式:通过 ∣ x k − x ∗ ∣ = ∣ x k − x k + 1 + x k + 1 − x ∗ ∣ = ∣ x k − x k + 1 + ϕ ( x k ) − ϕ ( x ∗ ) ∣ = ∣ x k − x k + 1 + ϕ ( ξ ) ′ ( x k − x ∗ ) ∣ ≤ ∣ x k − x k + 1 ∣ + L ∣ x k − x ∗ ∣ |x_{k}-x^*|=|x_{k}-x_{k+1}+x_{k+1}-x^*|=|x_{k}-x_{k+1}+\phi(x_{k})-\phi(x^*)|=|x_{k}-x_{k+1}+\phi(\xi)'(x_{k}-x^*)|\leq|x_{k}-x_{k+1}|+L|x_{k}-x^*| xkx=xkxk+1+xk+1x=xkxk+1+ϕ(xk)ϕ(x)=xkxk+1+ϕ(ξ)(xkx)xkxk+1+Lxkx,从而有 ∣ x k − x ∗ ∣ ≤ ∣ x k − x k + 1 ∣ + L ∣ x k − x ∗ ∣ |x_{k}-x^*|\leq|x_{k}-x_{k+1}|+L|x_{k}-x^*| xkxxkxk+1+Lxkx,推出 ∣ x k − x ∗ ∣ ≤ L 1 − L ∣ x k − x k − 1 ∣ \left|\boldsymbol{x}_k-\boldsymbol{x} *\right| \leq \frac{L}{1-L}\left|\boldsymbol{x}_k-\boldsymbol{x}_{k-1}\right| xkx1LLxkxk1
(2.2) 第二个等式:由第一个等式递推即可

  1. 特点:L越小收敛越快,但是能满足这种条件的不动点函数实在是太困难了,但是如果将这个不动点收缩到一个邻域范围内,这样初值 x 0 x_{0} x0只需要取到领域范围内的值即可收敛
    • 局部收敛:这种在解的某个小领域内收敛的性质
    • 全局收敛:没有这种要求,或者可以清楚地给出这个邻域区间范围的表达即为全局收敛
    • 做法:先用二分法缩小根范围,再用局部收敛法定解

7.3.3 一道例题

  1. 提问:将 x = t a n x x=tanx x=tanx化为合适的迭代格式,并求解x=4.5附近的根
  2. 回答:

由不动点迭代收敛定理:
① 确定根的范围: f ( x ) = x − t a n ( x ) → f ′ ( x ) = − t a n 2 ( x ) < 0 f(x)=x-tan(x) \rightarrow f'(x)=-tan^2(x)<0 f(x)=xtan(x)f(x)=tan2(x)<0,由零点定理,根范围在[4.4,4.5]
② 判断tanx的导数是否小于1,显然 ∣ f ′ ( x ) = − t a n 2 ( x ) ∣ > > 1 |f'(x)=-tan^2(x)|>>1 f(x)=tan2(x)>>1,因此,将原函数转换为 a r c t a n ( x ) + π = x arctan(x)+\pi=x arctan(x)+π=x
通过以下matlab代码求解:

clc,clear all
x1=4.5;
x2=g(x1);
while abs(x2-x1)>eps
    x1=x2;
    x2=g(x1);
end
x2

function y=g(x)
y=atan(x)+pi;
end

7.4 迭代加速

  1. 收敛阶:
    记序列 x k k = 0 ∞ {x_{k}}^\infty _{k=0} xkk=0收敛于 x ∗ x^* x,记迭代误差 e k = x ∗ − x k e_k=x^*-x_k ek=xxk,若:
    lim ⁡ k → ∞ ∣ e k + 1 ∣ ∣ e k ∣ p = C \lim _{k \rightarrow \infty} \frac{\left|e_{k+1}\right|}{\left|e_k\right|^p}=C klimekpek+1=C
    称为p阶收敛

p=1: 线性收敛;p=2:平方收敛
阶数越高,收敛越快
e k + 1 = c i e k , e k = 0.1 → p 1 = c 1 0.1 > > p 2 = c 2 0.01 e_{k+1}=c_i e_{k}, e_{k}=0.1\rightarrow p1=c_1 0.1>>p2=c_{2} 0.01 ek+1=ciek,ek=0.1p1=c10.1>>p2=c20.01

  1. 收敛速度定理
    x ∗ x * x 是方程 x = φ ( x ) x=\varphi(x) x=φ(x) 的根, φ ( x ) \varphi(x) φ(x) x ∗ x^* x 邻近有连续的二阶导数,且 φ ′ ( x ∗ ) ≤ 1 \varphi^{\prime}\left(x^*\right) \leq 1 φ(x)1
    (1) 当 φ ′ ( x ∗ ) ≠ 0 \varphi^{\prime}\left(x^*\right) \neq 0 φ(x)=0 时, 迭代格式 x k + 1 = φ ( x k ) x_{k+1}=\varphi\left(x_k\right) xk+1=φ(xk) 线性收敛到 x ∗ x^* x;
    (2) 当 φ ′ ( x ∗ ) = 0 , φ ′ ′ ( x ∗ ) ≠ 0 \varphi^{\prime}\left(x^*\right)=0, \varphi^{\prime \prime}\left(x^*\right)\neq 0 φ(x)=0,φ′′(x)=0 时, 迭代格式 x k + 1 = φ ( x k ) x_{k+1}=\varphi\left(x_k\right) xk+1=φ(xk) 平方收敛到 x ∗ x^* x;
  2. 证明:

(1) 微分中值定理
∣ e k + 1 ∣ ∣ e k ∣ = ∣ x k + 1 − x ∗ ∣ ∣ x k − x ∗ ∣ = l i m k → 0 ∣ ϕ ( ξ ) ′ ∣ ∣ x k − x ∗ ∣ ∣ x k − x ∗ ∣ = ϕ ( ξ ) ′ ≠ 0 \frac{\left|e_{k+1}\right|}{\left|e_k\right|}=\frac{\left|x_{k+1}-x^*\right|}{\left|x_k-x^*\right|}=lim_{k\rightarrow0}\frac{|\phi(\xi)'||x_{k}-x^*|}{|x_{k}-x^*|}=\phi(\xi)'\neq 0 ekek+1=xkxxk+1x=limk0xkxϕ(ξ)∣∣xkx=ϕ(ξ)=0
(2) 泰勒二阶展开
∣ e k + 1 ∣ ∣ e k ∣ 2 = ∣ x k + 1 − x ∗ ∣ ∣ x k − x ∗ ∣ 2 = ∣ ( φ ( x ∗ ) + φ ′ ( x ∗ ) ( x k − x ∗ ) + φ ′ ( ε ) 2 ! ( x k − x ∗ ) 2 ∣ ∣ x k − x ∗ ∣ 2 \frac{\left|e_{k+1}\right|}{\left|e_k\right|^2}=\frac{\left|x_{k+1}-x^*\right|}{\left|x_k-x^*\right|^2}=\frac{|\left (\varphi\left(x^*\right)+\varphi^{\prime}\left(x^{*}\right)\left(x_k-x^*\right)+\frac{\varphi^{\prime}(\varepsilon)}{2 !}\left(x_k-x^*\right)^2 |\right.}{\left|x_k-x^*\right|^2} ek2ek+1=xkx2xk+1x=xkx2(φ(x)+φ(x)(xkx)+2!φ(ε)(xkx)2

7.5 牛顿迭代

7.5.1 基本概念

  1. 推导:由泰勒二阶展开公式:
    f ( x ) = f ( x k ) + f ′ ( x k ) ( x − x k ) + f ′ ( x k ) 2 ! ( x − x k ) 2 + ⋯ f(x)=f\left(x_k\right)+f^{\prime}\left(x_k\right)\left(x-x_k\right)+\frac{f^{\prime}\left(x_k\right)}{2 !}\left(x-x_k\right)^2+\cdots f(x)=f(xk)+f(xk)(xxk)+2!f(xk)(xxk)2+
    ↓ f ( x ) = 0 ↓ f ( x k ) + f ′ ( x k ) ( x − x k ) = 0 ↓ ↓ x k + 1 = x k − f ( x k ) f ′ ( x k ) \downarrow\\ f(x)=0\\ \downarrow\\ f\left(x_k\right)+f^{\prime}\left(x_k\right)\left(x-x_k\right)=0\\ \downarrow\\ \downarrow\\ x_{k+1}=x_k - \frac{f\left(x_k\right)}{f^{\prime}\left(x_k\right)} f(x)=0f(xk)+f(xk)(xxk)=0xk+1=xkf(xk)f(xk)
  2. 例题:求解 f ( x ) = 3 ∗ x 3 − 8 ∗ x 2 − 8 ∗ x − 11 f(x)=3*x^3-8*x^2-8*x-11 f(x)=3x38x28x11的某个近似根

由高中知识,判断该方程仅有一个解,解的范围在[3,4]
代码如下:

clc,clear all
x1=3.5;
x2=g(x1);
while abs(x2-x1)>eps
    x1=x2;
    x2=g(x1);
end
x2

function y=g(x)
y=x-(3*(x^3)-8*(x^2)-8*x-11)./(9*(x^2)-16*x-8);
end
  1. 特点
    • 至少平方收敛
    • 局部收敛

7.5.3 牛顿下山法

  1. 特点:在 f ( x k ) f ′ ( x k ) \frac{f\left(x_k\right)}{f^{\prime}\left(x_k\right)} f(xk)f(xk)之前增加一个校正因子 λ \lambda λ,使每次牛顿迭代的f(x)单调递减
  2. 基本步骤:
    • 预估
    • 校正
  3. 算法:
    (1) 给定初值 x 0 x_{0} x0
    (2) 若 ∣ f ( x k ) ∣ ≤ ε |f(x_k)| \leq \varepsilon f(xk)ε,则停止迭代
    (3) 计算 d k = f ( x k ) f ′ ( x k ) d_k=\frac{f\left(x_k\right)}{f^{\prime}\left(x_k\right)} dk=f(xk)f(xk),并取 λ = 1 \lambda =1 λ=1
    (4) 若 ∣ f ( x k + λ d k ∣ < ∣ f ( x k ) ∣ |f(x_k+\lambda d_k|<|f(x_k)| f(xk+λdk<f(xk),则 x k + 1 = x k + λ d k x_{k+1}=x_k+\lambda d_k xk+1=xk+λdk,转(5);否则, λ = 1 2 λ \lambda=\frac{1}{2} \lambda λ=21λ,当 λ < ε \lambda<\varepsilon λ<ε,停止迭代,下山失败。
    (5) k=k+1,转(2)
function [x,it]=newtonfg(x0,f,g,maxit,tol)
x1=x0;
d=-feval(f,x0)./feval(g,x0);
x2=x1+d;
it=0;
while abs(x1-x2)>=tol
    it=it+1;
    if it>=maxit
        break;
    end
    x1=x2;d=-feval(f,x1)./feval(g,x1);fx=feval(f,x1);
    isdone=0;lambda=1;
    while isdone==0
    xn=x1+lambda*d;
    fn=feval(f,xn);
    if abs(fn)<=abs(fx)
        isdone=1;
    else
        lambda=0.5*lambda;
        if lambda<=tol
            disp("misson fail");
            break;
        end
    end
    x2=xn;
    end
end
x=x2;

7.5.4 割线法

  1. 本质:用两点割线计算 f ′ ( x k ) = f ( x k ) − f ( x k − 1 ) x k − x k − 1 f'(x_k)=\frac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}} f(xk)=xkxk1f(xk)f(xk1)
  2. 特点:
    • 不算导数,但是初始值要两个
    • 收敛阶级:1.618(不证明)<牛顿下山法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数值分析复习笔记-第七章-非线性方程求根 的相关文章

  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • matlab中更快的插值方法

    我正在使用 interp1 来插值一些数据 temp 4 30 4 rand 365 10 depth 1 10 dz 0 5 define new depth interval bthD min depth dz max depth ne
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open

随机推荐

  • call、apply、bind的区别

    为什么要改变this的指向 var name codereasy let obj name 张三 say function console log this name obj say setTimeout obj say 10 正常情况下
  • linux I/O优化 磁盘读写参数设置

    转载 http wlservers blog 163 com blog static 120622304201241715945256 关于页面缓存的信息 可以用 cat proc meminfo 看到 其中的Cached 指用于pagec
  • Java Maven安装及环境配置教程

    一 安装 1 安装包 apache maven 3 6 3 安装包下载地址 2 下载安装包然后直接解压就行 注意 文件的位置路径不能有中文 二 环境配置 1 用户变量 双击Path 点击新建 将如下复制进去 然后点击确定 MAVEN HOM
  • opencv实战项目 手势识别-手部距离测量

    手势识别系列文章目录 手势识别是一种人机交互技术 通过识别人的手势动作 从而实现对计算机 智能手机 智能电视等设备的操作和控制 1 opencv实现手部追踪 定位手部关键点 2 opencv实战项目 实现手势跟踪并返回位置信息 封装调用 3
  • Spark数据分析之pyspark

    一 大数据简史 从hadoop到Spark 1 hadoop的出现 1 问题 1990年 电商爆发以及机器产生了大量数据 单一的系统无法承担 2 办法 为了解决 1 的问题许多公司 尤其是大公司领导了普通硬件集群的水平扩展 3 执行 had
  • HashCode方法的调用对Java锁的影响

    在回顾以前写的锁升级的代码时 意外发现hashCode方法的调用会对锁产生影响 于是做了几个测试并查阅了一些资料 把最终的结果记录于此 结论 首先上结论 一个对象在调用原生hashCode方法后 来自Object的 未被重写过的 该对象将无
  • qt可停靠控件和工具栏(Dock Widgets and Toolbars)

    可停靠控件能够停靠在QMainWindow中或者作为一个独立窗口浮动 QMainWindow提供了四个可停靠控件的地方 上方 下方 左方 右方 Microsoft Visual Stadio程序和Qt Linguist程序使用大量的可停靠窗
  • python 函数中的省略号

    1 省略号在python里也是个对象 2 赋值号后面省略号 给该变量赋值一个default值 具体python的机制我不清楚 应该是在类里面定义好的 或者参数省略 3 冒号后面省略号 表示函数的定义内容不写了 函数的定义内容不写了 相当于p
  • PTA6(python)

    python程序设计06 面向对象 7 1 求两点之间距离 7 2 类的定义和使用 7 3 优异生查询 类和对象 7 4 新型计算器 7 5 学生类的使用 7 6 三维向量运算 7 7 继承类应用 7 8 有关队列操作 7 9 有关堆栈操作
  • python调用everything批量查找表格中的文件名在磁盘中是否存在

    python调用everything批量查找表格中的文件名在磁盘中是否存在 介绍 Everything 配置 使用openpyxl读写文件 读文件 写文件 BeautifulSoup的使用 创建 beautifulsoup 对象 soup
  • 基础实验篇

    uORB是PX4 Pixhawk系统中非常重要且关键的模块之一 是用于无人机模块间通信的协议机制 本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验流程 三 基础实验篇 uORB消息读写与自定义实验 三 01 基于RflySim平
  • 代码随想录一刷-Day01

    代码随想录一刷 Day01 LeetCode704 二分查找 这道属于是入门必刷了 但是虽然能做出来 在细节上还是不够注意 public int search int nums int target if nums null nums le
  • @excel注解_EasyPOI 详细教程以及注解的使用

    因为项目的原因需要用到POI来操作Excel 文档 以前都是直接使用POI来操作的 但是最近听到easypoi的存在 所以自己简单的尝试了下 别说 他还真的挺好用的 Easypoi介绍 Easypoi 为谁而开发 不太熟悉poi的 不想写太
  • LocalDate的用法与String互转

    一 LocalDate常用用法 1 1 申明定义 LocalDate formatDate LocalDate of 2020 2 5 自定义 LocalDate today LocalDate now 获取当前日期 1 2 getX 获取
  • WebRTC实时音视频技术的整体架构介绍

    WebRTC 简介 WebRTC 名称源自网页实时通信 Web Real Time Communication 的缩写 是一个支持网页浏览器进行实时语音通话或视频聊天的技术 是谷歌2010年以6820万美元收购Global IP Solut
  • Echarts 无数据时显示“暂无数据”

    当我们的图表遇到接口数据为空或者筛选之后无数据的情况 会显示成这样 就比较丑 所以需要更换成指定的某些文字做提示 通过配置title 曲线救国 title show true text 暂无数据 left center top center
  • JAVA小练习149——需求: 一家三口都要工作, 儿子工作负责绘画, 妈妈可以在儿子的工作上进行增强---上涂料, 爸爸的工作就是在妈妈的基础上增强---上画框

    interface Work public void work class Son implements Work Override public void work System out println 在画画 class Mother
  • python实践:让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序

    给定一个任意长度数组 实现一个函数 让所有奇数都在偶数前面 而且奇数升序排列 偶数降序排序 如字符串 1982376455 变成 1355798642 class Solution def SortNum self num list par
  • js查找数组重复元素

    方法一 利用sort方法 先使用sort方法将数组排序 再来判断找出重复元素 function res arr var temp arr sort sort function a b if a b temp indexOf a 1 temp
  • 数值分析复习笔记-第七章-非线性方程求根

    Chapter7 非线性方程求根 7 1 前言 本质 对一些n次代数多项式or超越方程 它们的根是难以通过解析方法求得 因此需采取数值方法 主要有 二分法 不动点迭代法 迭代加速 牛顿迭代法 牛顿法 割线法 7 2 二分法 数学基础 零点定