_Ivana 0 8 ноября, 2013 Опубликовано 8 ноября, 2013 · Жалоба А выложите вашу реализацию, если вам не трудно, интересно посмотреть. Хоть в мой матлабовский код впишите третьим вариантом. Я вывел свой вышепредставленный алгоритм из другой математической модели, нежели стандартная постановка задачи построения полинома по 4 точкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 9 ноября, 2013 Опубликовано 9 ноября, 2013 · Жалоба А выложите вашу реализацию, если вам не трудно, интересно посмотреть. Хоть в мой матлабовский код впишите третьим вариантом. Я вывел свой вышепредставленный алгоритм из другой математической модели, нежели стандартная постановка задачи построения полинома по 4 точкам. Я когда то его уже выкладывал.Переделывать на скрипт нет желания,берите уж какой есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 9 ноября, 2013 Опубликовано 9 ноября, 2013 · Жалоба Спасибо, взял как есть, сам вделал в скрипт. Признаться, я думал что ранее приведенная мной реализация Фарроу уже оптимизирована по количеству операций и даже не задумывался о том, что ее можно еще упростить. В результате я своим методом выиграл только один сдвиг. clf reset N = 10; x = 1:N; y = rand(1, N); h = 0.01; d = 0; plot(x, y, 'or', 'LineWidth', 2); hold on; grid on; axis on; title(['Локальная интерполяция случайного набора точек', ... ' полиномом Лагранжа 3 степени, 2 алгоритма расчета.']); plot(x(1), y(1), 'b-', x(1), y(1), 'g:'); legend('точки', 'мой алгоритм', 'Фарроу по Anatoliy'); for k = 1:(N-2) % мой алгоритм: 1 умножение, 1 сдвиг, 6 сложений c = d; e = y(k+1) - y(k); d = y(k+2) - y(k+1) - e; b2 = c/2; b3 = (d - c)/6; b1 = e - b2 - b3; if (k == 1) continue; end t = 0:h:1; f = b3.*t.^3 + b2.*t.^2 + b1.*t + y(k); plot(t+x(k), f, 'b-') % Фарроу по _Anatoliy: 1 умножение, 2 сдвига, 6 сложений p = y(k) - y(k+1); q = (y(k+2) - y(k))/2; a3 = ( (y(k+2) - y(k-1))/3 + p )/2; a2 = p + q; a1 = q - a3; t = -1:h:0; f = a3.*t.^3 + a2.*t.^2 + a1.*t + y(k+1); plot(t+1+x(k), f, 'g:') end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 17 мая, 2014 Опубликовано 17 мая, 2014 · Жалоба Ага,у меня тоже меньше 6-ти сложений не получилось,видимо предел. Оказывается, не предел ) На досуге подумал, получил 5 сложений, 1 умножение и 1 сдвиг. clf reset N = 10; x = 1:N; y = rand(1, N); h = 0.01; g = y(3) - y(2); d = g - y(2) + y(1); plot(x, y, 'or', 'LineWidth', 2); hold on; grid on; axis on; title(['Локальная интерполяция случайного набора точек', ... ' полиномом Лагранжа 3 степени, 2 алгоритма расчета.']); plot(x(1), y(1), 'b-', x(1), y(1), 'g:'); legend('точки', 'мой алгоритм', 'Фарроу по Anatoliy'); for k = 2:(N-2) % мой алгоритм: 1 умножение, 1 сдвиг, 5 сложений c = d; e = g; g = y(k+2) - y(k+1); d = g - e; b2 = c/2; b3 = (d - c)/6; b1 = e - b2 - b3; t = 0:h:1; f = b3.*t.^3 + b2.*t.^2 + b1.*t + y(k); plot(t+x(k), f, 'b-') % Фарроу по _Anatoliy: 1 умножение, 2 сдвига, 6 сложений p = y(k) - y(k+1); q = (y(k+2) - y(k))/2; a3 = ( (y(k+2) - y(k-1))/3 + p )/2; a2 = p + q; a1 = q - a3; t = -1:h:0; f = a3.*t.^3 + a2.*t.^2 + a1.*t + y(k+1); plot(t+1+x(k), f, 'g:') end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 мая, 2014 Опубликовано 18 мая, 2014 · Жалоба Оказывается, не предел ) На досуге подумал, получил 5 сложений, 1 умножение и 1 сдвиг. Только для чего всё это? Я,например,не собирался реализовывать свой вариант в FPGA,баловство это.Делал просто чтоб молодость вспомнить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 18 мая, 2014 Опубликовано 18 мая, 2014 · Жалоба Ну как, спорт, например )... Или вы к тому, чтобы я занялся делом, а не выводил пяти...пых обезьян, как герой мультфильма Саус Парк? На сайте Бахурина лежит "оптимизированный алгоритм", вы его еще оптимизировали на 2 сложения, я на 3 сложения и сдвиг... И никому не интересны эти результаты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 мая, 2014 Опубликовано 18 мая, 2014 · Жалоба Ну как, спорт, например )... Или вы к тому, чтобы я занялся делом, а не выводил пяти...пых обезьян, как герой мультфильма Саус Парк? Мне то какое дело чем вы занимаетесь.Просто я хронический практик, и убеждён что практической выгоды от применения подобных реализаций нет. И никому не интересны эти результаты? А насчёт результатов не торопитесь,пусть народ посмотрит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivana 0 18 мая, 2014 Опубликовано 18 мая, 2014 · Жалоба Спасибо вам, _Anatoliy, искренне. За представленную ранее собственную оптимизацию, за высланную давно статью, за честность ваших оценок и за приятное общение. Независимо от мнений "посмотревшего народа" или их отсутствия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 мая, 2014 Опубликовано 19 мая, 2014 · Жалоба Спасибо вам, _Anatoliy, искренне. За представленную ранее собственную оптимизацию, за высланную давно статью, за честность ваших оценок и за приятное общение. Независимо от мнений "посмотревшего народа" или их отсутствия. Да не за что.Всегда пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 14 апреля, 2015 Опубликовано 14 апреля, 2015 · Жалоба Топикстартер, выложите, пожалуйста, Вашу статью ещё раз. По той ссылке уже не забрать. Может, её просто прикрепить к сообщению на форуме? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 13 мая, 2016 Опубликовано 13 мая, 2016 · Жалоба Наткнулся на статью нашего ... топикстартера. :rolleyes: https://habrahabr.ru/post/282441/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться