Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестр / ПОСОБИЕ_ВычМат

.pdf
Скачиваний:
23
Добавлен:
09.04.2015
Размер:
502.09 Кб
Скачать

71

5.9 Вычисление интегралов средствами MachCAD

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

В системе MachCAD выполните следующие действия:

ó

ô d

1. Щелкните по кнопке õ

в панели инструментов Calculus;

2.Введите в помеченных позициях выражение для функции, имя переменной и пределы интегрирования;

3.Введите знак равенства;

4.Получите результат

π

ó 2

ô

ô cos(x) dx = 1

õ0

Задания к данной теме приведены в приложении Д.

72

6 ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

6.1 Задача Коши

 

Требуется найти функцию Y=Y(x), удовлетворяющую уравнению

 

Y=f(x,Y),

(1)

и принимающую при x=x0 заданное значение Y0:

 

Y(x0)=Y0,.

(2)

При этом будем для определенности считать, что решение нужно получить для значений x>x0.

Теорема Коши. Если правая часть f(x,y) уравнения y=f(x,y) и ее частная производная fy(x,y) определены и непрерывны в некоторой области G изменения переменных x, y, то для всякой внутренней точки (x0, y0) этой области данное уравнение имеет единственное решение, принимающее заданное значение y=y0 при x=x0.

Согласно теореме Коши решение Y(x) задачи (1), (2) существует и единственно.

Методы решения задачи (1), (2) распространяются на случай систем уравнений вида (1), а к ним в свою очередь можно привести также уравнения высших порядков. Например, уравнение

Z′′=ϕ(Z,Z,x)

можно записать в виде системы уравнений относительно функции Y1,Y2:

Y1=ϕ(Y1,Y2,x).

(3)

Y2=Y1,

где Y1=Z, Y2=Z.

6.2 Метод Рунге-Кутта для решения дифференциальных уравнений

Метод Рунге-Кутта для решения задачи Коши используют для вычисления значения yi+1 (i=0, 1, …), значения yi , а также значения функции f(x,y) при некоторых специальным образом выбираемых значениях x [xi, xi+1] и y.

Широко распространен метод Рунге-Кутта четвертого порядка:

yI+1 = yi +

h

(f1 + 2f2 + 2f3 + f4),

(4)

 

 

6

 

 

где

 

 

 

 

f1

= f(xi, yi),

 

f2

= f(xi + h/2, yi + hf1/2),

(5)

73

f3 = f(xi + h/2, yi + hf2/2), f4 = f(xi + h, yi + hf3).

Таким образом, данный метод Рунге-Кутта требует на каждом шагу четырехкратного вычисления правой части f(x,Y) уравнения (1). Суммарная погрешность этого метода есть величина O(h4).

Метод Рунге-Кутта требует большого объема вычислений, но обеспечивает повышенную точность, что дает возможность проводить счет с большим шагом.

6.3 Алгоритм решения задачи Коши методом Рунге-Кутта

1. Задать начальные условия: x0= α, y |x 0 = y0, шаг интегрирования h , конец интервала интегрирования β.

2.Организовать цикл интегрирования.

2.1Вычислить значения f1, f2, f3, f4.

2.2Вычислить y = y0 + h(f1 + 2f2 + 2f3 + f4)/6.

2.3Увеличить значение x на h, т. е. x = x + h.

2.4Вывод текущих значений x, y.

2.5Установить значение y0 = y.

3.Конец цикла интегрирования: условие завершения x > β.

4.Конец вычислений.

Пример. Составить алгоритм и программу решения задачи Коши для дифференциального уравнения первого порядка y′ - y * ctgx = sinx, y |x=π/2 = 0 на равномерной сетке отрезка [π/2,π/2+1] с шагом h, вводимым с клавиатуры, классическим методом Рунге-Кутта. Сравнить численное решение с точным

æ

p ö

ϕ(x)=ç x -

2

÷ sinx.

è

ø

Вычисления выполнить по формулам (5)-(6).

6.4 Программа на языке Turbo Pascal для решения задачи Коши методом Рунге-Кутта

program Runge_Kutta; uses crt;

