Я создал небольшой код в Julia, который может использовать function iteration
для решения простой нелинейной проблемы.Хорошее представление результатов в Julia после цикла
Код следующее:
"""
Problem: find the root of f(x) = exp(-x) - x
using the fixed point iteration
(aka function iteration)
Solution: f(x) = exp(-x) - x = 0
x = exp(-x)
"""
i = 0; # initialize first iteration
x = 0; # initialize solution
error = 1; # initialize error bound
xvals = x; # initialize array of iterates
tic()
while error >= 1e-10
y = exp(-x);
xvals = [xvals;y]; # It is not needed actually
error = abs(y-x);
x = y;
i = i + 1;
println(["Solution", x', "Error:", error', "Iteration no:", i'])
end
toc()
В приведенном выше коде результаты не являются в чистом виде для Есть много десятичных чисел. Насколько я понимаю, использование println
может быть не очень хорошей идеей, и вместо этого необходимо использовать @printf
или sprintf
, однако я не смог поместить все в одну строку.
Возможно ли это?
Не ответ на ваш вопрос, но для чего стоит функция 'compute_fixed_point' в библиотеке' QuantEcon', которая применила бы итерацию функции для вас. Таким образом, при условии, что вы вызвали 'Pkg.add (« QuantEcon »)' и 'using QuantEcon', вы могли бы решить эту проблему через' sol = compute_fixed_point (x-> exp (-x), guess) ', где' guess' это исходное предположение. – spencerlyon2
Ты сэр сделал мой день. Прошло некоторое время с тех пор, как я посетил их сайт (Quant-Econ), и теперь они также включили примеры Джулии. Pefect, просто отлично. – Echetlaeus
Удивительный, рад, что вы в восторге от этого! Мы потратили некоторое время на то, чтобы тот же код был доступен как в версиях Quanton, так и в python и julia. – spencerlyon2