Помощь в написании студенческих работ
Антистрессовый сервис

Решение нелинейных и трансцендентных уравнений методом поразрядного приближения

Курсовая Купить готовую Узнать стоимостьмоей работы

Имя результата≥ fsolve ('имя функции', левый предел) Задача поиска корней нелинейного уравнения в системе MATLAB может быть решена следующим образом. Вначале необходимо построить график функции f (x) на заданном интервале и убедиться в существовании корня или нескольких корней. Затем применить программы поиска корней. Если существует корень и график f (x) пересекает ось ох, то можно применить… Читать ещё >

Решение нелинейных и трансцендентных уравнений методом поразрядного приближения (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Постановка задачи
  • 2. Область применения
  • 3. Требования к интерфейсу пользователя
  • 4. Отдельно перечисляются возможные сообщения и реакция программы на ошибки ввода и вычислений
  • 5. Анализ, формальная постановка и выбор метода решения задачи
  • 6. Разработка алгоритмов решения задачи
  • 7. Тексты и описание программных модулей
    • 7. 1. Решение задачи с помощью стандартных функций MatLab
    • 7. 2. Решение задачи разработка модуля для решения уравнения в MatLab
  • 8. Тестирование разработанных программных модулей
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Функция fzero и fsolve. Используются для нахождения корня нелинейного уравнения. Форматы этих функций:

<�имя результата>=fzero ('имя функции',[левый предел правый предел])

<�имя результата>= fsolve ('имя функции', левый предел) Задача поиска корней нелинейного уравнения в системе MATLAB может быть решена следующим образом. Вначале необходимо построить график функции f (x) на заданном интервале и убедиться в существовании корня или нескольких корней. Затем применить программы поиска корней. Если существует корень и график f (x) пересекает ось ох, то можно применить программу fzero или fsolve.

Алгоритм решения уравнения:

Создается Mat-функция для функции f (x).

Создается файл программы. Вводится текст заглавия как комментарий.

Необходимо вывести f (x) как график. По нему определяются приближенно корни уравнения f (x)=0. Если корни на графике не просматриваются, то необходимо изменить пределы изменения аргумента и повторить операции.

Для каждого корня находится точно значение, используя стандартные функции fzero и fsolve.

Сформированная строка с результатами выводится в заголовок окна графика.

Создание m-функции:

Нелинейное алгебраическое уравнение: -0.85(x3−2(x2+7(x+2

Рисунок 2 — Создание m-функции Локализация корней. Уравнение может иметь несколько корней, каждый из которых ищется отдельно. При этом для каждого корня надо задать диапазон аргумента, в котором он находится (только один!).

Это делается путем локализации корня. Для этого надо просчитать значения функций в заданном интервале и построить их графики. Начальное значение для решения одного уравнения — точка пересечения графиком функции оси Х. График выводится процедурой, в которой аргументы — переменная х и анализируемая функция. С помощью grid on график делается с координатной сеткой:

Рисунок 3 — Программа нахождения корней уравнения Рисунок 4 — График функции Теперь реализуем аналогичный алгоритм для транцедентного уравнения: x-sin (x)-0.25

Рисунок 5 — Создание m-функции

Рисунок 6 — Программа нахождения корней уравнения

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

7.2 Решение задачи разработка модуля для решения уравнения в MatLab

Код программы

programm.m

%решение нелинейного уравнения

clear

global f

f = in_fun ();

[ E, h, a, b, Rh] = in_dat ();

x=a;

k=0;

while ((x

x=x+h;

if (f (x-h)*f (x)<0)

h=-h/Rh;

end

if (abs (h)<=E/Rh)

k=1;% корень найден

end

end

%Вывод результата%

out_x (x, f (x))

В программе использованы следующие функции:

function [ ] = out_x (x, f)

%вывод результата

fprintf ('Решение x=%dn', x)

fprintf ('Решение f=%dn', f)

end

function [ f] = in_fun ()

%ввод вида функции

R=input ('Выражение для функции (только правую часть!!!)n','s');

f = inline®;

end

function [ E, h, a, b, Rh] = in_dat ()

%ввод исходных данных

R=input ('Введите значение погрешности вычисленийn','s');

E=str2double®;

R=input ('Введите начальный шаг вычисленияn','s');

h=str2double®;

R=input ('Введите левую границу интервала An','s');

a=str2double®;

R=input ('Введите правую границу интервала Bn','s');

b=str2double®;

R=input ('Величина уменьшения шагаn','s');

Rh=str2double®;

end

Тестирование разработанных программных модулей

Рисунок 7 — Результат тестирования -0.85*x.^3−2*x.^2+7*x+2

Рисунок 7 — Результат тестирования для уравнения x-sin (x)-0.25

ЗАКЛЮЧЕНИЕ

При выполнении курсовой работы были изучены этапы разработки программного обеспечения, получены навыки программирования на языке MATLAB, освоена работа с функциями, получить навыки построения интерфейса пользователя.

Реализована программа для нахождения корней нелинейных алгебраических и транцедентных уравнений.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ Алексеев Е. Р., Чесноков О. В. Решение задач вычислительной математики в пакете MatLab 12, MatLab 7. -М.: НТ Пресс, 2006. — 496 с.

Дьяконов В. MatLab7. -М.: ДМК Пресс, 2008. — 768 с.

Hunt. MatLab R2007 с нуля! -М.: Лучшие книги, 2008. — 352 с.

URL:

http://www.exponenta.ru/educat/systemat/hanova/equation/nonlinear/nonlinear1.asp

начало

конец

f, E, a, b, h, Rh

K=0

x=a

(x

f (x-h)*f (x)<0

x=x+h

h=-h/Rh

abs (h)<=E/Rh

k=1

x, f (x)

нет

да

да

да

нет

нет

Показать весь текст

Список литературы

  1. Е.Р., Чесноков О. В. Решение задач вычислительной математики в пакете MatLab 12, MatLab 7. -М.: НТ Пресс, 2006. — 496 с.
  2. Дьяконов В. MatLab7. -М.: ДМК Пресс, 2008. — 768 с.
  3. Hunt. MatLab R2007 с нуля! -М.: Лучшие книги, 2008. — 352 с.
  4. URL:http://www.exponenta.ru/educat/systemat/hanova/equation/nonlinear/nonlinear1.asp
Заполнить форму текущей работой
Купить готовую работу

ИЛИ