function f(x,y:real):real; {функция вычисления первой производной} begin

f:= sin(x)+y*cos(x)/sin(x); end;

function ft(x,y:real):real; {функция вычисления точного значения} begin

74

ft:=(x-pi/2)*sin(x); end;

const h=1E-1; var

x,y,y0,f1,f2,f3,f4,b,rh,r : real; begin

clrscr; {очистить экран}

x:=pi/2; y0:=0; {задать начальные условия} b:=x+1; {определить конец интервала}

repeat

{вычислить коэффициенты Рунге-Кутта} f1:=f(x,y0);

f2:=f(x+h/2,y0+h*f1/2);

f3:=f(x+h/2,y0+h*f2/2);

f4:=f(x+h,y0+h*f3);

{вычислить новые значения аргумента и функции} x:=x+h;

y:=y0+h*(f1+2*f2+2*f3+f4)/6; {печать результатов}

writeln('x=',x:10:6,' y=',y:10:6,' точное значение =',ft(x,y):10:6); y0:=y;

until x>b;

readkey;{задержка выполнения программы до нажатия клавиши} end.

6.5 Решение задачи Коши методом Рунге-Кутта средствами MS Excel

Формулы для решения задачи Коши:

 

A

B

C

D

1

X0

Y0

h

f1

2

=ПИ()/2

0

0,1

=SIN(A2)+B2*COS(A2)/SIN(A2)

3

 

 

 

=SIN(I2)+H2*COS(I2)/SIN(I2)

4

 

 

 

=SIN(I3)+H3*COS(I3)/SIN(I3)

5

 

 

 

=SIN(I4)+H4*COS(I4)/SIN(I4)

6

 

 

 

=SIN(I5)+H5*COS(I5)/SIN(I5)

7

 

 

 

=SIN(I6)+H6*COS(I6)/SIN(I6)

8

 

 

 

=SIN(I7)+H7*COS(I7)/SIN(I7)

9

 

 

 

=SIN(I8)+H8*COS(I8)/SIN(I8)

10

 

 

 

=SIN(I9)+H9*COS(I9)/SIN(I9)

11

 

 

 

=SIN(I10)+H10*COS(I10)/SIN(I10)

12

 

 

 

=SIN(I11)+H11*COS(I11)/SIN(I11)

 

75

 

 

 

E

1

f2

2

=SIN(A2+$C$2/2)+(B2+$C$2*D2/2)*COS(A2+$C$2/2)/SIN(A2+$C$2/2)

3

=SIN(I2+$C$2/2)+(H2+$C$2*D3/2)*COS(I2+$C$2/2)/SIN(I2+$C$2/2)

4

=SIN(I3+$C$2/2)+(H3+$C$2*D4/2)*COS(I3+$C$2/2)/SIN(I3+$C$2/2)

5

=SIN(I4+$C$2/2)+(H4+$C$2*D5/2)*COS(I4+$C$2/2)/SIN(I4+$C$2/2)

6

=SIN(I5+$C$2/2)+(H5+$C$2*D6/2)*COS(I5+$C$2/2)/SIN(I5+$C$2/2)

7

=SIN(I6+$C$2/2)+(H6+$C$2*D7/2)*COS(I6+$C$2/2)/SIN(I6+$C$2/2)

8

=SIN(I7+$C$2/2)+(H7+$C$2*D8/2)*COS(I7+$C$2/2)/SIN(I7+$C$2/2)

9

=SIN(I8+$C$2/2)+(H8+$C$2*D9/2)*COS(I8+$C$2/2)/SIN(I8+$C$2/2)

10

=SIN(I9+$C$2/2)+(H9+$C$2*D10/2)*COS(I9+$C$2/2)/SIN(I9+$C$2/2)

11

=SIN(I10+$C$2/2)+(H10+$C$2*D11/2)*COS(I10+$C$2/2)/SIN(I10+$C$2/2)

12

=SIN(I11+$C$2/2)+(H11+$C$2*D12/2)*COS(I11+$C$2/2)/SIN(I11+$C$2/2)

 

 

 

F

1

f3

