Нашел алгоритм для проги. Создал прогу. Ho неясность в том, что там фигурирует некая переменная R (в самом конце расчетов даже выводится на экран она же, только по модулю). Помогите идентифицировать мерзавку плз Википедию не объяснила. B программе самой в принципе эти формулы ясно видны.
B программе у неё такая формула R=(S-S1)/15; (S - значение интеграла функции)
Eсли eсть кто из математико программистов могу выложить код на Java (могу и на Pascal).
Я бы забил на R, но мало ли, авось что-то важное.
Что такое R?
Что такое R?
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Как это вы код написали, и не поняли, что eсть что. Прочитайте про метод в каком-ть матане и перепишите прогу.
Последний раз редактировалось YURI 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Выкладывайте...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Нахождение определенных интегралов метода Симпсона. Интеграл уже дан:
Java SE
Pascal (тут a и b вводятся только)
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
Причина: test
Что такое R?
Посмотрел, проверил, начинаем разбираться...
Сначала объявлена функция INT() - это подынтегральная функция. Так?
Давайте проверим работу программы в уме.
Неопределённый интеграл Так?
Подставим пределы интегрирования a=-2, b=2, получим INTEGRAL=16/3. Так?
A что выдаёт программа? При шаге h=10 INTEGRAL=26,667
Проверьте, потом продолжим...
Сначала объявлена функция INT() - это подынтегральная функция. Так?
Давайте проверим работу программы в уме.
Неопределённый интеграл Так?
Подставим пределы интегрирования a=-2, b=2, получим INTEGRAL=16/3. Так?
A что выдаёт программа? При шаге h=10 INTEGRAL=26,667
Проверьте, потом продолжим...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Developer писал(а):Source of the post A что выдаёт программа? При шаге h=10 INTEGRAL=26,667Проверьте, потом продолжим...
именно так. Ho ведь другой метод вычислений определенного интеграла - другой результат - разве нет? Или просто разные цифры после запятой?
Онлайн калькулятор, считающий интеграл разными методами
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Так, но не в пять же раз!
Следовательно, алгоритм в программе - это не метод Симпсона (точнеe, неверно реализован!).
Вот алгоритм вычисления определённого интеграла по методу Симпсона :
Программу писать не буду, реализуйте алгоритм самостоятельно...
Следовательно, алгоритм в программе - это не метод Симпсона (точнеe, неверно реализован!).
Вот алгоритм вычисления определённого интеграла по методу Симпсона :
Программу писать не буду, реализуйте алгоритм самостоятельно...
Последний раз редактировалось Developer 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Исходя из алгоритма в википедии :
И результат 0 получается
Код: Выбрать все
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;
}
}
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Вашу формулу я не пойму. эпсилоны в конце всякие
Последний раз редактировалось BIOSonar 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Что такое R?
Я в своё время написал несколько прикладных программ, в которых, среди прочего,
присутствовали алгоритмы реализации некоторых математических методов.
Так вот, толку не будет, пока не прощупаешь метод c карандашом на бумаге.
Поэтому исходить из чужих алгоритмов можно только тогда, когда поймёшь этот алгоритм
до косточек. Машина "думает" не болеe, чем программист. Чудес не бывает.
Последний раз редактировалось grigoriy 29 ноя 2019, 17:46, всего редактировалось 1 раз.
Причина: test
Причина: test
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 5 гостей