- •Санкт-Петербургский государственный университет аэрокосмического приборостроения
- •Учебно-вычислительная практика
- •5.1 Требования к входным и выходным данным разрабатываемой функции
- •5.2 Справка по некоторым функциям языка MatLab
- •5.3 Этапы разработки программного обеспечения
- •5.3.1 Постановка задачи
- •5.3.2 Анализ, формальная постановка и выбор метода решения
- •5.3.3 Разработка алгоритмов решения задачи
- •5.3.4 Реализация
- •5.3.5 Тестирование разработанных программных модулей
- •5.3.6 Пример разработки алгоритма
- •5.3.7 Примеры программ, реализующих рассмотренный алгоритм
5.3.7 Примеры программ, реализующих рассмотренный алгоритм
Разработку программы целесообразно начать с простого модуля решения задачи. Ниже приведен пример программы для рассмотренного выше примера, в комментариях приведены соответствующие фрагменты псевдокода. Этот пример можно скопировать в среду MatLab и выполнить.
%пример для методички 1 (только решение для заданной функции без диалога)
clear
E=0.01; %погрешность вычисления
n=3; %параметр
y=200; %для какого значения найти решение
Xm=20; %максимальное значение аргумента
x=0.1:0.2:Xm; %вектор значений аргумента
R='((x+1).^n-1)./x'; % Ввести выражение для функции
f = inline(R); %преобразовать строку в вычисляемое выражение
plot(x,f(n,x),'DisplayName','F','YDataSource','F') % Вывести %график функции
% Определить х1:
x1=Xm; % х1:=Xm
while(f(n,x1)>y) % цикл-пока f(xl) > у
x1=x1/2; % х1:=х1/2
end %все-цикл
% Определить х2:
x2=0.1; % х2:=0.1
while(f(n,x2)<y) %цикл-пока f(x2) < у
x2=x2*2; %х2 := х2*2
end %все-цикл
% Определить х:
while(x2-x1>E) % цикл-пока х2-х1 > E
xt=(x1+x2)/2; % xt:=(xl +х2)/2
if f(n,xt)>y % если f(xt) > у
x2=xt; % то х2 := xt
else %иначе х1 := xt
x1=xt;
end % все-если
end % все-цикл
at=f(n,x1); %результат
Пример программы с простым диалогом
%пример для методички
%с простым диалогом без проверки данных
clear
global f
f = in_fun();
y=0;
while(y==0)
[ E,n,Xm,y] = in_dat();
end
x=0.1:0.2:Xm;
F=f(n,x);
plot(x,f(n,x))
x1=Xm;
while(f(n,x1)>y)
x1=x1/2;
end
x2=0.1;
while(f(n,x2)<y)
x2=x2*2;
end
while(x2-x1>E)
xt=(x1+x2)/2;
if f(n,xt)>y
x2=xt;
else
x1=xt;
end
end
at=f(n,x1);
out_x(at,y,x1)
В последней программе использованы следующие функции:
function [ f] = in_fun()
%ввод вида функции
global f
R=input('Выражение для функции (только правую часть!!!)\n','s');
f = inline(R);
end
function [ E,n,Xm,y] = in_dat()
%ввод исходных данных
R=input('Введите значение погрешности вычислений\n','s');
E=str2double(R);
R=input('Введите показатель степени\n','s');
n=str2double(R);
R=input('Введите максимальное значение Xm\n','s');
Xm=str2double(R);
R=input('Для какого значения функции надо найти аргумент?\n','s');
y=str2double(R);
if y>f(n,Xm)
disp('Ошибка! Решения нет!')
y=0;
end
end
function [ ] = out_x(a,y,x)
%вывод результата
fprintf('Для y=%d\n',y)
fprintf('Решение x=%d\n',x)
fprintf('Ошибка вычисления составила %d\n',a)
end
Структура отчета
Отчет должен содержать следующие разделы:
Титульный лист.
Форма титульного листа приведена в приложении.
Содержание.
Содержание должно включать наименование всех разделов отчета с указанием номера страниц, на которых помещаются начала данных разделов.
Основная часть отчета:
математическая постановка задачи;
описание метода численной реализации задания;
описание ручного счета тестового примера предложенным методом;
разработка алгоритмов решения задачи;
листинг программы;
результат работы программы
результат реализации метода с помощью встроенных функций;
сравнение обоих результатов.
Заключение.
Содержит общие выводы и сравнительный анализ результатов, полученных с помощью ручного счета и на ПК по разработанной программе.
Список использованной литературы.
Список должен содержать сведения об источниках, использованных при составлении пояснительной записки. В список следует включать все виды использованной литературы: монографии, учебники, справочники, журналы, статьи и т.п. Список следует располагать в порядке появления ссылок на источники в тексте пояснительной записки и нумеровать арабскими цифрами с точкой. В тексте должны быть ссылки на соответствующие пункты списка. При использовании интернета обязательно указывается имя сайта.
При необходимости перечисленные разделы могут быть дополнены другими разделами,
Образец титульного листа приведен в приложении 1.
Отчет должен быть написан хорошим языком без грамматических и семантических ошибок; текст не должен допускать различных толкований, не следует употреблять для одного и того же понятия различные термины.
Список литературы.
Иванова Г.С. Основы программирования: Учебник для вузов.-М.: Изд-во МГТУ им. Н.Э.Баумана, 2001;
Бураков М.В. Основы работы в MATLAB: учебное пособие/ М.В. Бураков .- ГУАП.СПб., 2006;
Васильев Ф.П. Численные методы решения экстремальных задач. Учебное пособие для студ. ВУЗов - М.,НАУКА 1982, 552 с., [Шифр 519.6/8,В-19]
Волков Е.А. Численные методы: учебное пособие - М., Наука, 1982,254 с.;
Самарский А.А. Введение в численные методы. Учебное пособие для Вузов, - М., Наука,1987,288 с.,;
Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран, Паскаль. - Томск, МП "Раско",1992,406 с.;
Дудник В.М., Карпова Т.С., Плющева Л.В. Документирование программного обеспечения. Методические указания для курсового проектирования. -Л., ЛИАП,1986.
Бахвалов Н. С., Лапин А. В., Чижонков Е. В. Численные методы в задачах и упражнениях. Учеб. пособие. / Под ред. В. А. Садовничего – М.: Высш. шк. 2000. – 190 с.
Дьяконов, В. П. MATLAB 7.*/R2006/R2007: самоучитель. – М.: ДМК Пресс, 2008. – 767 с.
Приложение 1.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА КОМПЬЮТЕРНОЙ МАТЕМАТИКИ И ПРОГРАММИРОВАНИЯ
ОТЧЕТ О ПРАКТИКЕ ЗАЩИЩЕН С ОЦЕНКОЙ
РУКОВОДИТЕЛЬ
к.ф.-м.н., доцент |
|
|
|
М. В. Фаттахова |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ ПО УЧЕБНО-ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ | ||||||||||||
РАЗРАБОТКА ПРОГРАММЫ ПО РЕШЕНИЮ НЕЛИНЕЙНЫХ УРАВНЕНИЙ МЕТОДОМ ИТЕРАЦИЙ | ||||||||||||
| ||||||||||||
ОТЧЕТ ВЫПОЛНИЛА
Санкт-Петербург 2012 | ||||||||||||
|
1Методические указания не ставят целью приводить полное изложение примеров выполнения разделов. Подобные материалы имеются в рекомендованной литературе и в сети Интернет по всем вариантам заданий