(Matlab) Экзаменационные вопросы о результате итерации - PullRequest
1 голос
/ 13 марта 2019

Я готовлюсь к письменному тесту по численному анализу.

Есть вопросы с несколькими ответами типа:

Код ниже дает распечатку, ближайшую к ...

N=100;
dt=0.5/N;
x=1;
for n=1: N-1
x=x+dt*x*x;
end
display(x);

Правильный вариант: 2


Приведенный ниже код дает распечатку, ближайшую к ...

N=100;
x=1;
y=1;
for n=1: N-1
x = x - (x-exp(-x))/(1+exp(-x));
y = y - (y-exp(-y));
end
display(x-y)

Правильный вариант: 0


В приведенном ниже коде есть распечатка, которая чаще всего будет ...

s=0.0;
N=10000;
for n=1:N
x=rand(1);
s=s+3*x*x+x;
end
display(s/N)

Правильный вариант: 1,5

В первом вопросе я предположил, что это был метод Эйлера, но я не смог прийти к цифре 2. Я не уверен, как справиться со вторым и третьим.

Есть ли какая-то общая стратегия, которую я могу использовать, чтобы выяснить, к каким подобным итерациям следует сходиться (без использования компьютера)?

1 Ответ

3 голосов
/ 14 марта 2019

Общая стратегия состоит в том, чтобы посмотреть, что делает выполняемая итерация.

Первый вопрос

Это dx/x^2=dt, то есть 1/x0-1/x=tx=x0/(1-x0*t)=1/(1-1*0.5)=2.

Второй вопрос

Уравнение для x - это метод Ньютона для f(x)=x-exp(-x), то есть f'(x)=1+exp(-x), поэтому решениекорень x=exp(-x).

Уравнение для y - это итерация с фиксированной точкой для y=exp(-y).Они оба имеют одинаковое решение x=y=0.5671 (4sf).

Третий вопрос

rand(1) - это равномерное распределение по [0,1] со средним 1/2 и дисперсией1/12 так <x^2>=1/12+1/4=1/3 и 3<x^2>+<x>=3/3+1/2=1.5.

...