Использование численных методов при решении инженерных задач

Федеральное агенство по образованию

Государственное образовательное  учреждение

Высшего профессионального образования

ПГТУ

Кафедра МСИ

 

 

 

 

Курсовая работа по дисциплине информатика

Тема: использование численных методов при решении инженерных задач

Вариант 5

 

 

 

 

 

 

 

 

 

 

 Работу Выполнил  студент группы

КПМ-10 Жолобова Д.О.

Проверила Завельон А.М.

 

 

 

 

 

 

 

 

Пермь-2011

 

 

Содержание

 

1)Геометрические преобразования                                                                  3

                                                             

2)аппроксимация неизвестных функций                                                         5

             

3)Решение линейных уравнений. Уточнение приближенных корней методом дихотомии                                                                                                          13

 

4)вычисление определенного интеграла                                                         17

 

5)Интегрирование. Интерполяционная формула Лагранжа.                        23

 

6) Решение систем линейных алгебраических

 уравнений методом Гаусса                                                                              27

 

7)Оптимизация                                                                                                   30

 

8) основная программа                                                                                      36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Геометрические  преобразования

 

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


 Аппроксимация


линейной функции.


 




 

 




 


 


 

 



 

 


 

 

 

 

 

 

 

 

 

 

 


 




 




 


 

 


 



 

 


 



 

 

 



 

 

 


 

 

 

 

 

 

 

 

 

 


 


 

 

 

 

 

 

 



 

 

 

 

Аппроксимация

 

Метод наименьших квадратов

 

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

X

X1

X2

Xn

Y

Y1

Y2

Yn


 

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

Особенности метода

  1. Наличие случайных ошибок измерения или, как говорят, наличие «шума» в эксперименте делает неразумным подбор такой формулы, которая точно описывала бы все опытные значения. Другими словами, график не должен проходить через все точки, а должен сглаживать «шум».

  1. Эмпирическую формулу обычно выбирают из формул определенного типа, например: y=ax+b; y=bxa; y=ax2+bx+c ... т. е. задача сводится к нахождению параметров a, b, c... формулы, в то время как вид формулы известен заранее из каких-либо теоретических соображений или из условия простоты аналитического представления.

 

Суть метода наименьших квадратов

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

 

S=∑ (yi-f(xi,a,b,c))^2

 

* Линейная функция y=ax+b

 

  Задача сводится  к следующему. Получен ряд значений  функции y1, y2, …,yn при соответствующих значениях аргумента x1, x2, …,xn. Необходимо найти значения a и b выражения y=ax+b.

  Выражение минимизируемой функции для этого случая примет вид:

 

S=∑ (yi-f (a*xi+b)) ^2

 

  Отыскание a и b сводится к решению системы уравнений:

   dS/da


   dS/db

dS/da=2*∑(yi-a*xi-b)*xi


dS/db=2*∑(yi-a*xi-bi)

 

  Раскроем знак суммы:


∑yi*xi-a*∑xi^2-b*∑xi=0

∑yi-a*∑xi-b*N=0

 

  Для того, чтобы  набрать суммы заполним таблицу:

i

xi

yi

xiyi

x2i

1

       

       

N

       

Σ

A

B

C

D




 

 

 

 

 

 

  Переобозначим суммы

C – aD – bA = 0


B – aA – bN = 0

  где значения A, B, C, D известны из таблицы.

aD + bA = C


aA + bN = B

  Определив значения a и b, мы решим поставленную задачу определения параметров выражения y=ax+b.

         

dD = DN – AA

 

 

da = CN – AB

 

 

db = DB – CA

 

 

a=da/dD

b=db/dD

 

 

 

 

* Степенная функция y=axb

Задача сводится к  следующему. Получен ряд значений функции y1, y2, …,yn при соответствующих значениях аргумента x1, x2, …,xn. Необходимо найти значения a и b выражения y=axb. Для этого прологарифмируем это выражение:

ln y = b ln x + ln a

и произведем замены:

ln x = x*

ln y = y*

ln a = a*

Тогда получим знакомое выражение для прямой линии:

y* = bx* + a*

Выражение минимизируемой функции  для этого случая примет вид:

 

S=∑ (yi-f(a*xi+b))^2

 

Далее методика расчетов проводится аналогично рассмотренному выше случаю.  Следует учесть, что необходимо набирать суммы:

i

Log xi

Log yi

Log xi Log yi

Log2xi

1

       

       