2=SIN(A2+$C$2/2)+(B2+$C$2*E2/2)*COS(A2+$C$2/2)/SIN(A2+$C$2/2)

3=SIN(I2+$C$2/2)+(H2+$C$2*E3/2)*COS(I2+$C$2/2)/SIN(I2+$C$2/2)

4=SIN(I3+$C$2/2)+(H3+$C$2*E4/2)*COS(I3+$C$2/2)/SIN(I3+$C$2/2)

5=SIN(I4+$C$2/2)+(H4+$C$2*E5/2)*COS(I4+$C$2/2)/SIN(I4+$C$2/2)

6=SIN(I5+$C$2/2)+(H5+$C$2*E6/2)*COS(I5+$C$2/2)/SIN(I5+$C$2/2)

7=SIN(I6+$C$2/2)+(H6+$C$2*E7/2)*COS(I6+$C$2/2)/SIN(I6+$C$2/2)

8=SIN(I7+$C$2/2)+(H7+$C$2*E8/2)*COS(I7+$C$2/2)/SIN(I7+$C$2/2)

9=SIN(I8+$C$2/2)+(H8+$C$2*E9/2)*COS(I8+$C$2/2)/SIN(I8+$C$2/2) 10 =SIN(I9+$C$2/2)+(H9+$C$2*E10/2)*COS(I9+$C$2/2)/SIN(I9+$C$2/2)

11 =SIN(I10+$C$2/2)+(H10+$C$2*E11/2)*COS(I10+$C$2/2)/SIN(I10+$C$2/2) 12 =SIN(I11+$C$2/2)+(H11+$C$2*E12/2)*COS(I11+$C$2/2)/SIN(I11+$C$2/2)

G

1

f4

2=SIN(A2+$C$2)+(B2+$C$2*F2)*COS(A2+$C$2)/SIN(A2+$C$2)

3=SIN(I2+$C$2)+(H2+$C$2*F3)*COS(I2+$C$2)/SIN(I2+$C$2)

4=SIN(I3+$C$2)+(H3+$C$2*F4)*COS(I3+$C$2)/SIN(I3+$C$2)

5=SIN(I4+$C$2)+(H4+$C$2*F5)*COS(I4+$C$2)/SIN(I4+$C$2)

6=SIN(I5+$C$2)+(H5+$C$2*F6)*COS(I5+$C$2)/SIN(I5+$C$2)

7=SIN(I6+$C$2)+(H6+$C$2*F7)*COS(I6+$C$2)/SIN(I6+$C$2)

8=SIN(I7+$C$2)+(H7+$C$2*F8)*COS(I7+$C$2)/SIN(I7+$C$2)

9=SIN(I8+$C$2)+(H8+$C$2*F9)*COS(I8+$C$2)/SIN(I8+$C$2) 10 =SIN(I9+$C$2)+(H9+$C$2*F10)*COS(I9+$C$2)/SIN(I9+$C$2)

11 =SIN(I10+$C$2)+(H10+$C$2*F11)*COS(I10+$C$2)/SIN(I10+$C$2) 12 =SIN(I11+$C$2)+(H11+$C$2*F12)*COS(I11+$C$2)/SIN(I11+$C$2)

 

H

I

J

1

y

x

ϕ(x)

2

=$B$2+$C$2*(D2+2*E2+2*F2+G2)/6

=A2+$C$2

=(I2-ПИ()/2)*SIN(I2)

3

=H2+$C$2*(D3+2*E3+2*F3+G3)/6

=I2+$C$2

=(I3-ПИ()/2)*SIN(I3)

4

=H3+$C$2*(D4+2*E4+2*F4+G4)/6

=I3+$C$2

=(I4-ПИ()/2)*SIN(I4)

5

=H4+$C$2*(D5+2*E5+2*F5+G5)/6

=I4+$C$2

=(I5-ПИ()/2)*SIN(I5)

6

=H5+$C$2*(D6+2*E6+2*F6+G6)/6

=I5+$C$2

=(I6-ПИ()/2)*SIN(I6)

7

=H6+$C$2*(D7+2*E7+2*F7+G7)/6

