Методы вычислений

Разработка программы, которая на отрезке, по формуле функции строит интерполяционную таблицу размерности с неравномерным шагом так, чтобы узлы интерполяции совпадали с нулями полинома Чебышева. Алгоритм для вычисления приближенного значения интеграла.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.06.2016
Размер файла 315,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

[Введите текст]

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Комсомольский-на-Амуре государственный технический университет»

Институт новых информационных технологий

Факультет инженерно-экономический

Кафедра МОП ЭВМ

Расчетно-графическое задание

По дисциплине «Методы вычислений»

2015

Задание 1

Разработать программу, которая на отрезке [-1,1] по формуле функции f(x) строит интерполяционную таблицу размерности n +1 с неравномерным шагом так, чтобы узлы интерполяции совпадали с нулями полинома Чебышева Tn(x) степени n +1, и интерполяционный полином Лагранжа.

Для контроля распечатать интерполяционную таблицу и значения интерполяционного полинома в узлах сетки.

Вычислить и выдать на печать значение интерполяционного полинома и значение функции f(x) при х = 0,1.

Код программы

// Подключаемые библиотеки

#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include < windows.h>

// заданная функции

float f (float x)

{

return (exp(x) - 3*x + 1);

}

// значение построенного интерполяционного полинома в форме Лагранжа

float g (float X, float *x, float n)

{

double p,s=0;

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

{

p = 1;

for (int j=0; j<=n; j++)

{

if (i==j) continue;

p *= (X-x[j])/(x[i]-x[j]);

}

s += p*f(x[i]);

}

return s;

}

// Построение по формуле функции f(x) интерполяционной таблицы размерности n+1(узлы интерполяции совпадают с нулями полинома Чебышева)

// Массив x - узлы интерполяции (нули полинома Чебышева),

// Массив y - значения функции f(x) в узлах сетки.

// Массив z - значения интерполяционного полинома

void xyz (float n, float *x, float *y, float *z)

{

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

{

x[i] = -cos(3.14159*(2*i+1)/(2*(n+1)));

y[i] = f(x[i]);

}

for (int i=0; i<=n; i++) z[i] = g(x[i],x,n);

printf ("\t x y(x) g(x)\n");

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

{

if (i==18) // при заполнении страницы ждем нажатия клавиши

{

printf ("Для продолжения нажмите любую клавишу...\n");

_getch ();

printf ("\t x y(x) g(x)\n");

}

printf ("\t% .3f%12f%12f\n", x[i], y[i], z[i]);

}

}

void main (void)

{

setlocale(LC_ALL, "Russian"); //Для ввода русских символов

float n = 25, *x, *y, *z;

// динамически создаем массивы из n+1 элементов

x = new float[n+1];

y = new float[n+1];

z = new float[n+1];

printf ("Интерполяционная таблица (n=25)\n");

xyz (n, x, y, z);

printf ("\nЗначение функции при x = 0.1: %f", f(0.1));

printf ("\nЗначение интерполяционного полинома при x =0.1:%f\n",g(0.1, x, n));

// освобождаем память, выделенную под массивы

delete x; delete y; delete z;

system("pause"); // Для ожидания прекращения работы

}

Результат работы программы

Рис. 1

Задание 2

интеграл размерность полином чебышев

Построить алгоритм для вычисления приближенного значения интеграла по формуле Симпсона при n = 8 иn = 16, где n - это число интервалов, и оценки погрешности по правилу Рунге. Разработать программу, которая реализует этот алгоритм. На печать выдать два приближенных значения интеграла (при n = 8 и n = 16) и погрешность, найденную по правилу Рунге.

Код программы

//Подключаемые библиотеки

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <windows.h>

#include <iostream>

// Заданная функция

float f1 (float x) {return 1/sqrt(2*x*x + 1.3);}

void main(void)

{

setlocale(LC_ALL, "Russian"); //Для ввода русских символов

/* a и b -границы отрезка

n - число отрезков

h - шаг

Q1 - значение интеграла при n=8

Q2 - значение интеграла при n=16

*/

float a,b,h,Q1,Q2,Q; int n,i; // объявили переменные

printf("\n\t\t Численное интегрирование функций");

puts("\n\n*** Формула Симпсона ***");

a = 1; b = 2.8;

n = 8; h = (b-a)/n;

Q1 = f1(a)+f1(b);

float s1=0, s2=0, x=a;

for (i=1; i<n; i++)

{

x += h;

if (i%2)

// сумма значений функции в точках с нечетными номерами

s1 += f1(x);

else

// сумма значений функции в точках с четными номерами

s2 += f1(x);

}

Q1 = h/3*(Q1+4*s1+2*s2);

printf ("\nn= 8:");

printf ("\n Приближенное значение интеграла: %.7f", Q1);

n = 16;

h = (b-a)/n;

Q2 = f1(a)+f1(b);

s1=0; s2=0; x=a;

for ( i=1; i<n; i++)

{

x += h;

if (i%2)

// сумма значений функции в точках с нечетными номерами

s1 += f1(x);

else

// сумма значений функции в точках с четными номерами

s2 += f1(x);

}

Q2 = h/3*(Q2+4*s1+2*s2);

printf ("\nn= 16:");

printf ("\n Приближенное значение интеграла: %.7f\n", Q2);

Q= fabs(Q1-Q2)/15;

printf("\nОценка погрешности по правилу Рунге: R=%.2e\n",Q);

system("pause"); // Для ожидания прекращения работы

}

