microbik.ru
  1 ... 4 5 6 7 8 9

>> z = trapz(x, y)

Результат вычислений

z =

0.7854

Протокол программы метода Симпсона

>> quad (  (1./(1+x.^2)) , 0, 1)

Результат вычислений

ans =

0.7854

Точное значение интеграла равно 0.785398163.

Как видно из примера 6 полученные результаты являются практически точными, а сами протоколы весьма просты.

Варианты заданий. Вычислить и вывести на печать значения определенного интеграла методами трапеций и Симпсона. Данные взять из таблицы 2.6.

Таблица 2.6



п/п

Подынтегральная функция f(x)

Интервал интегрирования [a; b]

Точность вычислений интеграла

1



[1; 3.5]

0.001

2



[/6; [/3]

0.002

3



[1.5; 3.]

0.0001

4



[1.0; 4,0]

0.003

5



[0; ln2]

0.0015

6



[1.0; 4.0]

0.002

7



[0.0; 2.0]

0.001

8



[2.0; 5.0]

0.001

9



[1.0; 2.5]

0.0005

10



[0.0; ]

0.003

11



[0.0; 3,0]

0.001

12



[1.5; 3.0]

0.0025

13



[0,0; 5.0]

0.001

14



[2.3; 6.0]

0.002

15



[0.0; /2]

0.001

16



[0.0; 2.0]

0.0015

17



[0.0; 2.0]

0.002

18



[0.0; /4]

0.001

19



[0.0; 1.8]

0.0006

20



[0.0; ]

0.0016

21



[0.0; 1.2]

0.002

22



[2.0; 4.4]

0.0014

23



[0.0; 1.2]

0.002

24



[2.0; 4.4]

0.0011

25



[1.0; 2.2]

0.0023

26



[0,0; 1.8]

0.0015

27



[0.0; 1.2]

0.001

28



[1.0; 3.0]

0.002

29



[0.0; 1.0]

0.0013

30



[1.0; 2.2]

0.0025


2.6. Численное решение нелинейных уравнений

Задача нахождения корней нелинейных уравнений встречается в различных областях научно-технических исследований. Проблема формулируется следующим образом. Пусть задана непрерывная функция f(x) и требуется найти корень уравнения

f(x) = 0.

Будем предполагать, что имеется интервал изменения х [a; b], на котором необходимо исследовать функцию f(x) и найти значение х0, при котором f(x0) равно или весьма мало отличается от нуля.

Данная задача в системе MATLAB может быть решена следующим образом. Вначале необходимо построить график функции f(x) на заданном интервале и убедиться в существовании корня или нескольких корней. Затем применить программы поиска корней. Если существует один корень и график f(x) пересекает ось ох, то можно применить программу fzero. Если f(x) имеет больше одного корня и может касаться и пересекать ось ох, то следует применить более мощную программу fsolve из пакета Optimization Toolbox, которая решает задачу методом наименьших квадратов. Программа fzero использует известные численные методы: деление отрезка пополам, секущей и обратной квадратичной интерполяции.
Пример 7. Найти корень нелинейного уравнения 10х + 2х – 100 = 0 на интервале [1.0; 2.0].

Протокол программы

>> % Строим график заданной функции

>> x = 1.0 : 0.001 : 2.0; y = 10.0.^x + 2.0*x – 100.0;

>> рlot (x, y) ; grid on

Появляется окно с графиком функции 10х + 2х – 100 (см. рис. 2.4), из которого следует, что корень функции на заданном интервале существует. Для точного определения корня применяем fzero и fsolve.






Рис. 2.4
>> X1 = fzero (  (10.0.^x + 2.0*x – 100.0) , [1.0 2.0])

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

Х1 =

1.9824

>> X2 = fsolve (  (10.0.^x + 2.0*x – 100.0) , 1.0 : 2.0)

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

Х2 =

    1. 1.9824


Варианты заданий. Построить график и найти корень нелинейного уравнения. Данные взять из таблицы 2.7.

Таблица 2.7

№ п/п

Уравнение f(x) = 0

Отрезок [a; b]

1



[1.0; ]

2



[2.0; 3.0]

3



[8.0; 9.0]

4



[0.5; 1.0]


Продолжение таблицы 2.7

5



[0.0; 1.0]

6



[3.0; 3.2]

7



[0.0; 1.0]

8



[0.0; 0.2]

9



[0.8; 1.0]

10



[2.6; 3.0]

11



[1.0; 1.5]

12



[1.0; 2.0]

13



[0.0; 1.0]

14



[0.0; 1.0]

15



[3.0; 4.0]

16



[1.0; 1.2]

17



[1.0; 2.0]

18



[0.0; 1.0]

19



[-0.2; -0.1]

20



[0.1; 0.9]

21



[1.0; 1.4]

22



[3.0; 4.0]

23



[0.0; 1.5]

24



[0.0; 1.0]

25



[0.1; 1.0]

26



[0.4; 0.6]

27



[3.0; 4.0]

28



[4.0; 5.0]

29



[2.0; 3.0]

30



[0.0; 0.48]



<< предыдущая страница   следующая страница >>