=I6+$C$2

=(I7-ПИ()/2)*SIN(I7)

76

8

 

=H7+$C$2*(D8+2*E8+2*F8+G8)/6

 

=I7+$C$2

 

=(I8-ПИ()/2)*SIN(I8)

 

 

 

9

 

=H8+$C$2*(D9+2*E9+2*F9+G9)/6

 

=I8+$C$2

 

=(I9-ПИ()/2)*SIN(I9)

 

 

 

10

 

=H9+$C$2*(D10+2*E10+2*F10+G10)/6

 

=I9+$C$2

 

=(I10-ПИ()/2)*SIN(I10)

 

 

 

11

 

=H10+$C$2*(D11+2*E11+2*F11+G11)/6

 

=I10+$C$2

=(I11-ПИ()/2)*SIN(I11)

 

 

 

12

 

=H11+$C$2*(D12+2*E12+2*F12+G12)/6

 

=I11+$C$2

 

=(I12-ПИ()/2)*SIN(I12)

 

 

 

 

Результат решения задачи:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

B

C

D

 

 

E

 

F

G

H

I

J

 

 

X0

Y0

h

f1

 

 

f2

 

f3

f4

y

x

ϕ(x)

1

 

1,570796

0

0,1

1,000000

 

0,996248

0,996258

0,985008

0,099500

1,670796

0,099500

2

 

 

 

 

0,985021

 

0,966290

0,966431

0,940306

0,196013

1,770796

0,196013

3

 

 

 

 

0,940333

 

0,906857

0,907284

0,866637

0,286601

1,870796

0,286601

4

 

 

 

 

0,866681

 

0,818937

0,819809

0,765227

0,368424

1,970796

0,368424

5

 

 

 

 

0,765294

 

0,703994

0,705475

0,637771

0,438791

2,070796

0,438791

6

 

 

 

 

0,637870

 

0,563946

0,566212

0,486406

0,495201

2,170796

0,495201

7

 

 

 

 

0,486551

 

0,401136

0,404383

0,313680

0,535388

2,270796

0,535390

8

 

 

 

 

0,313891

 

0,218302

0,222755

0,122515

0,557364

2,370796

0,557365

9

 

 

 

 

0,122824

 

0,018527

0,024463

-0,083839

0,559446

2,470796

0,559449

10

 

 

 

 

-0,083381

-0,194807

-0,187016

-0,301858

0,540298

2,570796

0,540302

11

 

 

 

 

-0,301162

-0,418088

-0,407896

-0,527818

0,498949

2,670796

0,498956

6.6 Решение задачи Коши средствами MachCAD

Для решения задачи Коши в MathCAD введена функция odesolve, которая решает задачу методом Рунге-Кутта с фиксированным шагом. Для численного решения поставленной задачи методом Рунге-Кутта с автоматическим выбором шага нужно щелкнуть правой кнопкой мыши по имени функции и в всплывающем меню выбрать команду Адаптивный.

Обращение к функции odesolve имеет вид: y:= odesolve(x, b[, step]),

где y – имя функции, содержащей значения найденного решения, b – конечная точка отрезка, на котором ищется решение, step – необязательный параметр, задающий шаг. Перед обращением к функции odesolve нужно записать ключевое слово Given.

Всистеме MathCAD выполните следующие действия:

1.Ввести ключевое слово Given.

2.Ввести дифференциальное уравнение. Для ввода производных можно использовать как оператор дифференцирования, так и знак производной (комбинация клавиш Ctrl + F7). Знак равенства вводится с помощью пиктограммы панели Boolean.

y'(x) sin(x) + y(x)×cot(x).

3. Ввести начальное условие

y

æ π

ö

 

0

 

 

 

 

è 2

ø

 

 

 

 

4. Вызвать функцию odesolve:

 

 

 

 

77

y := odesolve

æ

x ,

π + 2

ö

è

2

ø

 

 

5.Задать значение х, указав начальное значение – π2 , шаг – 0.1, предельное значение π2 +1:

x :=

π

,

π

+ 0.2

..

π

+ 2

2

 

2

 