Результат работы программы

Рис. 2

Задание 3

Построить алгоритм для приближенного решения задачи Коши для обыкновенного дифференциального уравнения  с начальным условием , на отрезке [0,1], с шагом h = 0.1 методом Рунге-Кутта четвертого порядка. Разработать программу, которая реализует этот алгоритм и выдает на печать таблицу приближенных и точных значений решения.

Код программы

//Подключаемые библиотеки

#include <conio.h>

#include <math.h>

#include <stdio.h>

#include <windows.h>

#include <iostream>

/* Глобальные переменные и массивы:

n - число узлов сетки

x[n] - массив узлов сетки

y[n] - массив значений точного решения

u[n] - массив значений приближенного решения

h - шаг сетки

m,k - параметры, входящие в формулу точного решения

K1,K2,K3,K4 - коэффициенты метода Рунге-Кутта

*/

const int n = 11;

double x[n], y[n], u[n], h = 0.1,

m = 1.1, k = 2.5, K1, K2, K3, K4;

// возвращает значение функции (правой части ДУ)

double f (double x,double y) { return -m*y+exp(k*x); }

void main (void)

{

setlocale(LC_ALL, "Russian"); //Для ввода русских символов

printf("Численное решение задачи Коши для обыкновенных\nдифференциальных уравнений первого порядка");

// Метод Рунге-Кутта четвертого порядка

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

{

double a = i*h; x[i] = a;

// формула точного решения

y[i] = (exp((k+m)*a)/(k+m)+1-1/(k+m))/exp(m*a);

}

u[0] = 1;

for(int i=0; i<n-1; i++)

{

K1=f(x[i], u[i]);

K2=f(x[i]+h/2, u[i]+h/2*K1);

K3=f(x[i]+h/2, u[i]+h/2*K2);

K4=f(x[i]+h, u[i]+h*K3);

// вычисление приближенного решения

u[i+1] = u[i]+h/6*(K1+2*K2+2*K3+K4);

}

// Вывод результатов на экран

printf ("n\n\n\t\t\t\Результаты расчета:\n\n\n");

printf ("\nУзлы сетки\tТочное решение\tПриближенное решение\n");

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

{

printf ("\n%10.2f\t% -14.4f\t% -20.4f\t", x[i], y[i], u[i]);

}

printf("\n");

system("paus

Результат работы программы

Рис. 3

Список использованных источников

1. Бахвалов Н.С. Численные методы / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. -М.: Наука, 1987. - 600с.

2. Боглаев Ю.П. Вычислительная математика и программирование / Ю.П. Боглаев. -М.: Высшая школа, 1990.-544с.

3. Жидков Е.Н. Вычислительная математика / Е.Н. Жидков. -М.: Академия, 2010.- 208с.

Размещено на Allbest.ru


Подобные документы

  • Методика разработки и листинг программы для вычисления значений функции F(x) на отрезке [а, Ь] с заданным шагом. Вычисление значения выражения по формуле. Расчет параметров равностороннего треугольника. Порядок формирования квадратной матрицы порядка.

    контрольная работа [425,1 K], добавлен 10.03.2014

  • Математическая модель и методика разработки программного модуля для вычисления приближенного значения бесконечной суммы с точностью до Е=0,05, если x принимает значения на отрезке [a,b] с шагом h. Порядок проверки программного модуля на наличие ошибок.

    курсовая работа [228,9 K], добавлен 08.09.2010

  • Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.

    курсовая работа [990,9 K], добавлен 15.06.2009

  • Понятие и характеристика некоторых методов интерполяции. Вычисление значения функции между заданными точками несколькими методами. Алгоритм линейной интерполяции. Алгоритм локальной интерполяции по формуле Лагранже. Инструкция пользования программой.

    курсовая работа [186,5 K], добавлен 30.05.2015

  • Особенности применения компьютерных программ Pascal, Excel, MathCAD и Delphi для вычисления значения функции y(x) с заданным промежутком и шагом. Виды результатов вычислений, их сравнение и вывод. Изображение блок-схемы алгоритма решения задания.

    контрольная работа [760,0 K], добавлен 08.03.2011

  • Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.

    контрольная работа [148,1 K], добавлен 08.11.2013

  • Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.

    курсовая работа [834,6 K], добавлен 14.04.2019

  • Требования к аппаратным ресурсам персонального компьютера. Расчет цены и прибыли на программное средство. Процедура нахождения значения интеграла методом Симпсона, трапеции, прямоугольников. Формы для ввода и вывода данных с доступным интерфейсом.

    дипломная работа [7,4 M], добавлен 11.06.2012

  • Составление блок-схемы и алгоритма программы для решения уравнения с приближенным значением корня по методу Ньютона, расчета приближенного значения интеграла по формуле трапеций, вычисления уравнения длины вектора. Типы формул общего члена суммы.

    курсовая работа [41,3 K], добавлен 15.12.2012

  • Средства Delphi для разработки Windows приложений. Математическая формулировка задачи, описание программы вычисления определенного интеграла по формуле левых прямоугольников. Руководство пользователя, методика испытаний продукта. Листинг программы.

    курсовая работа [178,1 K], добавлен 14.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.