当前位置: 首页 > news >正文

数值分析—非线性方程的数值解

研究背景

形如 x − t a n x = 0 x-tanx=0 xtanx=0 x l n x + e − x 2 + s i n x = 0 xlnx+e^{-x^2}+sinx=0 xlnx+ex2+sinx=0等称为非线性方程,自变量之间并非简单的线性关系,这种问题我们无法通过其结构求解,需要其他的逼近方式,本章将基于该问题介绍两种方法——二分法,迭代法。

二分法

预备知识

零点定理
f ( x ) ∈ [ a , b ] f(x)\in[a,b] f(x)[a,b] f ( a ) f ( b ) < 0 f(a)f(b)<0 f(a)f(b)<0,则 f ( x ) f(x) f(x) ( a , b ) (a,b) (a,b)内至少有一个零点,若 f ( x ) f(x) f(x)为单调函数,则 f ( x ) f(x) f(x)有唯一零点。

重根判别方法
f ( x ) f(x) f(x) x x x有n阶导数,则 x x x f ( x ) = 0 f(x)=0 f(x)=0的m重根的充要条件为:
f ( x ) = f ′ ( x ) = f m − 1 ( x ) = 0 且 f m ( x ) ! = 0 f(x)=f'(x)=f^{m-1}(x)=0且f^m(x)!=0 f(x)=f(x)=fm1(x)=0fm(x)!=0

求实根的二分法

基本思想为:
将有根区间一分为二,等分为两个区间,判断根再哪一个更小的区间,舍去无根的小区间,再把有根的小区间等分,如此重复,直到找到满足精度的近似根。

算法流程:
取终点 x 0 = a + b 2 x_0=\frac{a+b}{2} x0=2a+b,若 f ( x 0 ) = 0 , x 0 f(x_0)=0,x_0 f(x0)=0,x0为所求,否则计算 f ( a ) f ( x 0 ) f(a)f(x_0) f(a)f(x0)的符号, > 0 >0 >0取区间 [ x 0 , b ] [x_0,b] [x0,b] < 0 <0 <0 [ a , x 0 ] [a,x_0] [a,x0],重复上述过程,无穷多次后即为精确解 lim ⁡ k → ∞ x k = x \lim_{k \to \infty}x_k=x limkxk=x,但计算中不可能迭代无穷多次,也不可能得知精确解,故一般采用前后两次迭代逼近的程度来衡量, ∣ x k − x k − 1 ∣ ≤ b k − a k 2 = b − a 2 k + 1 |x_k-x_{k-1}|\le\frac{b_k-a_k}{2}=\frac{b-a}{2^{k+1}} xkxk12bkak=2k+1ba,取精度 b − a 2 k + 1 < ε \frac{b-a}{2^{k+1}}<\varepsilon 2k+1ba<ε,迭代步数为 k > l n ( b − a ) − l n 2 ε l n 2 k>\frac{ln(b-a)-ln2\varepsilon}{ln2} k>ln2ln(ba)ln2ε

例题:二分法求 f ( x ) = x 2 − x − 1 = 0 f(x)=x^2-x-1=0 f(x)=x2x1=0的正根,要求误差不超过0.05。
解:
f ( x ) = x 2 − x − 1 , f ( 1 ) = − 1 < 0 , f ( 2 ) = 1 > 0 f(x)=x^2-x-1,f(1)=-1<0,f(2)=1>0 f(x)=x2x1,f(1)=1<0,f(2)=1>0,故有根区间为 [ − 1 , 2 ] [-1,2] [1,2],该函数在区间内单调, k > − l n 0.1 l n 2 = 10 l n 2 = 3.3 k>\frac{-ln0.1}{ln2}=\frac{10}{ln2}=3.3 k>ln2ln0.1=ln210=3.3,取步长k=4,求其根表示为:

k a k a_k ak b k b_k bk x k x_k xkf(x)符号
0121.5-
11.521.75+
21.51.751.625+
31.51.6251.5625-
41.56251.6251.59375

答:根为1.59375。

该方法实现简单,普及性高,对方程只要求其连续即可,但收敛速度缓慢,下面介绍一种加速收敛的方法—迭代法。

迭代法

基本思想

f ( x ) = 0 < = > x = g ( x ) f(x)=0<=>x=g(x) f(x)=0<=>x=g(x) g ( x ) g(x) g(x)为迭代函数, x k + 1 = g ( x k ) x_{k+1}=g(x_k) xk+1=g(xk),给定 x 0 x_0 x0可计算 x 1 . . . . x n x_1....x_n x1....xn,若该数列收敛,则称迭代法 x k + 1 = g ( x k ) x_{k+1}=g(x_k) xk+1=g(xk)收敛,否则发散。

