Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Взятие интеграла методом Симпсона (https://javascript.ru/forum/misc/8435-vzyatie-integrala-metodom-simpsona.html)

Leks 25.03.2010 18:24

Взятие интеграла методом Симпсона
 
Помогите пожалуйста сделать программу на js, вычисляющую интеграл методом симпсона
http://solidbase.karelia.ru/edu/meth...s/Simpson.shtm
http://ru.wikipedia.org/wiki/Формула_Симпсона
Тоесть я так пологаю должно быть 4 поля в которых задаются пределы интегрирования, количество шагов и сама функция а в четвертом по нажатию кнопки появляется ответ.
Заранее благодарен! С таким языком не когда не сталкивался раньше по этому плохо представляю.
вот код на дельфи для такого вычисления:
Код:

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Взятие интеграла методом Симпсона

Интеграл методом Симпсона
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.

Возвращаемое значение - значение интеграла

Зависимости: System
Автор:      Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков
Copyright:  Mystic
Дата:        25 апреля 2002 г.
***************************************************** }

type
  TFunction = function(X: Extended; Arg: Pointer): Extended;

function Simpson(A, B: Extended; N: Cardinal; Func: TFunction; Arg: Pointer):
  Extended;
var
  h: Extended;
  X: Extended;
  K: Extended;
  I: Integer;
begin
  Assert(N > 0);
  h := 0.5 * (B - A) / N;
  Result := Func(A, Arg);
  X := A + h;
  for I := 1 to 2 * N - 1 do
  begin
    if I mod 2 = 0 then
      K := 2
    else
      K := 4;
    Result := Result + K * Func(X, Arg);
    X := X + h;
  end;
  Result := Result + Func(B, Arg);
  Result := h * Result / 3;
end;


Gvozd 25.03.2010 18:32

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

Leks 25.03.2010 18:36

Вы правы, с этим языком я не когда не сталкивался, но вот понадобилось написать на нем программу. Сам язык осваивать нет времени. По жтому не сочтите за наглость мою просьбу помочь реализовать данный метод на js

Gvozd 25.03.2010 22:40

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

Leks 25.03.2010 23:07

мда... За что деньги платить? за написание алгоритма где всего навсего одна процедура ветвления? Я всё больше и больше разочаровываюсь в людях, за бесплатно не кто и пальцем не пошевелит.. Помирать будешь - воды не дадут. Капитализмъ!

Gvozd 25.03.2010 23:30

разочаровывайтесь на здоровье.
самому-то не стыдно?
пришли на форум предназначенный для общения разработчиков, и начинающих разработчиков JS, и заявляете
Цитата:

Сообщение от Leks
Сам язык осваивать нет времени

такие заявления приемлемы только в разделе работа.

привыкайте, что в этой жизни за все надо платить.абсолютно за все.
только потратите ли вы свое время на изучение JS и самостоятельное написание скрипта, или же потратите деньги на готовый скрипт, вот в чем разница.
но чем-то придется заплатить.
называйте это капитализмом, если угодно, но так было всегда.
еще до совершения первого натурального обмена
PS и да, я жадная меркантильная сволочь, которая сидит тут, только для того чтобы гнобить хороших парней вроде вас. смиритесь с этим.

PeaceCoder 26.03.2010 00:19

Он Gvozd, и забивает на мертво ;) И он прав. Это на будущее.
Немного зная делфи помогу но не гарантирую работу
function Simpson(A, B,N, Func,Arg){
var
  h,X,K,I;
  Assert(N > 0); // хз че это
  h = 0.5 * (B - A) / N;
  Result = Func(A, Arg);
  X = A + h;
  for (I = 1;I< 2 * N-1;I++) {
    K =  I % 2 ? 4 : 2;
    Result +=  K * Func(X, Arg);
    X += h;
    }
  Result += Func(B, Arg);
  return h * Result / 3;

  }

Leks 26.03.2010 20:19

PeaceCoder,огромное спасибо!!

micscr 27.03.2010 19:30

Цитата:

Сообщение от Leks (Сообщение 49063)
Помогите пожалуйста сделать программу на js, вычисляющую интеграл методом симпсона

Вот так вот оказывается - Гомер еще и свой метод решения интегралов изобрел. :victory:

Gvozd 27.03.2010 19:38

на самом деле это был его отец, Абрахам


Часовой пояс GMT +3, время: 08:59.