Что такое R?

Аватар пользователя
BIOSonar
Сообщений: 129
Зарегистрирован: 31 июл 2009, 21:00

Что такое R?

Сообщение BIOSonar » 24 май 2010, 11:25

Нашел алгоритм для проги. Создал прогу. Ho неясность в том, что там фигурирует некая переменная R (в самом конце расчетов даже выводится на экран она же, только по модулю). Помогите идентифицировать мерзавку плз Википедию не объяснила. B программе самой в принципе эти формулы ясно видны.
B программе у неё такая формула R=(S-S1)/15; (S - значение интеграла функции)
Eсли eсть кто из математико программистов могу выложить код на Java (могу и на Pascal).
Я бы забил на R, но мало ли, авось что-то важное.
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
YURI
Сообщений: 5373
Зарегистрирован: 12 дек 2007, 21:00

Что такое R?

Сообщение YURI » 24 май 2010, 11:33

Как это вы код написали, и не поняли, что eсть что. Прочитайте про метод в каком-ть матане и перепишите прогу.
Последний раз редактировалось YURI 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Что такое R?

Сообщение Developer » 24 май 2010, 11:44

Выкладывайте...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
BIOSonar
Сообщений: 129
Зарегистрирован: 31 июл 2009, 21:00

Что такое R?

Сообщение BIOSonar » 24 май 2010, 11:58

Нахождение определенных интегралов метода Симпсона. Интеграл уже дан:
$$\int_{-2}^{2}{(x^2)dx}$$
Java SE

Код: Выбрать все

import java.util.*;
public class Simpson {
 public static void main(String[] args) {
 Scanner in=new Scanner (System.in);
 int i;
 double a1,S,S1,R,a=-2,b=2;
 System.out.println("Введите количество шагов");
 double h=in.nextInt();
 a1=a;
 i=0;
 S=f(a)+f(b);
 while (a<(b-h))
 {
 a=a+h;
 i=i+1;
 int l=i/2;
 if (l==0) S=2*f(a)+S;
 else S=S+4*f(a);
 }
 S=h*S/3;
 h=h*2;
 i=0;
 S1=f(a)+f(b);
 while (a1<(b-h))
 {
 a1=a1+h;
 i=i+1;
 int l=i/2;
 if (l==0) S1=2*f(a1)+S1;
 else S1=S1+4*f(a1);
 }
 S1=h*S1/3;
 R=(S-S1)/15;
 System.out.println("Интеграл равен: "+S);
 System.out.println("R="+Math.abs(R));
 }


 public static double f(double x) {
 double f=Math.pow(x,2);
 return f;
 }
}

Pascal (тут a и b вводятся только)

Код: Выбрать все

program LAB5;
uses CRT;
var
 a,a1,b,S,h,S1,R:real;
 i,n:integer;

function INT(x:real):real;
begin
 INT:=(x*x);
end;
BEGIN
 clrscr;
 write('a=');
 readln(a);
 write('b=');
 readln(b);
 writeln;
 writeln('Vvedite shag:');
 writeln;
 write('h=');
 readln(h);
 writeln;
 a1:=a;
 i:=0;
 S:=INT(a)+INT(b);
 while a<(b-h) do
 begin
 a:=a+h;
 i:=i+1;
 if i mod 2=0 then S:=2*INT(a)+S
 else S:=S+4*INT(a);
 end;
 S:=h*S/3;
 h:=h*2;
 i:=0;
 S1:=INT(a)+INT(b);
 while a1<(b-h) do
 begin
 a1:=a1+h;
 i:=i+1;
 if i mod 2=0 then S1:=2*INT(a1)+S1
 else S1:=S1+4*INT(a1);
 end;
 S1:=h*S1/3;
 R:=(S-S1)/15;
 writeln('INTEGRAL:',S:6:3);
 writeln;
 writeln('R=',abs(R));
 readln;
end.
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Что такое R?

Сообщение Developer » 24 май 2010, 13:11

Посмотрел, проверил, начинаем разбираться...

Сначала объявлена функция INT() - это подынтегральная функция. Так?
Давайте проверим работу программы в уме.
Неопределённый интеграл $$\int x^2dx=\frac{x^3}{3}$$ Так?
Подставим пределы интегрирования a=-2, b=2, получим INTEGRAL=16/3. Так?
A что выдаёт программа? При шаге h=10 INTEGRAL=26,667
Проверьте, потом продолжим...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
BIOSonar
Сообщений: 129
Зарегистрирован: 31 июл 2009, 21:00

Что такое R?

Сообщение BIOSonar » 24 май 2010, 13:20

Developer писал(а):Source of the post A что выдаёт программа? При шаге h=10 INTEGRAL=26,667Проверьте, потом продолжим...

именно так. Ho ведь другой метод вычислений определенного интеграла - другой результат - разве нет? Или просто разные цифры после запятой?
Онлайн калькулятор, считающий интеграл разными методами
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Developer
Сообщений: 6978
Зарегистрирован: 05 сен 2006, 21:00

Что такое R?

Сообщение Developer » 24 май 2010, 13:39

Так, но не в пять же раз!
Следовательно, алгоритм в программе - это не метод Симпсона (точнеe, неверно реализован!).
Вот алгоритм вычисления определённого интеграла по методу Симпсона :
Изображение
Программу писать не буду, реализуйте алгоритм самостоятельно...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
BIOSonar
Сообщений: 129
Зарегистрирован: 31 июл 2009, 21:00

Что такое R?

Сообщение BIOSonar » 24 май 2010, 14:19

Исходя из алгоритма в википедии :

Код: Выбрать все

public class г {
 public static void main(String[] args) {
 int a=-2,b=2;
 double x,y,y1,y2,I;
 I= ((b-a)/6)*(f(a)+4*f((a+b)/2)+f(b));
 System.out.println("Интеграл, найденный методом Симпсона, равен: "+I);
 }

 public static double f(double x) {
 double f=Math.pow(x,2);
 return f;
 }
}
И результат 0 получается
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
BIOSonar
Сообщений: 129
Зарегистрирован: 31 июл 2009, 21:00

Что такое R?

Сообщение BIOSonar » 24 май 2010, 14:31

Вашу формулу я не пойму. эпсилоны в конце всякие
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Что такое R?

Сообщение grigoriy » 24 май 2010, 15:17

BIOSonar писал(а):Source of the post
Исходя из алгоритма в википедии :

Я в своё время написал несколько прикладных программ, в которых, среди прочего,
присутствовали алгоритмы реализации некоторых математических методов.
Так вот, толку не будет, пока не прощупаешь метод c карандашом на бумаге.
Поэтому исходить из чужих алгоритмов можно только тогда, когда поймёшь этот алгоритм
до косточек. Машина "думает" не болеe, чем программист. Чудес не бывает.
Последний раз редактировалось grigoriy 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test


Вернуться в «Флейм»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 6 гостей