N

       

Σ

A

B

C

D




 

 

 

 

 

 

 

C – aD – bA = 0


B – aA – bN = 0

 

aD + bA = C


aA + bN = B

 

DD =            = DN – AA

 

Da = CN – AB

 

Db = DB – CA

 

a= (da/dD)

b= (db/dD)

 

*  Параболическая функция y=ax2+bx+c

 

Задача сводится к  следующему. Получен ряд значений функции y1, y2, …,yn при соответствующих значениях аргумента x1, x2, …,xn. Необходимо найти значения a и b и с выражения y=ax2+bx+c.

Выражение минимизируемой функции для этого случая примет вид:

S=∑ (yi-f(a*xi^2+b*xi+c))^2

 

Отыскание a и b сводится к решению системы уравнений:

dS/da=0


dS/db=0

dS/dc=0

 

Дифференцируем, чтобы найти минимумы:

dS/da=∑(yi-a*xi^2-b*xi+c)*xi^2=0


dS/db=∑(yi-a*xi^2-b*xi+c)*xi=0

dS/dc=∑(yi-a*xi^2-b*xi+c)=0

 

Раскроем знак суммы:


∑yi*xi^2-a*∑xi^4-b*∑xi^3-c*∑xi^2=0

∑yi*xi^2-a*∑xi^4-b*∑xi^3-c*∑xi^2=0

∑yi-a*∑xi^2-b*∑xi*yi-c*N=0

Для того, чтобы набрать  суммы заполним таблицу:

 

i

xi

yi

xiyi

1

             

             

N

             

Σ

A

B

С

D

E

F

G




 

 

 

 

 

 

 

Переобозначим суммы:

       G – aE – bD – cC = 0


 

        F – aD – bC – cA = 0

 

        B – aC – bA – cN = 0

 

где A, B, C, D, E, F, G известны из таблицы.

Определив значения a и b и c, мы решим поставленную задачу определения параметров выражения y=ax2+bx+c.

 

DD  = ECN+DAC+DAC-CCC-EAA-DDN

 

 

Da = GCN+FAC+DAB-CCB-GAA-FDN

 

 

Db = EFN+GAC+DBC-CCF-EAB-DGN

 

 

Dc = ECB+DFC+DAC-CCG-DDB-EFA

 

 

 

a = da/dD

 

b = db/dD

 

c =   dc/Dd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 Аппроксимация


линейной функции.

 

 

 

 

 

 


 

 






 

 



 

 



 

 



 


 


 


 



 


 


 


 






 


 


 


 

Аппроксимация степенной  функции.




 





 



 

 







 

 



 

 


 

 

 



 


 


 


 





 

 


 


 


 








 


 


Аппроксимация параболической функции.

 



 








 

 







 

 



 




 

 



 



 


 


 



 




 


 




 


 



 

 


 


 

 

Решение уравнения вида F(x)=0

 

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

Пусть дано уравнение: f(x)=0, где функция f(x) определена и непрерывна в некотором конечном или бесконечном интервале a<x<b. Всякое значение с, обращающее функцию f(x) в ноль, f(с)=0 называется корнем уравнения f(x)=0 или корнем функции f(x).

Предполагается, что уравнение f(x)=0 имеет лишь изолированные корни, т.е. для каждого корня уравнения существует окрестность, не содержащая других корней этого уравнения.

Приближенное нахождение изолированных действительных корней уравнения f(x)=0 обычно складывают из двух этапов:

  1. Определение корней уравнения, т.е. установление возможных тесных промежутков [a,b], в которых содержится один или несколько корней уравнения f(x)=0.

А) графическим способом

Б) аналитическим способом

  1. Уточнение приближенных корней, т.е. сужение интересующего нас интервала до допустимой погрешности:

А) Метод половинного  деления (метод бисекций)

Б) Метод касательных (метод Ньютона)

В) Метод повторений (метод  итераций)

 

Определение корней

Для определения корней используется известная теорема  из математического анализа о  свойстве функции непрерывной на замкнутом промежутке:

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

В общем случае корней уравнения может быть несколько с, с', c"…

 

 

 

 

 

 

 


 

 

 


 


 

 

 

 

