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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Решение линейных и нелинейных уравнений,вычисление определенного интеграла

Информация:

Тип работы: курсовая работа. Добавлен: 11.05.2012. Сдан: 2011. Страниц: 10. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Федеральное агентство по образованию  Российской Федерации
Государственное образовательное  учреждение
Тульский  государственный  университет 

Кафедра «Аэрологии, охраны труда и окружающей среды» 
 
 
 

ИНФОРМАТИКА 

Курсовая  работа 
 
 
 
 
 
 

                                                            Выполнил:ст. гр. 320391
    Cарыев  О.М. 

                                                                          Проверил:
    К.т.н., проф. Еганов В.М. 
 
 
 
 

ТУЛА 2010
СОДЕРЖАНИЕ
1. Решение нелинейного  уравнения методом хорд ………………..3
1.1. Математическое  обоснование метода………………………........3
1.2. Блок-схема  алгоритма решения задачи……………………….....5
2. Решение системы  линейных уравнений методом Зейделя…….6
2.1. Математическое  обоснование задачи…………………………….6
2.2. Блок-схема  алгоритма решения задачи………………………….9
3. Вычисление определенного  интеграла методом правых……...10 прямоугольников
3.1. Математическое  обоснование задачи…………………………...10
3.2. Блок-схема  алгоритма решения задачи………………………....13
Приложение 1. Листинг программы…………………………………14
Результат работы программы…………………………………………16
Приложение 2. Листинг  программы…………………………………17
Результат работы программы……………………………………........20
Приложение 3. Листинг программы…………………………………22
Результат работы программы………………………………………....24
Cписок литературы……………………………………………………..25 
 
 
 

1. Решение нелинейного  уравнения методом  хорд

1.1. Математическое обоснование  метода

    При решении инженерных зaдaч встречaются aлгебрaические и трaнсцендентные урaвнения, решение которых может предстaвлять собой сaмостоятельную зaдaчу или быть состaвной чaстью более сложных зaдaч. В обоих случaях применение численного методa позволяет быстро и эффективно добиться решения зaдaчи.
    Алгебрaические урaвнения имеют n решений, трaнсцендентные – неопределённое число решений. Урaвнения, содержaщие только суммы целых степеней x, нaзывaются aлгебрaическими. Их общий вид anxn+an-1xn-1+...+a1x+a0=0 .
    Нелинейные  урaвнения, содержaщие тригонометрические функции или другие специaльные функции, нaпример, exp, нaзывaются трaнсцендентными.
    Если  отсутствует aнaлитическое решение нелинейного урaвнения или оно очень сложно, применяют численные методы, в которых, кaк прaвило, применяются итерaционные aлгоритмы. В итерaционных методaх зaдaётся процедурa решения в виде многокрaтного применения некоторого aлгоритмa. Полученное решение всегдa является приближённым, хотя может быть сколь угодно близким к точному.
    Пусть нa отрезке [a,b] дaнa непрерывнaя функция y=f(x), причем знaчения f(a) и f(b) имеют рaзные знaки. Тогдa aбсциссa точки пересечения грaфикa функции y=f(x) с осью X будет корнем урaвнения f(x)=0. Другими словaми, требуется нaйти тaкое знaчение x, при котором знaчение функции f(x) будет рaвно нулю.
    Численными  методaми знaчение корня определяется с погрешностью, не превосходящей дaнного положительного, достaточно мaлого числa ?. Инaче говоря, если v – истинное знaчение корня, при котором f(v)=0, то требуется определить тaкое число w, при котором a=
    Первый  этaп решения состоит в отыскaнии облaсти существовaния корня, т.е. отрезков нa оси aбсцисс, в концaх которых функция имеет рaзные знaки. Для этого вычисляются знaчения функции в точкaх, рaсположенных через рaвные интервaлы нa оси x. Это делaется до тех пор, покa не будут нaйдены двa последовaтельных знaчения функции f(xn) и f(xn+1), имеющих противоположные знaки, т.е. f(xn)*f(xn+1)<0. Тaким обрaзом, при a = xn, b = xn+1, уточнение корней будет производиться нa отрезке [a,b]. Для решения этой зaдaчи применяются методы половинного деления, кaсaтельных (Ньютонa), хорд и секущих.
    В основе метода хорд лежит линейная интерполяция по двум значениям функции  f(x), имеющим противоположные знаки. Через точки, соединяющие значения функции f(a) и f(b) на концах отрезка [a,b], проводят прямую, которая пересекает ось X в точке
    
    Значение  функции f(x) сравнивается со значениями функций f(a) и f(b) и в дальнейшем используется вместо того из них, с которым оно совпадает по знаку. Если значение f(x) недостаточно близко к нулю, то вся процедура повторяется до тех пор, пока не будет достигнута необходимая степень сходимости ?. На рисунке процесс решения показан графически.
 
 1.2. Блок-схема алгоритма  решения задач

     2. Решение системы  линейных уравнений  методом Зейделя.

