←
PDF 860 / 1160 10.6.4 Exercises
→
English · PDF 860
Original PDF page 860
中文 · PDF 860
initial_time←0
final_time←1
initial_x←1
step←0.1
t←initial_time
x1←initial_x
x2←initial_x
h1←step
h2←step/2
write(printer,initial_time,x1,x2,initial_x)
repeat
    euler(t,x1,h1,1→x1)
    euler(t,x2,h2,2→x2)
    t←t + h
    x←exact_solution(t,initial_time,initial_x)write
    (printer,t,x1,x2,x,abs(x − x1),abs(x − x2),abs((x − x2)/(x − x1)))until
    t ≥ final_timeprocedure euler(t_old,x_old,step,number→x_new)
    temp_x←x_old
    for i is 0 to number − 1 do
        temp_x←temp_x + step*derivative(t_old + step*i,temp_x)
    endfor
    x_new←temp_x
endprocedureprocedure derivative(t,x → derivative)
    derivative←x*x/(t+1)
endprocedureprocedure exact_solution(t,t0,x0→exact_solution)
    c←ln(t0 + 1) + 1/x0
    exact_solution←1/(c − ln(t + 1))
endprocedure

图 10.13

例 10.21 的一个结构更好的算法。

10.6.4 习题

39 求初值问题 $X(0.3)$ 的值,

$$\frac{dx}{dt} = x - 2t, \quad x(0) = 1$$

使用欧拉法,步长为 $h = 0.1$ 。

40 求初值问题 $X(0.25)$ 的值。

$$\frac{dx}{dt} = xt, \quad x(0) = 2$$

41 求初值问题 $X(1)$ 的值,

$$\frac{dx}{dt} = \frac{x}{2\sqrt{t+x}}, \quad x(0.5) = 1$$

使用欧拉法,步长为 $h = 0.1$ 。

42 求初值问题 $X(0.5)$ 针对初值问题

$$\frac{dx}{dt} = \frac{4 - t}{t + x}, \quad x(0) = 1$$