48818 (608794)

Файл №608794 48818 (Решение прикладных задач численными методами)48818 (608794)2016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

Кафедра №83

информатики и вычислительной математики

Дисциплина: «ИНФОРМАТИКА»

КУРСОВАЯ РАБОТА

Тема: «Решение прикладных задач численными методами»

Москва 2009 г.

ЦЕЛЬ РАБОТЫ:

Получение практических навыков по применению численных методов при решении прикладных задач на ЭВМ общего назначения, с использованием программ сложных циклических алгоритмов, включая редактирование программ в ЭВМ, отладку программ, выполнение расчетов на периферийные устройства.

Время: 12 часов.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

Работа состоит из 2-х частей.

Цель первой части курсовой работы: получить практические навыки в использовании численных методов решения не линейных уравнений используемых в прикладных задачах.

Для выполнения 1 части работы необходимо:

  • Составить программу и рассчитать значения функции в левой части нелинейного уравнения для решения задачи отделения корней;

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

  • Ввести программу в компьютер, отладить, решить задачу с точностью ε=0,0001 и вывести результат;

  • Предусмотреть в программе вывод на экран дисплея процессора получения корня.

Задание на выполнение первой части курсовой работы:

Вариант №21.

Уравнение: 0,25x3+x-1,2502=0:

Отрезок, содержащий корень: [0;2].

  1. Математическое описание численных методов решения

Метод деления отрезка пополам (метод дихотомии).

Этот метод позволяет отыскать корень уравнения с любой наперёд заданной точностью εε . искомый корень x уравнения уже отделен, т.е.указан отрезок [а, в] непрерывности функции f(x) такой, что на концах этого отрезка функция f(x) принимает различные значения:

f(a)*f(b)>0

В начале находится середина отрезка [ a, b ]:

и вычисляется значение функции в точке с, т.е. находится f(c). Если f(c)=0, то мы точно нашли корень уравнения. Если же f(c)≠0 ,то знак этой величины сравнивается со знаками функции y= f(x) в концах отрезка [ a, b ]. Из двух отрезков [ a, с], [ с, b ] для дальнейшего рассмотрения оставляется тот, в концах которого функция имеет разные знаки. С оставленным отрезком поступаем аналогичным образом. расчет прекращается, когда оставленный отрезок будет иметь длину меньше 2ε. В этом случае принимаем за приближенное значение корня середину оставленного отрезка и требуемая точность будет достигнута.

  1. График функции.

Для выделения корней рассчитаем значения функции на заданном отрезке [0,2] с шагом 0,0001 и по полученным данным построим график функции.

Как видно из рисунка график пересекает ось Х один раз, следовательно, на данном отрезке [ 0, 2] наше уравнение имеет один корень.

Алгоритмы нахождения корней уравнения

I. Cтруктурная схема алгоритма: Метод дихотомии





f(a0), f(b0)


n=0



C=an+bn

2



да

нет




нет


да

x=c


an+1= c ; bn+1= bn

an+1=an ; bn+1=c



n=n+1


да


нет



X=an+bn

2






Листинг программы имеет вид

#include

#include

double f(double x)

{

return 0.25*(pow(x,3))+x-1.2502;

}

int main(void)

{

int n=0;

double x,a=0.,b=2.,eps=0.0001;

while (fabs(a-b)>2*eps)

{

x=(a+b)/2,

n++;

printf("step=%3i x=%11.8lf f(x)=%11.8lf\n",n,x,f(x));

if (f(x)==0)

{

printf("Tothnii koreni x=%lf\nkolithestvo iteratsii n=%i\n",x,n);

return 0;

}

else if (f(a)*f(x)<0) b=x;

else a=x;

}

printf("Reshenie x=%11.8lf pri Eps=%lf\nkolithestvo iteratsii n=%i\n",x,eps,n);

return 0;

}

Метод хорд:

1. Этот метод заключается в том, что к графику функции проводится хорда. Находим точку пересечения с осью OX и опускаем из этой точки прямую параллельную OY. Из точки пе-ресечения прямой и графика проводим хорду и операция повторяется до тех пор, пока точка пересечения хорды с осью OX не приблизиться к корню функции до заданной погрешности.

Шаг первый:

Нас интересует точка пересечения с осью ОХ.

Сделаем допущение: х=x1

y=0

Введем обозначение

x0

f( )=f(x0)

Подставим в уравнение

Отсюда

x1=x0-

Шаг второй:

x2=x1-

Для n-го шага:

xn=xn-1-

Условием нахождения корня является:

2. Нелинейное уравнение и условие его решения: 0,25x3+x-1,2502=0:

3. График функции:

4. Схема алгоритма:


1




2


3




4


5


6





7


да

нет




8


9


10


11

12


5. Таблица идетификаторов:

Обозначение