x ∗ x^* x满足 x ∗ = g ( x ∗ ) x^*=g(x^*) x=g(x)则称 x ∗ x^* x g ( x ) g(x) g(x)的不动点。
lim ⁡ k → ∞ x k = x ∗ , g ( x ) \lim_{k \to \infty}x_k=x^*,g(x) limkxk=xg(x)连续, x ∗ = lim ⁡ k → ∞ x k + 1 = lim ⁡ k → ∞ g ( x k ) = g ( lim ⁡ k → ∞ x k ) = g ( x ∗ ) x^*=\lim_{k \to \infty}x_{k+1}=\lim_{k \to \infty}g(x_k)=g(\lim_{k \to \infty}x_k)=g(x^*) x=limkxk+1=limkg(xk)=g(limkxk)=g(x)

该过程重点在于:
1,如果构造 g ( x ) g(x) g(x)
2, g ( x ) g(x) g(x)满足何种条件能保证数列 x n {x_n} xn收敛
3,收敛速度如何衡量

该方法的几何意义为以直代曲,用切线零点代替曲线零点,不断逼近坐标轴的过程。

迭代格式的适定性与收敛性

定义:如果 x 0 ∈ [ a , b ] x_0\in[a,b] x0[a,b],若按 x k + 1 = g ( x k ) x_{k+1}=g(x_k) xk+1=g(xk)生成的序列 x k ∈ [ a , b ] {x_k}\in[a,b] xk[a,b],则称迭代格式是适定的,适定性是迭代格式能够继续下去的重要条件。

例如:求 x e x − 1 = 0 xe^{x}-1=0 xex1=0 x = 0.5 x=0.5 x=0.5附近的根。
解: x = e − x x=e^{-x} x=ex,构造迭代格式 x k + 1 = e − x k , x 0 = 0.5 x_{k+1}=e^{-x_k},x_0=0.5 xk+1=exk,x0=0.5,可继续迭代
e x = 1 x , x = − l n x e^x=\frac{1}{x},x=-lnx ex=x1,x=lnx,构造 x k + 1 = − l n x k , x 0 = 0.5 , x 4 < 0 x_{k+1}=-lnx_k,x_0=0.5,x_4<0 xk+1=lnxk,x0=0.5,x4<0时终止

定理一:设 g ( x ) ∈ [ a , b ] g(x)\in[a,b] g(x)[a,b],且满足如下条件:
1,任意 x ∈ [ a , b ] x\in[a,b] x[a,b],总有 g ( x ) ∈ [ a , b ] g(x)\in[a,b] g(x)[a,b]
2,存在 L ∈ [ 0 , 1 ] , 使 ∣ g ( x ) − g ( y ) ∣ ≤ L ∣ x − y ∣ , x , y 为 [ a , b ] 内的任意数 L\in[0,1],使|g(x)-g(y)|\le L|x-y|,x,y为[a,b]内的任意数 L[0,1],使g(x)g(y)Lxyxy[a,b]内的任意数
g ( x ) g(x) g(x) [ a , b ] [a,b] [a,b]上存在唯一不动点 x ∗ x^* x对任意 x ∈ [ a , b ] x\in[a,b] x[a,b]迭代法适定且收敛,但该条件很不好证明,故多采用定义二

定理二:若 g ( x ) ∈ [ a , b ] g(x)\in[a,b] g(x)[a,b]且满足如下条件:
1,任意 x ∈ [ a , b ] ,有 g ( x ) ≤ [ a , b ] x\in[a,b],有g(x)\le[a,b] x[a,b],有g(x)[a,b]
2,存在 0 ≤ L ≤ 1 ,使对任意 x ∈ [ a , b ] 有 ∣ g ′ ( x ) ∣ ≤ L 0\le L\le1,使对任意x\in[a,b]有|g'(x)|\le L 0L1,使对任意x[a,b]g(x)L,该定理用导数代替了验证过程。
x k + 1 = g ( x k ) ≤ L k 1 − L ∣ x − x 0 ∣ x_{k+1}=g(x_k)\le\frac{L^k}{1-L}|x-x_0| xk+1=g(xk)1LLkxx0

注:
1,不等式为停机标准, ∣ x k + 1 − x k ∣ < ε |x_{k+1}-x_k|<\varepsilon xk+1xk<ε时, ∣ x ∗ − x k ∣ ≤ ε 1 − L |x^*-x^k|\le\frac{\varepsilon}{1-L} xxk1Lε
2,先验估计,用于估计达到 ε \varepsilon ε精度所需迭代的步数为
L k 1 − L ∣ x 1 − x 0 ∣ < ε \frac{L^k}{1-L}|x_1-x_0|<\varepsilon 1LLkx1x0<ε,从而 k > l n ( − ( 1 − L ) ε ( x 1 − x 0 ) ) l n L k>\frac{ln(\frac{-(1-L)\varepsilon }{(x_1-x_0)})}{lnL} k>lnLln((x1x0)(1L)ε)
3,L越小收敛速度越快。

局部收敛性与收敛阶