2.1. Приведение системы  к виду, удобному  для итераций.
  Для того чтобы применить метод Зейделя к решению системы линейных алгебраических уравнений
      Ax = b
с квадратной невырожденной матрицей A, необходимо предварительно преобразовать эту систему к виду
      x = Bx + c.
Здесь B – квадратная матрица с элементами bij (i, j = 1, 2, …, n), c – вектор-столбец с элементами cij (i = 1, 2, …, n).
      В развернутой форме записи система  имеет следующий вид:
      x1 = b11x1 + b12x2 + b13x3 + … + b1nxn + c1
      x2 = b21x1 + b22x2 + b23x3 + … + b2nxn + c2
      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
      xn = bn1x1 + bn2x2 + bn3x3 + … + bnnxn + cn
Вообще  говоря, операция приведения системы к виду, удобному для итераций, не является простой и требует специальных знаний, а также существенного использования специфики системы.
Самый простой  способ приведения системы к виду, удобному для итераций, состоит в  следующем. Из первого уравнения  системы выразим неизвестное  x1:
      x1 = a11–1 (b1 a12x2a13x3 – … – a1nxn),
из второго  уравнения – неизвестное x2:
      x2 = a21–1 (b2 a22x2a23x3 – … – a2nxn),
и т. д. В  результате получим систему
      x1 =  b12x2b13x3 + … + b1,n–1xn–1b1nxnc1 ,
      x2 = b21x1 +  b23x3 + … + b2,n–1xn–1b2nxnc2 ,
      x3 = b31x1b32x2 +  … + b3,n–1xn–1b3nxnc3 ,
      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
      xn = bn1x1bn2x2bn3x3 + … + bn,n–1xn–1 +  cn ,
в которой на главной диагонали матрицы B находятся нулевые элементы. Остальные элементы выражаются по формулам
      bij = –aij / aii, ci = bi / aii (i, j = 1, 2, …, n, j ? i)
      Конечно, для возможности выполнения указанного преобразования необходимо, чтобы диагональные элементы матрицы A были ненулевыми.
1.2.1. Описание метода.
 Введем  нижнюю и верхнюю треугольные  матрицы
  0 0 0 … 0  0 b12 b13 … b1n
            b21 0 0 … 0  0 0 b23 … b2n
      B1b31 b32 0 … 0 ,  B2 =  0 0 0 … b3n
            .   .   .   .   .   .   .  .   .   .   .   .   .   .
  bnbnbn… 0  0 0 0 … 0
      Заметим, что B = B1 + B2 и поэтому решение x исходной системы удовлетворяет равенству
      x = B1x + B2 x + c .
      Выберем начальное приближение x(0) = [x1(0), x2(0), …, xn(0)]T. Подставляя его в правую часть равенства при верхней треугольной матрице B2 и вычисляя полученное выражение, находим первое приближение
      x(1) = B1x(0) + B2x(1)
Подставляя  приближение x(1), получим
      x(2) = B1x(1) + B2x(2)
Продолжая этот процесс далее, получим последовательность x(0), x(1), …, x(n), … приближений к вычисляемых по формуле
      x(k+1) = B1(k+1) + B2(k) + c
