[В ответ на экспоненту, хотя к коду для логарифма это тоже относится.]
О боги.
1. Вы неправильно измеряете время. Как минимум надо объединить много однотипных повторений интересующего куска в цикле, чтобы уменьшить влияние хоть части шума. Но и это всё равно сгодится только как первое приближение.
2. Не нужно создавать два
Stopwatch, хватит и одного.
3. В общем случае для разных значений два способа вычислить одну и ту же числовую функцию могут расходиться друг с другом и относительно точного значения как угодно. По значениям в лишь одном аргументе делать выводы не стоит.
4. Вычисления делает не среда CLR, а скомпилированные из промежуточного языка инструкции для FPU. Методы Math — просто обёртки. (Ну, должно быть так. MS открыли недавно код, и стоит поглядеть, что там…) А уж FPU работает внутри себя с числами разрядности даже больше чем у double. После вычислений они округляются до double/float по надобности.
5. Даже если по результатам измерений и выйдет гарантированное ускорение у менее точно вычисляющего кода, эта погрешность может сказаться на результатах неожиданно сильно. Или ожиданно, но в это не верится. Вы даже так и не сказали, зачем вам такая куча экспонент. А то вдруг надо вычислить, скажем,
— тут можно делать гораздо меньше
вызовов
exp при сохранении неплохой точности.
6. В любом случае голоса в голове говорят «профайлер, профайлер». Я им не пользовался, но все утверждают, что перед оптимизацией скорости стоит сначала узнать, что именно больше всего тормозит — ах, эти странные люди!
7. Используйте
String.Format (а когда сложений строк ещё больше, то
StringBuilder). Как минимум выглядит яснее:
// было
textBox1.Text = textBox1.Text + "dz = " + System.Convert.ToString(z - System.Math.Log(5.0)) + "\r\n";
textBox1.Text = textBox1.Text + System.Convert.ToString(swatch.Elapsed) + "\r\n";
// стало
// + в самом начале файла 'using System;', если нету
textBox1.Text += string.Format("dz = {0}\n{1}\n", z - Math.Log(5.0), swatch.Elapsed);
Сейчас вам ещё поквалифицированнее напишут, но столько ляпов в одном месте — надо как-то повнимательнее, что ли…