定义 x ∗ 为 g ( x ) x^*为g(x) xg(x)的不动点,对 δ > 0 , 称 N ( x ∗ , δ ) = [ x ∗ − δ , x ∗ + δ ] \delta>0,称N(x^*,\delta)=[x^*-\delta,x^*+\delta] δ>0,N(x,δ)=[xδ,x+δ] x ∗ x^* x的一个邻域,若存在一个邻域使对任意 x ∈ N ( x ∗ , δ ) x\in N(x^*,\delta) xN(x,δ) x k + 1 = g ( x k ) x_{k+1}=g(x_k) xk+1=g(xk)生成的 x k ∈ N ( x ∗ , δ ) {x_k}\in N(x^*,\delta) xkN(x,δ) lim ⁡ x → ∞ x k = x ∗ \lim_{x \to \infty}x_k=x^* limxxk=x,则称迭代格式具有迭代收敛性。
即在邻域内无穷次迭代后能获得精确解。

定理一:设 g ( x ) 在 x = g ( x ) g(x)在x=g(x) g(x)x=g(x)的根 x ∗ x^* x邻域内有连续的一阶导数,且 ∣ g ′ ( x ∗ ) ∣ < 1 |g'(x^*)|<1 g(x)<1,迭代法具有局部收敛性。
注:实际使用时往往用 ∣ g ′ ( x 0 ) ∣ < 1 |g'(x_0)|<1 g(x0)<1代替

n阶导数<1收敛,则收敛阶为n。

例题:迭代函数 g ( x ) = x + c ( x 2 − 3 ) g(x)=x+c(x^2-3) g(x)=x+c(x23),讨论1,写出迭代格式,产生 k {k} k收敛于 3 \sqrt{3} 3 ,问c应为何值?2,c为何值时收敛速度最快?
解:1,迭代格式 x k + 1 = g ( x k ) = x k + c ( x k 2 − 3 ) , g ′ ( x ) = 1 + 2 c x , ∣ g ′ ( 3 ) ∣ = ∣ 1 + 2 3 c ∣ < 1 = > − 3 2 < c < 0 x_{k+1}=g(x_k)=x_k+c(x_k^2-3),g'(x)=1+2cx,|g'(\sqrt{3})|=|1+2\sqrt{3}c|<1=>-\frac{\sqrt{3}}{2}<c<0 xk+1=g(xk)=xk+c(xk23)g(x)=1+2cxg(3 )=∣1+23 c<1=>23 <c<0
2, g ′ ( 3 ) = 0 , 1 + 2 3 c = 0 , c = − 3 6 g'(\sqrt{3})=0,1+2\sqrt{3}c=0,c=-\frac{\sqrt{3}}{6} g(3 )=0,1+23 c=0,c=63 收敛最快

Newton迭代法

基本思想:满足一般理论的特殊迭代法, f ( x ) = 0 f(x)=0 f(x)=0先假设 x k x_k xk f ( x ) = 0 f(x)=0 f(x)=0的近似根, f ′ ( x k ) ! = 0 f'(x_k)!=0 f(xk)!=0,将 f ( x ) f(x) f(x) x k x_k xk处作Taylor展开, f ( x ) ≈ f ( x k ) + f ′ ( x k ) ( x − x k ) + f ′ ′ ( ξ ) 2 ! ( x − x k ) 2 f(x)\approx f(x_k)+f'(x_k)(x-x_k)+\frac{f''(\xi)}{2!}(x-x_k)^2 f(x)f(xk)+f(xk)(xxk)+2!f′′(ξ)(xxk)2,舍去余项后 f ( x ) ≈ f ( x k ) + f ′ ( x k ) ( x − x k ) f(x)\approx f(x_k)+f'(x_k)(x-x_k) f(x)f(xk)+f(xk)(xxk) f ( x k ) + f ′ ( x k ) ( x − x k ) = 0 f(x_k)+f'(x_k)(x-x_k)=0 f(xk)+f(xk)(xxk)=0,故 x = x k − f ( x k ) f ′ ( x k ) x=x_k-\frac{f(x_k)}{f'(x_k)} x=xkf(xk)f(xk),不动点带入获得迭代函数 g ( x ) = x − f ( x ) f ′ ( x ) g(x)=x-\frac{f(x)}{f'(x)} g(x)=xf(x)f(x)

该方法的几何意义是以直代曲,沿曲线方向不断作切线,和x轴的交点作为下一次切线起点,形成一个不断逼近 x ∗ x^* x的数列。

