Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по курсовой работе2.doc
Скачиваний:
6
Добавлен:
20.04.2015
Размер:
214.53 Кб
Скачать

2.2. Текст задачи

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication27

{

class Program

{

static double F(double x)

{

double I = x * Math.Exp(x) * Math.Sin(x);

return I;

}

static double P(double t1, double t2)

{

double Ft1 = 1.0 / 2.0 * (t1 * Math.Exp(t1) * (Math.Sin(t1) - Math.Cos(t1)) + Math.Exp(t1) * Math.Cos(t1) - 1);

double Ft2 = 1.0 / 2.0 * (t2 * Math.Exp(t2) * (Math.Sin(t2) - Math.Cos(t2)) + Math.Exp(t2) * Math.Cos(t2) - 1);

return Ft2 - Ft1;

}

static double T(double t1, double t2, double p)

{

double In = 0;

double x = t1;

do

{

In += Math.Abs((F(x) + F(x + p)) * p / 2);

x = x + p;

} while (x - p < t2);

return In;

}

static void Main(string[] args)

{

double t1 = 0;

double t2 = 1;

double n = 500;

double p = (t2 - t1) / n;

Console.WriteLine(T(t1, t2, p));

Console.Write("proverka ");

Console.Write(P(t1, t2));

Console.ReadKey();

}

}

}

2.3. Проверка (Excel). Вывод

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

  1. Задача №3. Интерполирование функции. Исходные данные

Интерполирование функций

Используя линейную интерполяцию, найти значение функции в любой точке,

заключенной между минимальным и максимальным значениями аргумента и не

совпадающей с табличным значением.

Х

27

327

402

477

627

777

927

1077

1227

1527

1827

У

10

7,5

6

5,5

5

5

5

8

10

2,5

2

3.1. Описание использованного метода (Метод квадратичной интерполяции)

В методе квадратичной интерполяции точки соединяются отрезками парабол. Так как парабола, в отличие о прямой, определяется тремя точками, то теперь в вычислении функции в промежуточной точке участвуют три точки.

Если искомая точка x находится в диапазоне между точками (X1, Y1), (X2, Y2), (X3, Y3), то значение функции в этой точке определяется по формуле:

3.2. Текст задачи

using System;

namespace ConsoleApplication3

{

public struct point

{

public double x;

public double y;

}

class Program

{

static double I(double x, point[] m)

{

double S = 0;

for (int i = 0; i < m.Length; i++)

{

double S1 = 1;

for (int j = 0; j < m.Length; j++)

{

if (j != i)

{

S1 *= (x - m[j].x) / (m[i].x - m[j].x);

}

}

S += S1 * m[i].y;

}

return S;

}

static void Main()

{

int r = 11;

double[] y = new double[] { 10, 7.5, 6, 5.5, 5, 5, 5, 8, 10, 2.5, 2 };

double[] x = new double[] { 27, 327, 402, 477, 627, 777, 927, 1077, 1227, 1527, 1827 };

point[] m = new point[3];

m[0].x = 320;

m[1].x = 1500;

m[2].x = 53;

for (int i = 0; i < 3; i++)

{

point[] m1 = new point[3];

for (int j = 0; j < r - 1; j++)

{

if ((x[j] < m[i].x) && (x[j + 1] > m[i].x))

{

for (int k = 0; k < 3; k++)

{

m1[k].x = x[j + k];

m1[k].y = y[j + k];

}

m[i].y = I(m[i].x, m1);

}

}

Console.WriteLine("Tochka {0:f}", m[i].x);

Console.WriteLine("f(x)={0:f}", m[i].y);

}

Console.ReadKey();

}

}

}