2

 

 

 

 

 

6. Отобразить значение переменной х х=

1.571

1.671

1.771

1.871

1.971

2.071

2.171

2.271

2.371

2.471

1.571

7.Получить решения задачи Коши в некоторых точках данного отрезка. Для этого нужно задать имя функции y, указав в скобках численное значение аргумента, и ввести с клавиатуры знак =.

y(x)=

0

0.0995

0.19601

0.2866

0.36842

0.43879

0.4952

0.53539

0.55737

0.55945

0.5403

Задания к данной теме приведены в приложении Е.

78

Рекомендуемая литература

1.Мэтьюз, Джон, Г., Финк, Куртис, Д. Численные методы. Использование Matlab, 3-е издание.: Пер. с англ. – М.: Издательский дом "Вильямс", 2001.– 720 с.

2.Микляев А.П. Настольная книга пользователя IBM PC. 2-е изд., доп. "Солон", М.: 1998.– 604 с.

3.Ракитин В.И. Первушин В.Е. Практическое руководство по методам вычислений с приложением программ для персональных компьютеров: Учеб. пособие. – М.: Высш. шк., 1998. – 383 с.

4.Боглаев Ю.П. Вычислительная математика и программирование: Учеб. пособие для студентов втузов. – М.: Высш. шк., 1990. – 544 с.

5.Демидович Б.П., Марон И.А. Основы вычислительной математики. М.: "Наука", 1970. – 664 с.

6.Ивашкин Ю.А. Вычислительная техника в инженерных расчетах. – М: Агропромиздат, 1989. –335 с. – (Учебники и учебные пособия для студентов высших учебных заведений).

7.Гурский Д.А. Вычисления в MathCAD.– Мн.: Новое знание, 2003. – 814с.

8.Шушкевич Г.Ч., Шушкевич С.В.Введение в MathCAD 2000: Учеб. пособие. – Гродно: ГрГУ, 2001. – 140с.

79

ПРИЛОЖЕНИЕ А

Задания к теме «Численные методы решения уравнений»

Средствами электронной таблицы Excel графически определите приближенное место расположения корней уравнения f(x) = 0. Составьте алгоритмы уточнения корня уравнения f(x) = 0 методом половинного деления, методом Ньютона, методом хорд, комбинированным методом и методом итераций с точностью ε = 10-7 . Уточните корни уравнения f(x) = 0 этими методами средствами Турбо Пас-

каль, MS Excel и средствами MathCAD.

1. 2 - ln x - x = 0.

3. x3 + 3x + 5 = 0.

5 x3 + x2 - 11 = 0 (x > 0).

7. x + ex = 0.

 

9.

x3

-

10x + 5 = 0 (x < 0).

11. x3

+ 2x - 7 = 0.

 

13. x4

-

2x - 4 = 0

(x > 0).

15. x4

-

2x - 4 = 0

(x < 0).

17. ex - x - 2 = 0.

 

19. x2

- cos x = 0

(x > 0).

21. ln x + 0,5x - 1 = 0.

23.

 

 

1

 

 

- ln x = 0.

 

1+ x2

25.

 

x

 

 

- ln x = 0.

2 + x

 

2.

x3 - 2x - 5 = 0 (x > 0).

4.

x4 + 5x - 7 = 0 (x > 0).

6.

x3 - 2x2 - 4x + 5 = 0 (x < 0).

8.

x5 - x - 2 = 0.

10..x4 - 3x - 20 = 0 (x > 0).

12..x3 - 12x - 5 = 0 (x > 0).

14.2ex + x - 1 = 0.

16. 2x3 + x2 - 4 = 0

(x > 0).

18.

1 ex - x - 1 = 0

(x > 0).

 

2

 

20. x2 + ln x = 0.

22. ln x - 0,5x + 1 = 0

(x > 1).

24.

 

1

-

ex

= 0

(x>0).

 

+ x2

2

1

 

 

 

80

ПРИЛОЖЕНИЕ Б

Задания к теме «Решение систем линейных уравнений»