Корень с заведомо будет единственным, если производная f'(x) существует и сохраняет постоянный знак внутри интервала [a, b], т.е. если f'(x)>0 (или f'(x)>0) при a<x<b .

Процесс определения корней начинается с установления знаков функции f(x) в граничных точках x=a и x=b области ее существования.

Затем определяются знаки функции f(x) в ряде промежуточных точек x=a1, a2,…, выбор которых учитывает особенности функции f(x). Если окажется, что f(ak)f(ak+1)<0, то в силу теоремы в интервале [ak, ak+1] имеется корень уравнения f(x)=0.

Уточнение приближенных корней методом половинного деления

Пусть дано уравнение f(x)=0 , где функция f(x) непрерывна на [a, b] и f(a)f(b)<0.

Для нахождения корня уравнения f(x)=0 , принадлежащего отрезку [a, b], делим этот отрезок пополам. Если f((a+b)/2)=0, то (a+b)/2 является корнем уравнения. Если f((a+b)/2)=0 , то выбираем ту из половин [a, (a+b)/2] или [(a+b)/2, b] на концах которой функция имеет противоположные знаки. Новый суженый отрезок [a1, b1] снова делим пополам и проводим то же рассмотрение и т.д. В результате получаем на каком-либо этапе или точный корень или же бесконечную последовательность вложенных друг в друга отрезков [a1, b1], [a2, b2], …, [an, bn], … таких что f(an)f(bn)<0,  (n=1, 2 …) и bn – an=1/2n (b – a).

Так как левые концы a1, a2, …, an… образуют монотонную неубывающую ограниченную последовательность, а правые концы b1, b2, …, bn… - монотонную невозрастающую ограниченную последовательность, то в силу равенства              bn–an=1/2n (b – a) существует общий предел 

lim an=lim bn,

n→∞     n→∞

который является корнем уравнения f(x)=0.

Если корни уравнения не отделены на отрезке, то таким способом можно  найти один из корней.

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

Метод деления отрезка [a, b] пополам реализуется на ЭВМ следующим алгоритмом:

  1. Проверяем условие b – a< e (допустимой погрешности); если да, то корень (b – a)/2, если нет, то продолжаем вычисления
  2. Находим для x=a значение функции f(с)
  3. Определяем значение c=(a+b)/2
  4. Находим для x=c значение функции f(c)
  5. Проверяем условие f(a)f(c)<0 (имеют одинаковые знаки). Если да, то a=c; если нет – b=c
  6. Далее переходим к пункту 1

 

Особенность метода заключается  в том, что определение корней производится вручную.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение корней .



 



 



 

 





 


 



 


 


 




 

 

 



 

 


 


 

 


 

 


 

 

 

 


 


 


 




 

 


       *  Интегрирование

 

Определенный интеграл       с пределами интегрирования a и b можно трактовать как площадь фигуры, ограниченной ординатами a и b, осью абсцисс х и графиком подынтегральной функции f(x).





 


 

 

 

 

Обыкновенный определенный интеграл, у которого известна его  первообразная F(x), вычисляется по формуле Ньютона-Лейбница I=F(b) – F(a).

Поэтому достаточно вычислить  значения функции F(x).

Численное интегрирование применяется, если нахождение F(x) сложно или невозможно. Оно заключается в интерполяции f(x) на отрезке [a, b] подходящим полиномом, для которого определенный интеграл вычисляется по формулам численного интегрирования. Обычно отрезок [a, b] разбивается на n частей, к каждой из которых применяется соответствующая простая формула. Таким образом получают составные (или сложные) формулы численного интегрирования.

 

 

 

 

          * Метод прямоугольников

 

Метод прямоугольников  – простейший прием численного интегрирования, при котором функция y=f(x) заменяется интерполяционным многочленом нулевого порядка. Для повышения точности интегрирования отрезок [a, b] разбивается на n частей и формула прямоугольника применяется к каждому отрезку. Таким образом, площадь криволинейной трапеции заменяется суммой площадей n прямоугольников. Стороны каждого i-го прямоугольника равны (b – a)/n yi

 

 

 

 

 

 

               1)по левой стороне

 

S=(b-a)/n*∑yi   при i=0

 

 

 

 

2) по правой стороне 

 

S=(b-a)/n*∑yi   при i=0       

 

 

 

 

 

 

                            *  Метод трапеций

 

Простой и вместе с тем хороший  способ состоит с следующем: промежуток интегрирования [a, b] разбиваем на n малых равных частей. Интеграл по каждому малому промежутку на среднее арифметическое значений подынтегральной функции в начале и в конце промежутка. Этот способ называется способом трапеций, потому что получается такой результат, как если бы в каждом малом промежутке дуга графика y=f(x) заменялась на ее хорду, а площадь под этой дугой (величина интеграла) заменялась площадью получающейся трапеции с вертикальными основаниями