例题:Newton迭代法求 f ( x ) = x 3 + 2 x − 6 f(x)=x^3+2x-6 f(x)=x3+2x6在1.5附近的根。
解: f ′ ( x ) = 3 x 2 + 2 f'(x)=3x^2+2 f(x)=3x2+2,Newton迭代公式 x k + 1 = x k − x k 3 + 2 x k − 6 3 x k 2 + 2 x_{k+1}=x_k-\frac{x_k^3+2x_k-6}{3x_k^2+2} xk+1=xk3xk2+2xk3+2xk6,取 x 0 = 1.5 x_0=1.5 x0=1.5迭代运算, x 1 = 1.4571429 , x 2 = 1.4561647 x_1=1.4571429,x_2=1.4561647 x1=1.4571429x2=1.4561647
可以看到Newton迭代法的收敛速度还是比较快的。

Newton迭代法的收敛性与收敛阶

局部收敛性定理
x ∗ x^* x f ( x ) = 0 f(x)=0 f(x)=0的单根,即 f ( x ∗ ) = 0 , f ′ ( x ∗ ) ! = 0 f(x^*)=0,f'(x^*)!=0 f(x)=0,f(x)!=0,则Newton迭代格式 x k + 1 = x k − f ( x k ) f ′ ( x k ) x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)} xk+1=xkf(xk)f(xk)至少二阶收敛。

非局部收敛性定理
f ( x ) ∈ c 2 [ a , b ] f(x)\in c^2[a,b] f(x)c2[a,b]且满足如下条件:
1, f ( a ) f ( b ) < 0 f(a)f(b)<0 f(a)f(b)<0
2, f ′ ( x ) ! = 0 , 任意 x ∈ [ a , b ] f'(x)!=0,任意x\in [a,b] f(x)!=0,任意x[a,b]
3, x ∈ [ a , b ] 时,有 f ′ ( x ) 不变号 x\in[a,b]时,有f'(x)不变号 x[a,b]时,有f(x)不变号
4, 任意 x 0 ∈ [ a , b ] , 使 f ( x 0 ) f ′ ′ ( x 0 ) > 0 任意x_0\in[a,b],使f(x_0)f''(x_0)>0 任意x0[a,b],使f(x0)f′′(x0)>0
则由Newton迭代格式确定的 x k {x_k} xk收敛于 f ( x ) = 0 f(x)=0 f(x)=0 [ a , b ] [a,b] [a,b]有唯一根 x ∗ x^* x

简化后的Newton法:
该迭代法主要的计算量来自导数,故简化后采用 x k + 1 = x − f ( x ) C x_{k+1}=x-\frac{f(x)}{C} xk+1=xCf(x)用常数C代替之, C = f ′ ( x 0 ) C=f'(x_0) C=f(x0),该方法使用固定点的导数作为常数来代替后续导数计算,固然简化了计算,但收敛速度也随之下降。

求重根的Newton法

x ∗ x^* x f ( x ) = 0 f(x)=0 f(x)=0的重根, f ( x ∗ ) = f ′ ( x ∗ ) = . . . = f n + 1 ( x ∗ ) = 0 f(x^*)=f'(x^*)=...=f^{n+1}(x^*)=0 f(x)=f(x)=...=fn+1(x)=0 f n ( x ∗ ) ! = 0 f^n(x^*)!=0 fn(x)!=0 f ( x ) = ( x − x ∗ ) A ( x ) f(x)=(x-x^*)A(x) f(x)=(xx)A(x),显然 A ( x ∗ ) ! = 0 A(x^*)!=0 A(x)!=0

Newton迭代法 x k + 1 = x k − f ( x k ) f ′ ( x k ) , g ( x ) = x − f ( x ) f ′ ( x ) , g ′ ( x ∗ ) < 1 x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)},g(x)=x-\frac{f(x)}{f'(x)},g'(x^*)<1 xk+1=xkf(xk)f(xk)g(x)=xf(x)f(x)g(x)<1收敛, g ′ ( x ) = f ( x ) f ′ ′ ( x ) [ f ′ ( x ) ] 2 g'(x)=\frac{f(x)f''(x)}{[f'(x)]^2} g(x)=[f(x)]2f(x)f′′(x),故 g ′ ( x ∗ ) = f ( x ∗ ) f ′ ′ ( x ∗ ) [ f ′ ( x ∗ ) ] 2 = lim ⁡ x → x ∗ g ( x ) − g ( x ∗ ) x − x ∗ g'(x^*)=\frac{f(x^*)f''(x^*)}{[f'(x^*)]^2}=\lim_{x\to x^* \frac{g(x)-g(x^*)}{x-x^*}} g(x)=[f(x)]2f(x)f′′(x)=limxxxxg(x)g(x),最后很复杂,一同操作后得证 g ′ ( x ∗ ) = 1 − 1 m g'(x^*)=1-\frac{1}{m} g(x)=1m1

