Численные методы решения нелинейных уравнений
Решение нелинейных уравнений численными методами: методом половинного деления, методом Ньютона. Определение промежутков, содержащих корни. График функции 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