или в  развернутой форме записи
      x1(k+1) =  b12x2(k)b13x2(k) + … + b1nxn(k)c1 ,
      x2(k+1)b21x1(k+1) +  b23x3(k) +  … + b2nxn(k)c2 ,
      x3(k+1)b31x1(k+1)b32x2(k+1) +  … + b3nxn(k)c3 ,
      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
      xn(k+1)bn1x1(k+1)bn2x2(k+1)bn3x3(k+1) + … +  cn .
      Объединив приведение системы к виду, удобному для итераций и метод Зейделя  в одну формулу, получим
      xi(k+1) = xi(k)aii–1(?j=1i–1 aijxj(k+1) + ?j=1n aijxi(k)bi).
Тогда достаточным  условием сходимости метода Зейделя  будет
      ?j=1, j?i n | aij | < | aii |
(условие доминированния диагонали).
      Метод Зейделя иногда называют также  методом Гаусса-Зейделя, процессом Либмана, методом последовательных замещений.

  2.2. Блок-схема алгоритма решения задачи


3. Вычисление определенного  интеграла методом  правыхпрямоугольников
3.1Метод прямоугольников
     Многие  инженерные задачи, задачи физики, геометрии  и многих других областей человеческой деятельности приводят к необходимости  вычислять определенный интеграл вида    где f(x) -данная функция, непрерывная на отрезке [a; b]. Если функция f(x) задана формулой и мы умеем найти неопределенный интеграл F(x), то определенный интеграл вычисляется по формуле Ньютона-Лейбница:  
Если же неопределенный интеграл данной функции мы найти не умеем, или по какой-либо причине не хотим воспользоваться формулой Ньютона-Лейбница или если функция f(x) задана графически или таблицей, то для вычисления определенного интеграла применяют приближенные формулы. Для приближенного вычисления интеграла можно использовать метод прямоугольников (правых, левых, средних). При вычислении интеграла следует помнить, каков геометрический смысл определенного интеграла. Если f(x)>=0 на отрезке [a; b], то численно равен площади фигуры, ограниченной графиком функции y=f(x), отрезком оси абсцисс, прямой x=a и прямой x=b (рис. 1.1) Таким образом, вычисление интеграла равносильно вычислению площади криволинейной трапеции.

 

Разделим  отрезок [a; b] на n равных частей, т.е. на n элементарных отрезков. Длина каждого элементарного отрезка .
Точки деления  будут: x0=a; x1=a+h; x2=a+2*h, ... , xn-1=a+(n-1)*h; xn=b.
Числа y0, y1, y2, ... , yn являются ординатами точек графика функции, соответствующих абсциссам x0, x1, x2, ... , xn (рис. 1.2).
Строим  прямоугольники. Это можно делать несколькими способами: 

Левые прямоугольники (слева  на право) 
 
 

Правые  прямоугольники (построение справа на лево)  
 


Средние прямоугольники (посредине)
 

Из рис. 1.2 следует, что площадь криволинейной трапеции приближенно заменяется площадью многоугольника, составленного из n прямоугольников. Таким образом, вычисление определенного интеграла сводится к нахождению суммы n элементарных прямоугольников.   

       
              h=(b-a)/n –ширина прямоугольников
Формула левых прямоугольников:
(1.3)
Формула правых прямоугольников:
(1.4)
Формула средних  прямоугольников.
 Sсредих= (Sправых + Sлевых) /2
(1.5) 
 
 
 
 

3.2. Блок-схема алгоритма  решения задачи
 

Приложение 1. Листинг программы
uses  crt ;
const r:array[0..1] of string = (
       'Готово',
       'Ошибка произошла при расчете');
 var epselon,x,a,b:double;
     i:integer;
 function f(x:double):double;
 begin
  f:=10.88*Ln(X+8.67)+18.73
 end;
 function getx(x1,x2,eps:double;var x:double):integer;
 var err,i:integer;
     a,b,c,ya,yb,yc:double;
 begin
    a:=x1;b:=x2;
    ya:=f(a);
    yb:=f(b);
    i:=100;
    err:=0;
    repeat
     c:=a-ya*(b-a)/(yb-ya);
     yc:=f(c);
     dec(i);
     if (ya*yc>0) then begin
       ya:=yc;a:=c
     end else begin
       yb:=yc;b:=c
     end;
    until (abs(yc)<eps) or (i<0);
    x:=c;
  if abs(yc)>eps then err:=1;
  getx:=err;
 end;