例题 x 3 − 3 x 2 + 4 = 0 x^3-3x^2+4=0 x33x2+4=0,试用Newton迭代法求 x ∗ = 2 x^*=2 x=2,并证明收敛性,求收敛阶。
解: f ( x ) = x 3 − 3 x 2 + 4 , f ′ ( x ) = 3 x 2 − 6 x , x k + 1 = x k − f ( x k ) f ′ ( x k ) = x k − x k 3 − 3 x k 2 + 4 3 x k 2 − 6 x k f(x)=x^3-3x^2+4,f'(x)=3x^2-6x,x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)}=x_k-\frac{x_k^3-3x_k^2+4}{3x_k^2-6x_k} f(x)=x33x2+4f(x)=3x26xxk+1=xkf(xk)f(xk)=xk3xk26xkxk33xk2+4,则 g ( x ) = x − x 3 − 3 x 2 + 4 3 x 2 − 6 x g(x)=x-\frac{x^3-3x^2+4}{3x^2-6x} g(x)=x3x26xx33x2+4,若 ∣ g ′ ( 2 ) ∣ < 1 |g'(2)|<1 g(2)<1收敛, x ∗ = 2 x^*=2 x=2 f ( x ) f(x) f(x)的二重根,根据 1 − 1 m = > ∣ g ′ ( 2 ) ∣ = 1 2 < 1 1-\frac{1}{m}=>|g'(2)|=\frac{1}{2}<1 1m1=>g(2)=21<1故收敛且线性收敛。

Newton法改进

1, f ( x ) = 0 f(x)=0 f(x)=0的重根 x ∗ x^* x的重数m已知,则可得到 x k + 1 = x k − m f ( x k ) f ′ ( x k ) , g ( x ) = x − m f ( x ) f ′ ( x ) , g ′ ( x ∗ ) = 1 − m 1 m = 0 x_{k+1}=x_k-m\frac{f(x_k)}{f'(x_k)},g(x)=x-m\frac{f(x)}{f'(x)},g'(x^*)=1-m\frac{1}{m}=0 xk+1=xkmf(xk)f(xk)g(x)=xmf(x)f(x)g(x)=1mm1=0,故至少平方收敛。

