Перевод кода из pascal в c# (консольное приложение) : написать программу, которая позволяет вычислять определенный интеграл с формулы ньютона-котеса. код: { программа для вычисления интеграла численным методом ньютона-котеса открытого типа 4-го порядка с заданной погрешностью вычислений } program newtoncotes; {подинтегральная функция} function f(x: real): real; begin f : = sin(x); end; {вычисление интеграла на отрезке [a, b] методом ньютона-котеса открытого типа 4-го порядка} function newtoncotesopen4(a, b: real): real; const n = 4; {порядок метода} c: array [1..n - 1] of real = (2, -1, 2); {весовые коэффициенты} k = 3.0; {делитель} var res: real; h: real; {величина шага} x: real; i: integer; begin h : = (b - a) / n; res : = 0; for i : = 1 to n - 1 do begin x : = a + i * h; res : = res + c[i] * f(x); end; newtoncotesopen4 : = res * (b - a) / k; end; {вычисление интеграла на отрезке [a, b] как суммы интегралов на n подинтервалах} function sumsubintervals(a, b: real; n: integer): real; var h: real; i: integer; begin sumsubintervals : = 0; h : = (b - a) / n; for i : = 1 to n do sumsubintervals : = sumsubintervals + newtoncotesopen4(a + pred(i) * h, a + i * h); end; var a, b, {границы интегрирования} eps: real; {погрешность численного интегрирования} n: integer; {количество подинтервалов интегрирования} icur, {значение интеграла на текущем шаге итерации} ipre: real; {значение интеграла на предыдущем шаге итерации} begin a : = 0; b : = pi; eps : = 0.00001; n : = 1; icur : = sumsubintervals(a, b, n); repeat ipre : = icur; n : = 2 * n; {увеличиваем количество подинтервалов} icur : = sumsubintervals(a, b, n); writeln('i=', icur: 10: 8, ' при n=', n, ', e=', abs(icur - ipre): 10: 8); until abs(icur - ipre) < eps; writeln(''); writeln('i=', icur: 10: 8, ' при n=', n, ', e=', abs(icur - ipre): 10: 8); end.
135
455
Ответы на вопрос:
Using system; namespace test{ class program { static double f(double x) { return math.sin(x); } static double newtoncotesopen4(double a, double b) { const int n = 4; double[] c = {2.0, -1.0, 2.0 }; const double k = 3.0; double h = (b - a) / n; double res = 0; double x; for(int i = 1; i < = n - 1; i++) { x = a + i * h; res += c[i - 1] * f(x); } return res * (b - a) / k; } static double sumsubintervals(double a, double b, int n) { double res = 0; double h = (b - a) / n; for(int i = 1; i < = n; i++) { res += newtoncotesopen4(a + (i - 1) * h, a + i * h); } return res; } static void main(string[] args) { double a = 0; double b = math.pi; double eps = 0.00001; int n = 1; double lcur = sumsubintervals(a, b, n); double lpre; do { lpre = lcur; n *= 2; lcur = sumsubintervals(a, b, n); console.writeline("l={0} при n={1} e={2}", math.round(lcur, 8), n, math.round(math.abs(lcur - lpre), 8)); } while (math.abs(lcur - lpre) < eps); console.writeline(""); console.writeline("l={0} при n={1} e={2}", math.round(lcur, 8), n, math.round(math.abs(lcur - lpre), 8)); } }}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
ffffffqqqqq111117.03.2022 18:06
-
annamos1612.12.2021 02:23
-
VolandDrein18.03.2021 15:39
-
SheriStriff13.06.2022 00:43
-
Ляляляля10924.07.2021 20:01
-
Элиза551126.05.2021 04:20
-
sob00010.08.2022 02:37
-
НепосредственноКаха829.11.2021 19:28
-
seSSS30.09.2020 10:58
-
eksergeeva522.03.2023 10:45
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.