.NET 4.x Раные значения при проверке программы маткадом являются правильным решением - C#
Формулировка задачи:
Имеется программа на C# для расчета верхнего пределна интегрирования. Однако при проверке MathCAD оказывается, что есть 2 верных значения верхнего предела. Вопрос: оба решения являются правильными или в чем-то ошибка?
Код программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static double f(double x)
{
return Math.Sin(x);
}
static void Main(string[] args)
{
double step = 0.00001;
double a = 0;
double b = 0;
double g = 1.0;
double result = 0;
while (result <= g)
{
b = b + 0.00001;
for (double x = a; x < b; x += step)
{
result += step * (f(x) + f(x + step)) / 2;
}
}
Console.WriteLine(result);
Console.WriteLine(b);
Console.ReadKey();
}
}
}Решение задачи: «.NET 4.x Раные значения при проверке программы маткадом являются правильным решением»
textual
Листинг программы
static void Main()
{
double step = 0.00001;
double result = 0;
double a = 0, b = 0;
double g = 1;
while (result <= g)
{
b = b + 0.01;
result = 0;
for (double x = a; x < b; x += step)
{
var square = step * (f(x + step) + f(x)) / 2;
result += square;
}
}
Console.WriteLine("Result: {0} with b: {1}", result, b);
Console.ReadKey(true);
}