Идентификатор

Тип

n

n

int

a

double

b

double

eps

double

x

x

double

f(x)

f(x)

double

6. Листинг программы:

#include

#include

double f(double x)

{

return 0.25*(pow(x,3))+x-1.2502;

}

int main(void)

{

FILE*jad;

jad=fopen("D:text.txt","w");

int n=0;

double x,a=0,b=2.,eps=0.0001,xn;

xn=a;

while (fabs(xn-x)>eps)

{

x=xn;

n++;

xn=x-f(x)*(b-x)/(f(b)-f(x));

printf("step=%3i x=%11.8lf f(x)=%11.8lf\n",n,xn,f(xn));

fprintf(jad,"step=%3i x=%11.8lf f(x)=%11.8lf\n",n,xn,f(xn));

}

printf("pribligennoe znathenie x=%lf pri Eps=%lf\nkolithestvo iterasii n=%i\n",xn,eps,n);

fprintf(jad,"pribligennoe znathenie x=%lf pri Eps=%lf\nkolithestvo iterasii n=%i\n",xn,eps,n);

fclose(jad);

return 0;

}

7. Листинг решения:

Анализ результатов:

метод дихотомии

метод хорд

значение корня

-0.28766

-0.287700

значение функции

-0.000045

-0.00002140

количество итераций

13

6

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

Часть 2

Использование численных методов решения дифференциальных уравнений для тактико-специальных задач

Вариант №21.

Задание на выполнения второй части курсовой работы:

Дифференциальное уравнение:

Точное решение уравнения:

Начальные условия: x0 = 0 , y0 =0, xmax=2.

Метод решения: метод Эйлера-Коши, Δx = 0,01; 0,005; 0,001.


Метод Эйлера-Коши

Метод Эйлера-Коши (или усовершенствованный метод Эйлера) является методом второго порядка и заключается в следующем. Интегральная кривая на каждом шаге интегрирования заменяется прямой с тангенсом угла наклона, равным среднему арифметическому тангенсов углов наклона касательных к искомой функции в начале и в конце шага. Вычисления проводятся в следующем порядке:

  1. Выбираем шаг интегрирования .

  2. Полагаем номер шага .

  3. Вычисляем , находим оценку для приращения функции на этом шаге методом Эйлера , , вычисляем среднее арифметическое тангенсов углов наклона и окончательно получаем:

.

  1. Если , то увеличиваем номер шага на единицу и повторяем п.3. В противном случае переходим к выполнению п.5.

  2. Оформляем полученный результат.

Достоинство метода – более высокая точность вычисления по сравнению с методом Эйлера. Недостаток – больший объем вычислений правых частей.

Таблица идентификаторов:

Обозначение

Идентификатор

Тип

s

s

int

i

i

int

x

x

float

xmax

x_max

float

x1

x1

float

Δx

h[i]

float

y

y

float

d

d

float

f(x)

f(x)

float

k

k(x,y)

float

K1

f1

float

K2

f2

float

K3

f3

float

K4

f4

float

Схема алгоритма:


6. Листинг программы:

#include

#include

int s,i;

double x, x1, x_max=2, y, d, q;

double h[3]={0.01,0.005,0.001};

double k(double x,double y )

{

return ((x)/(4+(pow(x,4))));

}

double e(double x)

{

return 0.25*atan(pow(x,2)/2);

}

double f1=k(x,y);

double yw=y+f1*h[i];

double r=x+h[i];

double fl=k(r,yw);

int main(void)

{

FILE*sev;

sev=fopen("E:result34.xls","w+");

for (i=0;i<=2;i++)

{

s=0; y=0;

fprintf(sev,"h(%i)=%lf\n",i,h[i]);

for(x=0;x<=x_max;x+=h[i])

{

s++;

x1=x+h[i];

y+=(f1+fl)*h[i]/2;

d=y-e(x1);// y- pribl. f(x)- tochnoe

printf(" step =%4.i x=%6.4lf \ty=%6.4lf yt=%6.4lf d=%10.8f\n",s,x1,y,e(x1),d);

fprintf(sev," \t step =\t%4.i\t x=\t%10.5lf\t y=\t%10.5lf\t yt=\t%10.5lf\t d=\t%10.5f\n",s,x1,y,e(x1),d);

}

}

fclose(sev);

return 0;

}

Вывод:

Интегрированная среда Visual С позволяет обрабатывать программы, записанные на языке С++ . Для программирования циклических алгоритмов были использованы операторы организации циклов с параметрами, решение использует форматируемый вывод и оператор присваивания, а также использовались операторы вызова функций. Чем больше шаг, тем точнее вычисления.

Характеристики

Тип файла
Документ
Размер
18,71 Mb
Тип материала
Учебное заведение
Неизвестно

Тип файла документ

Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.

Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.

Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее