数值分析常见习题解答

1 1.已知下列数值表,求符合表值的插值多项式,并给出插值余项的表达式。

x i x_i 0 0 1 1 2 2
y i y_i 2 2 1 1 2 2
y i y_i^{'} 2 -2 1 -1
y i y_i^{''} 10 -10

解:采用牛顿插值:

P 2 ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x x 0 ) + f [ x 0 , x 1 , x 2 ] ( x x 0 ) ( x x 1 ) P_2(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)

= x 2 2 x + 2 =x^2-2x+2

由题目条件可得符合该表的插值多项式可设为:

P 5 ( x ) = P 2 ( x ) + ( a x 2 + b x + c ) x ( x 1 ) ( x 2 ) P_5(x)=P_2(x)+(ax^2+bx+c)x(x-1)(x-2)

代入以下条件,有:
KaTeX parse error: Unknown column alignment: 1 at position 28: … \begin{array}{1̲} P…

我们可以得到:

P 5 ( x ) = 4 x 5 15 x 4 + 17 x 3 5 x 2 2 x + 2 P_5(x)=4x^5-15x^4+17x^3-5x^2-2x+2

R ( f ) = f ( 6 ) ( ξ ) 6 ! x 3 ( x 1 ) 2 ( x 2 ) , ξ x 0 , x 1 x 2 x R(f)=\frac{f^{(6)}(\xi)}{6!}x^3(x-1)^2(x-2),式中\xi位于x_0,x_1x_2和x所界定的范围内

JNIPmD.png

解:

由给定条件,可确定不超过三次的插值多项式,其形式为:

P ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x x 0 ) + A ( x x 0 ) ( x x 1 ) , P ( x 1 ) = f ( x 1 ) , P(x)=f(x_0)+f[x_0,x_1](x-x_0)+A(x-x_0)(x-x_1),代入P^{'}(x_1)=f^{'}(x_1),得