Написать программу на языке Turbo Pascal решения системы линейных алгебраических уравнений Ax = b методом Гаусса и методом итераций, в электронной таблице Еxcel – методом итераций. Решить систему уравнений средствами MathCAD. Сравнить с точным решением ξ.

é

5

0

1 ù

 

 

1. A = ê

1 3 -1ú ,

 

b =

ê

 

2

ú

 

 

ê- 3

10ú

 

 

ë

 

 

û

 

 

é

2

0

-1ù

 

 

2. A = êê-1 3

1 úú ,

b =

ê 1

-1

4 ú

 

 

ë

 

 

û

 

 

é2

0

-1ù

 

 

3. A = êê1 - 3 1 úú ,

 

b =

ê1

1

3 ú

 

 

ë

 

 

û

 

 

é

5

1

-1ù

 

 

4. A = êê-1 3

1 úú ,

b =

ê 1

- 2

4 ú

 

 

ë

 

 

û

 

 

é 3

1

-1ù

 

 

5. A = êê- 2 4 1 úú ,

 

b =

ê

1

1

ú

 

 

ë

3 û

 

 

é3

1

-1ù

 

 

6. A = êê2 4

1 úú ,

 

b =

ê1

-1

3 ú

 

 

ë

 

 

û

 

 

é2

-1

0 ù

 

 

7. A = êê2 5 - 2úú ,

 

b =

ê1

-1

3 ú

 

 

ë

 

 

û

 

 

é

3

-1

1 ù

 

 

8. A = ê

0

2 -1ú

,

b =

ê

 

1

ú

 

 

ê-1

5 ú

 

 

ë

 

 

û

 

 

é4

1

-1ù

 

 

9. A = êê2 3

0 úú ,

 

b =

ê1

-1

5 ú

 

 

ë

 

 

û

 

 

 

é2

0

-1ù

 

 

10. A = êê1

- 4

2 úú ,

b =

 

ê1

1

3 ú

 

 

 

ë

 

û

 

 

é11ù

 

 

é2ù

ê

4

ú

,

ξ =

ê

ú

ê

ú

ê1ú .

ê 6

ú

 

 

ê1ú

ë

 

û

 

 

ë

û

é- 3ù

 

 

é-1ù

ê

2

 

ú

,

ξ =

ê

0

ú

ê

 

ú

ê

ú .

ê 3 ú

 

 

ê 1 ú

ë

 

 

û

 

 

ë

 

û

é1ù

 

 

é1ù

 

êê2úú ,

 

ξ = êê0úú .

 

ê4ú

 

 

ê1ú

 

ë

û

 

 

ë û

 

é- 5ù

 

é-1ù

ê

5

ú

,

ê

ú

ê

ú

ξ = ê 1 ú .

ê 1

 

ú

 

ê 1 ú

ë

 

 

û

 

ë

û

é-1ù

 

 

é-1ù

ê

5

ú

,

ξ =

ê

1

ú

ê

ú

ê

ú .

ê- 3ú

 

 

ê-1ú

ë

 

 

û

 

 

ë

 

û

é6ù

 

 

 

é2ù

 

êê9úú ,

 

ξ = êê1úú .

ê4ú

 

 

 

ê1ú

 

ë

û

 

 

 

ë

û

 

é- 2ù

 

 

é-1ù

ê

 

 

ú

,

ξ =

ê

0

ú

ê- 4ú

ê

ú .

ê 2 ú

 

 

ê 1 ú

ë

 

 

û

 

 

ë

 

û

é

1

 

ù

 

 

é

1

ù

ê

3

ú

,

ξ =

ê

1

ú

ê

ú

ê

ú .

ê- 5ú

 

 

ê-1ú

ë

 

 

û

 

 

ë

 

û

é

7

ù

 

 

é2ù

ê

7

ú

 

ξ =

ê

ú

ê

ú ,

ê1ú .

ê11ú

 

 

ê2ú

ë

 

û

 

 

ë

û

é

1

 

ù

 

 

é1ù

ê- 5ú

,

ξ =

ê2ú .

ê

6

 

ú

 

 

ê

ú

ê

 

ú

 

 

ê1ú

ë

 

 

û

 

 

ë

û