Соответствующая формула имеет  вид:

S=(b-a)/n*(y0/2+y1+…+yn-1+yn/2)

 

 

     * Метод Симпсона

 

Еще более эффективную  формулу можно получить, если кривую y=f(x) на малом интервале заменить параболой, т.е. графиком квадратичной зависимости. Разобьем промежуток интегрирования от x=a до x=b на четное количество n=2m равных промежутков. Границы промежутков пусть будут x0=a, x1, x2, …, x2m=b

 

Длину одного промежутка обозначим через h, так что

x0=a,

x1=x0+2h

x2=x1+2h=x0+4h,

……………,

x2m=x2m-2+2h=x0+2mh=b

Рассмотрим

 

 

т.е. вклад в исходный интеграл от первых двух промежутков. Кривую y=f(x) на промежутке от x=x0 до x=x2 заменим параболой, проходящей через точки (x0;y0), (x1;y1), (x2;y2), и площадь под кривой приближенно заменим площадью под параболой.

Будем искать уравнение параболы в  виде y=Ax2+Bx+C.

Площадь криволинейной трапеции, изображенной  определяется:

∫(A*x^3+B*x+C)dx=(A*x^3/3+B*x^2/2+C*x)│=h/3*(2*A*h+6*C)





 


 

Значения ординат для x0, x1, x2 определяются:

y0=Ah2-Bh+C

y1=C

y2=Ah2+Bh+C

 Домножив обе части второго уравнения на 4, суммируем левые и правые части: y0+4y1+y2=2Ah2+6С.

Используя полученное выражение, выражение 

∫(A*x^3+B*x+C)dx= h/3*( y0+4y1+y2)

Для интеграла по всему  промежутку от x=a до x=b получим:

 h=(b-a)/(2*m)

при помощи этой формулы  мы находим h в методе Симпсона.

 

 

 

 

 

 

 

 

 

 

 

 

Метод прямоугольников.(слева)

 

 


 



 

 



 


 


 


 


 


 




 


 


 


 


 








 

 

 

 

 

 

 

 

 

 

Метод прямоугольников.(справа)

 

 


 



 

 



 


 


 


 


 


 




 


 


 


 


 








 

 

 

 

 

 

 

 

 

 

 

 

 Метод Симпсона.


 



 

 



 


 


 


 


 


 




 


 


 


 


 














 


 

                                                                           

 

 

Метод трапеций.

 

 

 


 



 

 



 


 


 


 


 


 




 


 


 


 


 











 

                                                                                     

                    Интерполяция

 

Постановка  задачи интерполирования

Постановка задачи интерполирования заключается в следующем. На  отрезке  [a, b] заданы n+1 точки x0, x1, …, xn, которые называются узлами интерполяции, и значения некоторой функции f(x) в этих точках:    f(x0)=y0, f(x1)=y1,…, f(xn)=yn

Требуется построить функция F(x) (интерполирующую функцию), принадлежащую известному классу и принимающую в узлах интерполяции те же значения, что и f(x), т.е. такую, что :    F(x0)=y0, F(x1)=y1,…, F(xn)=yn

Геометрически это обозначает, что нужно найти кривую y=F(x) некоторого определенного типа, проходящую через заданную систему точек Mi(xi,yi) (i=0,1,2,…).

В общей постановке задача может  иметь бесчисленное множество решений  или совсем не иметь решений.

Однако эта задача становится однозначной, если вместо произвольной функции F(x) искать полином Pn(x) степени не выше n, удовлетворяющий условиям: F(x0)=y0, F(x1)=y1,…, F(xn)=yn , т.е. такой, что Pn(x0)=y0, Pn(x1)=y1,…, Pn(xn)=yn.

Полученную интерполяционную формулу y=F(x) обычно используют для приближенного вычисления значений данной функции f(x) для значений аргумента x, отличных от узлов интерполирования. Такая операция называется интерполированием функции f(x).

При этом различают интерполирование в узком смысле, когда x принадлежит [x0,xn], т.е. значение x является промежуточным между x0 и xn ,и экстраполирование, когда x не принадлежит [x0,xn]. В дальнейшем под термином интерполирование мы будем понимать как первую, так и вторую операции.

Использование численных методов при решении инженерных задач