begin
      clrscr;
      writeln('Программа решения уравнения методом хорд');
      writeln('10.88*Ln(X+8.67)+18.73 =0    -8.67 < x < -4.25');
      a:=-8.66;b:=-4.25;
      write('Точность =  0.0078');epselon:= 0.0078;
      i:=getx(a,b,epselon,x);
      writeln;
      writeln(r[i]);
      if i=0 then writeln('x = ',x:6:6);
      readkey;
end.
 


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

Программа решения  задач методом хорд
10.88 * Ln(x+8.67)+18.73=0      -8.67< x < -4.25
Точность = 0.0078
Готово
X = -8.491092 
 
 
 
 
 

 

Приложение 2. Листинг программы
Uses CRT;
Type
    AA = Array[1..7, 1..7] of Double;
    BB = Array[1..7] of Double;
const
     a:AA=((-14.3830, -1.1000, -4.0840, -3.5570, -0.3710, +4.5410, -4.4980),
           (-0.2050, -107.3690, -7.2000, +2.8230, -0.4860, 3.7050, +1.8070),
           (-8.3540, -2.6070, +4.3700, +0.3400, +5.7650, 2.1730, -6.2890),
           (+4.7380, +2.9230, -4.8780, +73.5870, -6.6680, -3.9440, -6.6090),
           (+0.3920, -1.5630, +2.1900, +0.5390, +8.0940, 5.7290, +8.7180),
           (-5.0750, -6.1790, +1.3430, -2.7580, -4.7830, -84.1700, +6.1430),
           (-5.0370, +3.7960, +5.9310, -2.1650, +3.3910, 7.2770, -36.6130));
  b:BB=(358.6024, 268.4247, 287.6628, 831.9947, -611.1133, 1492.8992,  1408.9475);
Procedure p1(n:integer;var a: AA; var b: BB);
Var
   i, j: Integer;
begin
 writeln('Система уравнений:');
 for i:=1 to n do begin
  for j:=1 to n do begin
    if (a[i, j]>0) then write('+');
    write(a[i, j]:0:3,'*x',j);
  end;
  writeln('=',b[i]:0:4);
 end;
end;
{ Функция реализующая метод Зейделя}
Function zeidel(n: Integer; a: AA; b: BB; var x: BB; e: Double) :Boolean;
Var
   i, j: Integer;
   s1, s2, s, v, m: Double;
Begin
Repeat
m := 0;
For i := 1 to n do begin
 { Вычисляем суммы }
             s1 := 0;
             s2 := 0;
             For j := 1 to i - 1 do
                 s1 := s1 + a[i, j] * x[j];
             For j := i to n do
                 s2 := s2 + a[i, j] * x[j];
{ Вычисляем новое  приближение и погрешность }
             v := x[i];
             x[i] := x[i] - (1 / a[i, i]) * (s1 + s2 - b[i]);
             If Abs(v - x[i]) > m then
                m := Abs(v - x[i]);
               end;
   Until m < e;
  zeidel := true;
End;
procedure p2(x:BB);
var i:integer;
    m:Double;
begin
         Writeln('Результат вычислений');
         For i := 1 to 7 do begin
            Writeln('x', i, ' = ', x[i]:6:6);
         end;
                        {проверка }
{        m:=0;for i:=1 to 7 do m:=m+a[1,i]*x[i]; writeln(m:6:6);}
end;
Var
    x: BB;
    e: Double;
    i: Integer;