A = f ( x 0 ) f [ x 0 , x 1 ] x 0 x 1 A=\frac{f^{'}(x_0)-f[x_0,x_1]}{x_0-x_1}

P ( x ) : 代入P_(x),得:

P ( x ) = ( x x 1 ) ( x 2 x 0 + x 1 ) ( x 1 x 0 ) 2 f ( x 0 ) + ( x x 0 ) ( x x 1 ) x 0 x 1 f ( x 0 ) + ( x x 0 ) 2 ( x 1 x 0 ) 2 f ( x 1 ) P_(x)=-\frac{(x-x_1)(x-2x_0+x_1)}{(x_1-x_0)^2}f(x_0)+\frac{(x-x_0)(x-x_1)}{x_0-x_1}f^{'}(x_0)+\frac{(x-x_0)^2}{(x_1-x_0)^2}f(x_1)

R ( x ) = f ( x ) P ( x ) , R ( x ) = f ( x ) P ( x ) = k ( x ) ( x x 0 ) 2 ( x x 1 ) , k ( x ) 为了求出余项R(x)=f(x)-P(x),设R(x)=f(x)-P(x)=k(x)(x-x_0)^2(x-x_1),其中k(x)为待定常数

φ ( t ) = f ( t ) P ( t ) k ( x ) ( t x 0 ) 2 ( t x 1 ) , φ ( t ) ( x 0 , x 1 ) φ ( 3 ) ( t ) ( x 0 , x 1 ) ξ , 使 构造 \varphi(t)=f(t)-P(t)-k(x)(t-x_0)^2(t-x_1),\therefore\varphi(t)在(x_0,x_1)内有四个零点,根据罗尔定理结论,可得\\\varphi^{(3)}(t)在(x_0,x_1)内至少有一个零点\xi,使得:

φ ( 3 ) ( ξ ) = f ( 3 ) ( ξ ) 3 ! k ( x ) = 0 \varphi^{(3)}(\xi)=f^{(3)}(\xi)-3!k(x)=0

k ( x ) = f ( 3 ) ( ξ ) 6 , R ( x ) = 1 6 ( x x 0 ) 2 ( x x 1 ) f ( 3 ) ( ξ ) , x 0 < ξ < x 1 , \therefore k(x)=\frac{f^{(3)}(\xi)}{6},R(x)=\frac{1}{6}(x-x_0)^2(x-x_1)f^{(3)}(\xi),x_0<\xi<x_1,证毕

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4NG02Jk-1587562372068)(https://s1.ax1x.com/2020/04/21/J8zKTU.png)]

解:

φ 0 ( x ) , φ 1 ( x ) , φ 2 ( x ) 法一:构造正交多项式\varphi_0(x),\varphi_1(x),\varphi_2(x)求解
φ 0 ( x ) = 1 a 0 = ( f , φ 0 ) ( φ 0 , φ 0 ) = 14.5 a 1 = ( x φ 0 , φ 0 ) ( φ 0 , φ 0 ) = 2.5 φ 1 ( x ) = ( x a 1 ) φ 0 ( x ) = x 2.5 β 1 = ( φ 1 ( x ) , φ 1 ( x ) ) ( φ 1 ( x ) , φ 1 ( x ) ) φ 2 ( x ) = ( x a 1 ) φ 1 ( x ) β 1 φ 0 ( x ) = x 2 5 x + 5 a 2 = ( x φ 1 , φ 1 ) ( φ 1 , φ 1 ) = 0.5 \qquad \varphi_0(x)=1\\ \qquad a_0=\frac{(f,\varphi_0)}{(\varphi_0,\varphi_0)}=14.5\\ \qquad a_1=\frac{(x\varphi_0,\varphi_0)}{(\varphi_0,\varphi_0)}=2.5\\ \qquad\varphi_1(x)=(x-a_1)\varphi_0(x)\\\qquad=x-2.5 \\ \quad\beta_1=\frac{(\varphi_1(x),\varphi_1(x))}{(\varphi_1(x),\varphi_1(x))}\\ \qquad\varphi_2(x)=(x-a_1)\varphi_1(x)-\beta_1\varphi_0(x)\\=x^2-5x+5\\ a_2=\frac{(x\varphi_1,\varphi_1)}{(\varphi_1,\varphi_1)}=0.5\\

y = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + a 2 φ 2 ( x ) = 1 2 x 2 + 49 10 x 3 2 \therefore y=a_0\varphi_0(x)+a_1\varphi_1(x)+a_2\varphi_2(x)=\frac{1}{2}x^2+\frac{49}{10}x-\frac{3}{2}

ϕ = s p a n ( 1 , x , x 2 ) , 线 法二:取\phi=span(1,x,x^2),求解线性方程组,也可得到相同答案,不再赘述

4. f ( x ) = x 4 + 3 x 3 1 [ 0 , 1 ] 4.求f(x)=x^4+3x^3-1在区间[0,1]上的三次最佳一致逼近多项式

: 解:

; x = t + 1 2 , : f ( t ) = 1 16 ( 1 + t ) 4 + 3 8 ( t + 1 ) 3 1 做变换;x=\frac{t+1}{2},有:f(t)=\frac{1}{16}(1+t)^4+\frac{3}{8}(t+1)^3-1

1 由首项为1的切比雪夫多项式性质可得:

f ( x ) P 3 ( x ) = 1 16 1 8 T 4 ( t ) f(x)-P_3(x)=\frac{1}{16}\cdot\frac{1}{8}T_4(t)

P 3 ( x ) = f ( x ) 1 128 T 4 ( t ) = 5 x 3 5 4 x 2 + 1 4 x 129 128 , x [ 0 , 1 ] \therefore P_3(x)=f(x)-\frac{1}{128}T_4(t)=5x^3-\frac{5}{4}x^2+\frac{1}{4}x-\frac{129}{128},x\in[0,1]

JNFrGt.png

: 解:

f ( x ) = 1 , x x 0 , ( x x 0 ) 2 , ( x x 0 ) 3 , 由代数精度定义可知,分别令f(x)=1,x-x_0,(x-x_0)^2,(x-x_0)^3,得:
KaTeX parse error: Unknown column alignment: 1 at position 28: … \begin{array}{1̲} A…

解得:
KaTeX parse error: Unknown column alignment: 1 at position 28: … \begin{array}{1̲} A…

同时有:

x 0 x 1 ( x x 0 ) ( x x 0 ) 4 d x h 2 ( 0 + B h 4 ) + h 3 ( 0 + 4 h 3 D ) \int_{x_0}^{x_1}(x-x_0)(x-x_0)^4dx\neq h ^2(0+Bh^4)+h^3(0+4h^3D)

: 所以该数值积分具有三次代数精度,余项为:

R ( f ) = x 0 x 1 f ( 4 ) ( ξ ) 4 ! ( x x 0 ) 3 ( x x 1 ) 2 = f ( 4 ) ( η ) h 2 4 ! 60 = h 2 1440 f ( 4 ) ( η ) , x [ x 0 , x 1 ] , ξ ( x 0 , x 1 ) , η ( x 0 , x 1 ) R(f)=\int_{x_0}^{x_1}\frac{f^{(4)}(\xi)}{4!}(x-x_0)^3(x-x_1)^2=f^{(4)}(\eta)\frac{h^2}{4!\cdot60}=\frac{h^2}{1440}f^{(4)}(\eta),x\in[x_0,x_1],\xi\in(x_0,x_1),\eta\in(x_0,x_1)

6. 6.

J8OH81.png

证明:

l i ( x j ) = δ i j 对于插值基函数,有l_i(x_j)=\delta_{ij}

a b ρ ( x ) l k 2 ( x ) d x = i = 0 n A i l k 2 ( x i ) = A k \therefore\int_a^b \rho(x)l_k^2(x)dx=\sum_{i=0}^nA_il_k^2(x_i)=A_k

k = 0 n a b ρ ( x ) l k 2 ( x ) d x = k = 0 n A k = a b ρ ( x ) d x \sum_{k=0}^n\int_a^b \rho(x)l_k^2(x)dx=\sum_{k=0}^nA_k=\int_a^b\rho(x)dx

7 0.3 0.8 x 3 + s i n x x , 使 0.1 1 0 4 : 7.用龙贝格方法计算 \int_{0.3}^{0.8}x^3+\frac{sinx}{x}, 使其误差不超过 0.1*10^{-4}:

P y t h o n 解:编写Python程序:


import math

'''
给定一个函数,如:f(x)= x^(3/2),和积分上下限a,b,用机械求积Romberg公式求积分。

'''
import numpy as np


def func(x):
    return x**2+math.sin(x)/x

class Romberg:
    def __init__(self, integ_dowlimit, integ_uplimit):
        '''
        初始化积分上限integ_uplimit和积分下限integ_dowlimit
        输入一个函数,输出函数在积分上下限的积分

        '''
        self.integ_uplimit = integ_uplimit
        self.integ_dowlimit = integ_dowlimit



    def calc(self):
        '''
        计算Richardson外推算法的四个序列

        '''
        t_seq1 = np.zeros(5, 'f')
        s_seq2 = np.zeros(4, 'f')
        c_seq3 = np.zeros(3, 'f')
        r_seq4 = np.zeros(2, 'f')
        # 循环生成hm间距序列
        hm = [(self.integ_uplimit - self.integ_dowlimit) / (2 ** i) for i in range(0,5)]
        print(hm)
        # 循环生成t_seq1
        fa = func(self.integ_dowlimit)
        fb = func(self.integ_uplimit)

        t0 = (1 / 2) * (self.integ_uplimit - self.integ_dowlimit) * (fa+fb)
        t_seq1[0] = t0

        for i in range(1, 5):
            sum = 0
            # 多出来的点的累加和
            for each in range(1, 2**i,2):
                sum =sum + hm[i]*func( self.integ_dowlimit+each * hm[i])#计算两项值
            temp1 = 1 / 2 * t_seq1[i - 1]
            temp2 =sum
            temp =  temp1 + temp2
            # 求t_seql的1-4位
            t_seq1[i] = temp
        print('T序列:'+ str(list(t_seq1)))
        # 循环生成s_seq2
        s_seq2 = [round((4 * t_seq1[i + 1] - t_seq1[i]) / 3,6) for i in range(0, 4)]
        print('S序列:' + str(list(s_seq2)))
        # 循环生成c_seq3
        c_seq3 = [round((4 ** 2 * s_seq2[i + 1] - s_seq2[i]) / (4 ** 2 - 1),6) for i in range(0, 3)]
        print('C序列:' + str(list(c_seq3)))
        # 循环生成r_seq4
        r_seq4 = [round((4 ** 3 * c_seq3[i + 1] - c_seq3[i]) / (4 ** 3 - 1),6) for i in range(0, 2)]
        print('R序列:' + str(list(r_seq4)))
        r_seq5 = [round((4 ** 4 * r_seq4[i + 1] - r_seq4[i]) / (4 ** 4 - 1),6) for i in range(0, 1)]
        print('A序列:' + str(list(r_seq5)))
        return 'end'


rom = Romberg(0.3, 0.8)
print(rom.calc())

运行结果:

J37wp8.png

0.3 0.8 x 3 + s i n x x = 0.635258 最终我们得到,\int_{0.3}^{0.8}\frac{x^3+sinx}{x}=0.635258

  • 1),6) for i in range(0, 1)]
    print(‘A序列:’ + str(list(r_seq5)))
    return ‘end’

rom = Romberg(0.3, 0.8)
print(rom.calc())


$运行结果:$

[外链图片转存中...(img-l6ySF4Lu-1587562372076)]、

$最终我们得到,\int_{0.3}^{0.8}\frac{x^3+sinx}{x}=0.635258$



猜你喜欢

转载自blog.csdn.net/weixin_43798170/article/details/105693519