Численные методы решения нелинейных уравнений

Решение нелинейных уравнений численными методами: методом половинного деления, методом Ньютона. Определение промежутков, содержащих корни. График функции cos(x)ch(x)+1=0. Создание функции нахождения точных значений корней с помощью программы MatLab.

Рубрика Математика
Вид лабораторная работа
Язык русский
Дата добавления 10.10.2015
Размер файла 789,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

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

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

Сибирский федеральный университет

Институт инженерной физики и радиоэлектроники

Кафедра «Приборостроения и наноэлектроники»

Лабораторная работа

Численные методы решения нелинейных уравнений

Красноярск 2013

1. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ

2. ХОД ВЫПОЛНЕНИЯ РАБОТЫ

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

Построим график , для того чтобы примерно определить промежутки, содержащие корни (см. рисунок 1).

уравнение нелинейный численный половинный

Рисунок 1 График функции

По графику найдем первые пять промежутков, содержащих корни: [1; 3], [4; 5], [7; 8], [10; 12], [13; 15]. Теперь необходимо найти точные значения. Для этого реализуем метод половинного деления. С помощью MatLab создадим функцию нахождения точных значений корней.

function [R I] = findroot(fu, a, b, tol)

fc=1+tol;

fa=fu(a);

fb=fu(b);

I=0;

while abs(fc) > tol

I=I+1;

xc=(a+b)/2;

fc=fu(xc);

if a == b

error('В указанном промежутке отсутствуют корни!')

break

end

if (fc>0 & fa>0) | (fc<0 & fa<0)

a=xc; fa=fc;

else

b=xc; fb=fc;

end

end

R=xc;

Где fu - это функция, a и b - границы отрезка, tol - точность. Если промежуток не содержит корней, то выводиться ошибка и программа прекращает работу. На выходе получаем точное значение корня и количество шагов, за которые был найден корень.

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

clc

clear

L=0.2; %Длина стержня

E=8e10; %Модуль упругости материала

J=1e-12; %Момент инерции сечения

m=1.5; %Масса стрежня

A=[1 4 7 10 13]; %Граница a

B=[3 5 8 12 15]; %Граница b

tol=0.001; %Точность

fu=@(x) cos(x).*cosh(x)+1; %Функция колебаний

k=0:0.5:72; %Волновое число

x=k*L;

plot(x, fu(x))

grid on

hold on

for u=1:5

%Вызов функции нахождения корня

[c i]=findroot(fu, A(u), B(u), tol);

%Вычисление резонансной частоты

frq=((c/L).^2*sqrt(E*J/m))/(2*pi);

%Проверка с помощью встроеной функции

p=fzero('cos(x).*cosh(x)+1', A(u));

disp('---------------------------------')

disp(['Корень x=' num2str(c)])

disp(['Проверка(функция fzero) x=' num2str(p)])

disp(['Число интераций i=' num2str(i)])

disp(['Резонансная частота f=' num2str(frq) 'Гц'])

%Подписываем корни на графике

text(c, 7000, num2str(c))

%Помечаем корни на графике

plot(c, 0, 'r.')

end

После выполнения скрипта получаем график (см. рисунок 2), точные значения (см. рисунок 3), на основе которых можно составить таблицу 1. Зависимость числа итераций от точности (см. таблицу 2).

Рисунок 2 График функции и ее решения

Рисунок 3 Точные значения

Таблица 1 Расчетные данные для тонкого однородного стержня

Корень

1,8751

4,6941

7,8548

10,9955

14,1272

Проверка (fzero)

1,8751

4,6941

7,8548

10,9955

14,1272

Число шагов

14

12

23

24

32

Резонансная частота, Гц

3,2309

20,2471

56,6924

111,0945

183,6472

Таблица 2 Зависимость числа итераций от точности

Точность

0.1

0.01

0.001

0.0001

0.00001

0.000001

Число итераций

22

26

30

32

36

38

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

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [508,1 K], добавлен 16.12.2015

  • Особенности решения алгебраических, нелинейных, трансцендентных уравнений. Метод половинного деления (дихотомия). Метод касательных (Ньютона), метод секущих. Численные методы вычисления определённых интегралов. Решение различными методами прямоугольников.

    курсовая работа [473,4 K], добавлен 15.02.2010

  • Графическое решение нелинейного уравнения. Уточнение значение одного из действительных решений уравнения методами половинного деления, Ньютона–Рафсона, секущих, простой итерации, хорд и касательных, конечно-разностным и комбинированным методом Ньютона.

    лабораторная работа [32,7 K], добавлен 11.06.2011

  • Исследование сущности и сфер применения метода итераций. Нелинейные уравнения. Разработка вычислительный алгоритм метода итераций. Геометрический смысл. Составление программы решения систем нелинейных уравнений методом итераций в среде Turbo Pascal.

    реферат [183,7 K], добавлен 11.04.2014

  • Решение систем линейных алгебраических уравнений методом простой итерации. Полиномиальная интерполяция функции методом Ньютона с разделенными разностями. Среднеквадратическое приближение функции. Численное интегрирование функций методом Гаусса.

    курсовая работа [2,4 M], добавлен 14.04.2009

  • Изучение численных методов приближенного решения нелинейных систем уравнений. Составление на базе вычислительных схем алгоритмов; программ на алгоритмическом языке Фортран - IV. Приобретение практических навыков отладки и решения задач с помощью ЭВМ.

    методичка [150,8 K], добавлен 27.11.2009

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

    реферат [140,2 K], добавлен 27.03.2012

  • Вычисление корня функции нелинейного уравнения методом деления отрезка пополам. Способы ввода, вывода и организации данных. Модульная организация программы. Разработка блок-схемы алгоритма задачи. Порядок создания программы на алгоритмическом языке.

    реферат [30,0 K], добавлен 28.10.2010

  • Модифицированный метод Ньютона. Общие замечания о сходимости процесса. Метод простой итерации. Приближенное решение систем нелинейных уравнений различными методами. Быстрота сходимости процесса. Существование корней системы и сходимость процесса Ньютона.

    дипломная работа [1,8 M], добавлен 14.09.2015

  • Сущность и графическое представление методов решения нелинейных уравнений вида F(x)=0. Особенности метода хорд, бисекции, простой итерации, касательных и секущих. Проверка результатов с помощью встроенных функций и оценка точности полученных значений.

    контрольная работа [316,1 K], добавлен 09.11.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.