Begin
{Очистим экран}
      ClrScr;
      Writeln('Программа решения систем линейных уравнений по методу Зейделя’);
      Writeln;
{распечатаем уравнение}
      p1(7,a,b);
      e:=0.00572;
{решим уравнение...}
      for i:=1 to 7 do x[i]:=1;
      If zeidel(7, a, b, x , e) then begin
{... и если оно  решилось, то выведем результат  ...}
         p2(x);
{... иначе сообщение  о ошибке}
      end else Writeln('Данную систему невозможно решить по методу Зейделя’);
 Writeln;
      repeat until keypressed;
End. 
 
 
 
 
 

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

Программа решения  системы линейных уравнений по методу Зейделя
Система уравнений:
-14.3830*x1-1.1000*x2-4.0840*x3-3.5570*x4-0.3710*x5+4.5410*x6-4.4980*x7=358.6024
-0.2050*x1-107.3690*x2-7.2000*x3+2.8230*x4-0.4860*x5+3.7050*x6+1.8070*x7=268.4247
-8.3540*x1-2.6070*x2+4.3700*x3+0.3400*x4+5.7650*x5+2.1730*x6-6.2890*x7=287.6628
+4.7380*x1+2.9230*x2-4.8780*x3+73.5870*x4-6.6680*x5-3.9440*x6-6.6090*x7=831.9947
+0.3920*x1-1.5630*x2+2.1900*x3+0.5390*x4+8.0940*x5+5.7290*x6+8.7180*x7=-611.1133
-5.0750*x1-6.1790*x2+1.3430*x3-2.7580*x4-4.7830*x5-84.1700*x6+6.1430*x7=1492.8992
-5.0370*x1+3.7960*x2+5.9310*x3-2.1650*x4+3.3910*x5+7.2770*x6-36.613*x7=1408.9475 

Результат вычислений
X1 = -18.312706
X2 = -3.530534
X3 = -0.704436
X4 = 6.260138
X5 = -16.944051
X6 = -18.699362
X7 = -42.099037 

 


Приложение 3. Листинг программы

 
uses crt;
var a,b,e:double;
function f(x:double):double;
begin
  f:=8.80 * X * X + 5.10;
end;
{---------Вычислить  интеграл методом правых прямоугольников-}
function irr(a,b:double;n:longint):double;
var i:longint;s,dx,y,x:double;
begin
 dx:=(b-a)/n;
 s:=0;
 for i:=1 to n do begin
   x:=a+i*dx;
   y:=f(x);
   s:=s+dx*y;
 end;
 irr:=s;
end;
procedure setabe;
begin
   a:=0.700;
   b:=1.250;
 e:=0.000056;
   Writeln('Пределы интегрирования: [',a:0:3,' .. ', b:0:3,'], ’точность: ',e:0:6);
end;
procedure res;
var y,z:double;n:longint;
begin
 n:=2;
 z:=irr(a,b,n);
 repeat
  n:=n*2;
  y:=z;
  z:=irr(a,b,n);
 until (abs(z-y)<e) or (n>1000000);
 writeln('Значение интеграла   = ',z:0:6);
end;Begin
  clrscr;
  writeln('Программа решения интеграла методом правых прямоугольников’);
  writeln('Подинтегральная функция: 8.80 * X ^ 2 + 5.10');
  setabe;
  res; readkey;end.
Результат работы программы
Программа решения  интеграла методом правых прямоугольников
Подинтегральная функция: 8.80 * x ^ 2 + 5.10
Пределы интегрирования: [ 0.700 .. 1.250], Точность: 0.000056
Значение интеграла = 7.528073 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Литература

    Гусев В.А., Мордкович А.Г. – Математика: Справ. материалы: Кн. для учащихся. – 2-е изд. – М.: Просвещение, 1990. – 416 с.
    Буслов В.А., Яковлев С.Л. - Численные методы II. Решение уравнений: Курс лекций. - СПб.:2001. - 44 с.
    Иванова, Г.С. Технология программирования: Учебник для студентов вузов / Г.С.Иванова.-2-е изд., стер .-М:Изд. МГТУ им. Н.Баумана, 2003.
    Окулов С.М. Программирование в алгоритмах. – 2-е изд., испр. – М.: БИНОМ. Лаборатория знаний, 2006
    Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: Питер, 2002
    Шелест, Вячеслав. Программирование: Учебное  пособие/В. Шелест. - СПб:БХВ-Петербург,2002.

и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.