2, f ( x ) = 0 f(x)=0 f(x)=0的重根 x ∗ x^* x的重数m未知,令 u ( x ) = f ( x ) f ′ ( x ) u(x)=\frac{f(x)}{f'(x)} u(x)=f(x)f(x),若 x ∗ x^* x f ( x ) f(x) f(x)的m重根, x ∗ x^* x f ′ ( x ) f'(x) f(x)的m-1重根, x ∗ x^* x必为 u ( x ) u(x) u(x)的单根,只需构造 u ( x ) = 0 u(x)=0 u(x)=0的单根Newton法, x k + 1 = x k − u ( x k ) u ′ ( x k ) , u ′ ( x ) = [ f ′ ( x ) ] 2 − f ( x ) f ′ ( x ) [ f ′ ( x ) ] 2 , x k + 1 = x k − f ( x k ) f ′ ( x k ) [ f ′ ( x k ) ] 2 − f ( x k ) f ′ ′ ( x k ) x_{k+1}=x_k-\frac{u(x_k)}{u'(x_k)},u'(x)=\frac{[f'(x)]^2-f(x)f'(x)}{[f'(x)]^2},x_{k+1}=x_k-\frac{f(x_k)f'(x_k)}{[f'(x_k)]^2-f(x_k)f''(x_k)} xk+1=xku(xk)u(xk),u(x)=[f(x)]2[f(x)]2f(x)f(x),xk+1=xk[f(xk)]2f(xk)f′′(xk)f(xk)f(xk),至少平方收敛。

例题1:设 f ( x ) = x 4 − 6 x 2 + 8 x − 3 f(x)=x^4-6x^2+8x-3 f(x)=x46x2+8x3,求 x 1 = 3 , x 2 = 1 x_1=3,x_2=1 x1=3,x2=1的二阶局部收敛的Newton法。
解:首先判断单根还是重根, f ′ ( x ) = 4 x 3 − 12 x + 8 , x 1 = 3 , f ( − 3 ) = 0 , f ′ ( − 3 ) ! = 0 f'(x)=4x^3-12x+8,x_1=3,f(-3)=0,f'(-3)!=0 f(x)=4x312x+8,x1=3,f(3)=0,f(3)!=0,所以 x 1 = 3 x_1=3 x1=3为单根,用二阶收敛的呢我同法, x k + 1 = x k − x k 4 − 6 x k 2 + 8 x k − 3 4 x k 3 − 12 x k + 8 x_{k+1}=x_k-\frac{x_k^4-6x_k^2+8x_k-3}{4x_k^3-12x_k+8} xk+1=xk4xk312xk+8xk46xk2+8xk3
x 2 = 1 , f ( 1 ) = 0 , f ′ ( 1 ) = 0 , f ′ ′ ( 1 ) = 0 , f ′ ′ ′ ( 1 ) ! = 0 x_2=1,f(1)=0,f'(1)=0,f''(1)=0,f'''(1)!=0 x2=1,f(1)=0,f(1)=0,f′′(1)=0,f′′′(1)!=0,所以 x 2 = 1 x_2=1 x2=1为三重根,方法同上,二阶收敛的Newton法 x k + 1 = x k − 3 x k 4 − 6 x k 2 + 8 x k − 3 4 x k 3 − 12 x k + 8 x_{k+1}=x_k-3\frac{x_k^4-6x_k^2+8x_k-3}{4x_k^3-12x_k+8} xk+1=xk34xk312xk+8xk46xk2+8xk3

总结

本章介绍了非线性方程的数值解法,二分法实现简单,但收敛很慢,迭代法主要是Newton迭代法,用泰勒公式近似方程,着重分析其收敛性和收敛阶,该章公式很多很杂,大量篇幅在于分析性质而非单纯计算,到整理完毕整体也没消化完,还需后面补足,大致为:确定适定性,分析收敛性,写出迭代格式,计算收敛阶。

这也是数值分析的最后一章,我们依次介绍了误差分析的方法、线性方程组的数值解法函数插值的预测法数值积分的近似计算法和本章非线性方程的数值解法,这些方法我们以后未必能用得到,但通过对这些方法学习,我们如果能体会这种逼近和代替的思想也是很大的收获,现实世界的很多问题我们没法精确求解分析,构造相近的情景再解决也算是曲线救国了。

相关文章:

数值分析—非线性方程的数值解

研究背景 形如 x − t a n x 0 x-tanx0 x−tanx0、 x l n x e − x 2 s i n x 0 xlnxe^{-x^2}sinx0 xlnxe−x2sinx0等称为非线性方程&#xff0c;自变量之间并非简单的线性关系&#xff0c;这种问题我们无法通过其结构求解&#xff0c;需要其他的逼近方式&#xff0c;本章…...

LDR6500应用:C转DP线材双向投屏开启全新体验

在当今这个科技日新月异、蓬勃发展的时代&#xff0c;高清视频传输以及显示技术已经深深融入到我们日常生活与工作的方方面面&#xff0c;其重要性不言而喻。不管是在商务场合的会议演示&#xff0c;还是教育领域的娱乐享受&#xff0c;以及充满激情的游戏竞技领域&#xff0c;…...

路径规划之启发式算法之十六:和声搜索算法(Harmony Search, HS)

和声搜索算法(Harmony Search, HS)是一种新兴的启发式全局搜索算法,是一种模拟音乐家即兴演奏过程的群体智能优化算法。这种算法由Zong Woo Geem等人在2001年提出,灵感来源于音乐家在寻找和声时的创造性思维过程。HS算法通过模拟音乐家演奏音乐时的选择过程来寻找问题的最优…...

Redis - 实战之 全局 ID 生成器 RedisIdWorker

概述 定义&#xff1a;一种分布式系统下用来生成全局唯一 ID 的工具 特点 唯一性&#xff0c;满足优惠券需要唯一的 ID 标识用于核销高可用&#xff0c;随时能够生成正确的 ID高性能&#xff0c;生成 ID 的速度很快递增性&#xff0c;生成的 ID 是逐渐变大的&#xff0c;有利于…...

matlab 连接远程服务器

通过matlab 控制远程服务器 查看 matlab 中 python 接口脚本 对于 matlab 2010b 兼容的 最高 Python版本是 3.10 安装 3.10 版本的Python&#xff0c;并安装 paramiko 库 pip install paramikomatlab 中设置 Python的环境 例如 pyversion&#xff08;D:/Anaconda3/python.e…...

在服务器自主选择GPU使用

比如说&#xff0c;程序使用第 2 张显卡&#xff08;从 0 开始计数&#xff09;。它的作用是告诉系统和深度学习框架&#xff08;如 PyTorch 或 TensorFlow&#xff09;只可见某些 GPU。 export CUDA_VISIBLE_DEVICES1 然后再查看当前使用的显卡&#xff1a; echo $CUDA_VIS…...

【设计模式】享元模式(Flyweight Pattern)

享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过共享尽可能多的对象来有效支持大量细粒度的对象。这个模式主要用于减少内存使用和提高性能&#xff0c;特别是在需要创建大量相似对象的场景中。享元模式的核心思想是将对象的状态分为…...

题目 1688: 数据结构-字符串插入

第一种方式字符串 #include<iostream> #include<cstring> #include<algorithm> using namespace std; int main(){string s1,s2;int n;cin>>s1>>s2>>n;s1.insert(n-1,s2);cout<<s1<<endl;return 0; } 第二种方式字符数组 …...

28.攻防世界PHP2

进入场景 扫描目录 [04:12:32] 403 - 303B - /.ht_wsr.txt [04:12:32] 403 - 306B - /.htaccess.bak1 [04:12:32] 403 - 308B - /.htaccess.sample [04:12:…...

QML QT6 WebEngineView 、Echarts使用和数据交互

QML 中的 WebEngineView 是用于显示网页内容的组件,它基于 Qt WebEngine,支持现代网页渲染和与 JavaScript 的交互。它通常用来在 QML 应用中嵌入浏览器或加载在线资源。WebEngineView 可以展示 HTML、CSS、JavaScript 等网页内容,并提供多种属性和方法来控制其行为。 如下…...

SpringBoot 整合 Mail 轻松实现邮件自动推送

简单使用 1、pom 包配置 pom 包里面添加 spring-boot-starter-mail 包引用 <dependencies><dependency> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency> </de…...

MyBatis 核心知识与实践

一、MyBatis 概述 1. 框架简介 MyBatis 是一款支持自定义 SQL、存储过程以及高级映射的持久层框架。它避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的操作&#xff0c;使开发人员能够更专注于 SQL 语句的编写和业务逻辑的处理。 2. 核心组件 SqlSessionFactoryB…...

机器学习期末速成

文章目录 一、机器学习分类二、逻辑回归三、决策树四、集成学习算法五、支持向量机六、聚类七、特征工程和指标 文章参考自B站机器学习期末速成课 本文仅作者个人复习使用 一、机器学习分类 聚类和分类的区别&#xff1a; 分类&#xff1a;一开始就知道有哪些类别 聚类&#…...

Linux中的线程

目录 线程的概念 进程与线程的关系 线程创建 线程终止 线程等待 线程分离 原生线程库 线程局部存储 自己实现线程封装 线程的优缺点 多线程共享与独占资源 线程互斥 互斥锁 自己实现锁的封装 加锁实现互斥的原理 死锁 线程同步 线程的概念 回顾进程相关概念 …...

AI大模型学习笔记|多目标算法梳理、举例

多目标算法学习内容推荐&#xff1a; 1.通俗易懂讲算法-多目标优化-NSGA-II(附代码讲解)_哔哩哔哩_bilibili 2.多目标优化 (python pyomo pareto 最优)_哔哩哔哩_bilibili 学习笔记&#xff1a; 通过网盘分享的文件&#xff1a;多目标算法学习笔记 链接: https://pan.baidu.com…...

蓝桥杯刷题——day3

蓝桥杯刷题——day3 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 每张票据有唯一的 ID 号&#xff0c;全年所有票据的 ID 号是连续的&#xff0c;但 ID 的开始数码是随机选定的。因为工作人员疏忽&#xff0c;在录入 ID 号的时候发生了一处错误&#xff0c;造…...

企业级日志分析系统ELK之ELK概述

ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件&#xff0c;如果应用出现问题&#xff0c;开发和运维人员想排 查原因&#xff0c;就要先找到相应的主机上的日志文件再进行查找和分析&#xff0c;所以非常不方便&#xff0c;而且还涉及…...

【开源项目】经典开源项目数字孪生体育馆—开源工程及源码

飞渡科技数字孪生体育馆管理平台&#xff0c;融合物联网IOT、BIM数据模型、三维GIS等技术&#xff0c;实现体育馆的全方位监控和实时全局掌握&#xff0c;同时&#xff0c;通过集成设备设施管理、人员管理等子系统&#xff0c;减少信息孤岛&#xff0c;让场馆“可视、可控、可管…...

C++多线程实战:掌握图像处理高级技巧

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…...

解决MAC装win系统投屏失败问题(AMD显卡)

一、问题描述 电脑接上HDMI线后&#xff0c;电脑上能显示有外部显示器接入&#xff0c;但是外接显示器无投屏画面 二、已测试的方法 1 更改电脑分辨&#xff0c;结果无效 2 删除BootCamp&#xff0c;结果无效 3更新电脑系统&#xff0c;结果无效 4 在设备管理器中&#…...

网易游戏分享游戏场景中MongoDB运行和分析实践

在游戏行业中&#xff0c;数据库的稳定和性能直接影响了游戏质量和用户满意度。在竞争激烈的游戏市场中&#xff0c;一个优秀的数据库产品无疑能为游戏的开发和后期的运营奠定良好的基础。伴随着MongoDB在不同类型游戏场景中的应用越来越广泛&#xff0c;许多知名的游戏公司都在…...

Android14 AOSP 允许system分区和vendor分区应用进行AIDL通信

在Android14上&#xff0c;出于种种原因&#xff0c;system分区的应用无法和vendor分区的应用直接通过AIDL的方法进行通信&#xff0c;但是项目的某个功能又需要如此。 好在Binder底层其实是支持的&#xff0c;只是在上层进行了屏蔽。 修改 frameworks/native/libs/binder/Bp…...

R学习——因子

目录 1 定义因子&#xff08;factor函数&#xff09; 2因子的作用 一个数据集中的 只需要考虑可以用哪个数据来进行分类就可以了&#xff0c;可以用来分类就可以作为因子。 Cy1这个因子对应的水平level是4 6 8&#xff1a; 1 定义因子&#xff08;factor函数&#xff09; 要…...

pytest入门三:setup、teardown

https://zhuanlan.zhihu.com/p/623447031 function对应类外的函数&#xff0c;每个函数调用一次 import pytest def setup_module():print(开始 module)def teardown_module():print(结束 module)def setup_function():print(开始 function)def teardown_function():print(结…...

前端面试准备问题2

1.防抖和节流分别是什么&#xff0c;应用场景 防抖&#xff1a;在事件被触发后&#xff0c;只有在指定的延迟时间内没有再次触发&#xff0c;才执行事件处理函数。 在我的理解中&#xff0c;简单的说就是在一个指定的时间内&#xff0c;仅触发一次&#xff0c;如果有多次重复触…...

web前端sse封装

这是一个基于microsoft/fetch-event-source包封装的sse函数&#xff0c;包含开始、停止功能; 可传更多参数、使用非常简单。 使用前: 安装 microsoft/fetch-event-source 代码&#xff1a; // sse import { fetchEventSource } from microsoft/fetch-event-source import { …...

智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能

前言&#xff1a; 在当今社会的高速运转之下&#xff0c;夜幕低垂之时&#xff0c;许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言&#xff0c;确保孩童按时用餐与居家安全成为心头大事。此时&#xff0c;家居留言录音提示功能应运而生&#xff0c;恰似家中的一位无形…...

【创建模式-蓝本模式(Prototype Pattern)】

目录 Overview应用场景代码演示JDK Prototype pattern 更优实践泛型克隆接口 https://doc.hutool.cn/pages/Cloneable/#%E6%B3%9B%E5%9E%8B%E5%85%8B%E9%9A%86%E7%B1%BB The prototype pattern is a creational design pattern in software development. It is used when the t…...

Spring Boot应用开发深度解析与实战案例

Spring Boot应用开发深度解析与实战案例 在当今快速发展的软件开发领域,Spring Boot凭借其“约定优于配置”的理念,极大地简化了Java应用的开发、配置和部署过程,成为了微服务架构下不可或缺的技术选型。本文将深入探讨Spring Boot的核心特性、最佳实践,并通过一个具体的…...

优化Go语言中的网络连接:设置代理超时参数

网络连接优化的重要性 在分布式系统和微服务架构中&#xff0c;网络请求的效率直接影响到整个系统的响应速度。合理的超时设置可以防止系统在等待网络响应时陷入无限期的阻塞&#xff0c;从而提高系统的吞吐量和用户体验。特别是在使用代理服务器时&#xff0c;由于增加了网络…...

wordpress 自动采集插件怎么用/网站搭建谷歌seo

赶着51CTO的LINUX学习月的这股热潮&#xff0c;不知不觉我也加入其中&#xff0c;我接触LINUX都有一段时间&#xff0c;只是一直都没深入的研究&#xff0c;看着这次51CTO的LINUX学习月有那么多LINUX fans 参与其中&#xff0c;自己也心动了&#xff0c;学好LINUX的信念也更坚定…...

做旅游网站运营/站内seo和站外seo区别

http://video.yingtu.co/0/07568cf7-3840-4a91-91b4-b9da9fa16d19.mp4魔枪士未转职刷图视频转载于:https://www.cnblogs.com/wuhairui/articles/7043010.html...

长沙市网站制作哪家好/网络舆情监测与研判

1.微服务由来 随着互联网的发展&#xff0c;网站应用的规模不断扩大。需求的激增&#xff0c;带来的是技术上的压力。系统架构也因此也不断的演 进、升级、迭代。从单一应用&#xff0c;到垂直拆分&#xff0c;到分布式服务&#xff0c;到SOA&#xff0c;以及现在火热的微服务…...

web网站测试/长沙专业网络推广公司

两个石匠正在太阳下挥汗如雨地工作着&#xff0c;有一个过路的人问他们说&#xff1a;“你们觉得辛苦吗&#xff1f;” 甲石匠点了点头一脸无奈地说&#xff1a;“是的&#xff0c;我每天都要面对一些毫无生命的石头&#xff0c;为了完成一件雕塑&#xff0c;有时不知要磨坏多少…...

网站别人备案怎么办/可以推广的软件有哪些

一、前言 Go基础(1) 下载、安装、环境变量配置 二、IDE下载安装 GoLand下载地址&#xff1a;https://www.jetbrains.com/go/download/#sectionwindows 双击安装 等待安装完成… 安装完成之后&#xff0c;提示重启电脑&#xff0c;这里我们还是重启一下吧… 重启完之…...

新建文档怎么做网站/长沙网站seo收费

html5作为下一代web标准&#xff0c;年前轩起了html5热潮。对于html5我只是本着了解看看。关于html5和RIA&#xff08;silverlight&#xff0c;flash&#xff0c;JavaFx等&#xff09;我不想说什么&#xff0c;也没有什么可说的&#xff0c;存在就有其存在的理由。孰优孰劣&…...