- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
ВВЕДЕНИЕ
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=%d\n',x)
fprintf('Решение f=%d\n',f)
end
function [ f] = in_fun()
%ввод вида функции
R=input('Выражение для функции (только правую часть!!!)\n','s');
f = inline(R);
end
function [ E,h,a,b,Rh] = in_dat()
%ввод исходных данных
R=input('Введите значение погрешности вычислений\n','s');
E=str2double(R);
R=input('Введите начальный шаг вычисления\n','s');
h=str2double(R);
R=input('Введите левую границу интервала A\n','s');
a=str2double(R);
R=input('Введите правую границу интервала B\n','s');
b=str2double(R);
R=input('Величина уменьшения шага\n','s');
Rh=str2double(R);
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
11
начало
конец
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
Вопрос-ответ:
Какие уравнения можно решать методом поразрядного приближения?
Метод поразрядного приближения позволяет решать нелинейные и трансцендентные уравнения.
В каких областях можно применять метод поразрядного приближения?
Метод поразрядного приближения широко применяется в науке и технике для решения различных задач, таких как моделирование физических процессов, оптимизация функций, решение уравнений, etc.
Какие требования предъявляются к интерфейсу пользователя программы для решения уравнений методом поразрядного приближения?
Интерфейс пользователя программы должен быть интуитивно понятным и удобным в использовании. Пользователю должно быть легко вводить уравнение и задавать начальное приближение. Также желательно иметь возможность задавать точность вычислений и отображать результаты на экране.
Какая реакция программы на ошибки ввода и вычислений?
При возникновении ошибок ввода (неправильно заданное уравнение, некорректное начальное приближение) программа должна сообщить пользователю о наличии ошибки и запросить корректные значения. При ошибке вычислений (например, деление на ноль) программа должна обработать исключение и предложить пользователю ввести новые значения.
Как выбирается метод решения задачи при использовании метода поразрядного приближения?
Выбор метода решения задачи зависит от типа уравнения и условий задачи. В основе метода поразрядного приближения лежит идея разбивать уравнение на отдельные части и решать их последовательно. Для каждой части может использоваться различный метод решения, например, метод Ньютона или метод деления пополам.
Каким методом решаются нелинейные и трансцендентные уравнения в данной статье?
В данной статье предлагается метод поразрядного приближения для решения нелинейных и трансцендентных уравнений.
В каких случаях можно применить метод поразрядного приближения?
Метод поразрядного приближения может быть использован для решения нелинейных и трансцендентных уравнений в различных областях науки и техники, а также в задачах, требующих численного решения и оптимизации.
Какие требования предъявляются к интерфейсу пользователя для использования данного метода?
Для использования метода поразрядного приближения пользователю необходимо иметь доступ к программе, способной выполнять численные вычисления, а также знания и навыки в области математики и программирования.