Разработку программы целесообразно начать с простого модуля решения задачи. Ниже приведен пример программы для рассмотренного выше примера, в комментариях приведены соответствующие фрагменты псевдокода. Этот пример можно скопировать в среду 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. Титульный лист.
Форма титульного листа приведена в приложении.
2. Содержание.
Содержание должно включать наименование всех разделов отчета с указанием номера страниц, на которых помещаются начала данных разделов.
3. Основная часть отчета:
· математическая постановка задачи;
· описание метода численной реализации задания;
· описание ручного счета тестового примера предложенным методом;
· разработка алгоритмов решения задачи;
· листинг программы;
· результат работы программы
· результат реализации метода с помощью встроенных функций;
· сравнение обоих результатов.
5. Заключение.
Содержит общие выводы и сравнительный анализ результатов, полученных с помощью ручного счета и на ПК по разработанной программе.
6. Список использованной литературы.
Список должен содержать сведения об источниках, использованных при составлении пояснительной записки. В список следует включать все виды использованной литературы: монографии, учебники, справочники, журналы, статьи и т.п. Список следует располагать в порядке появления ссылок на источники в тексте пояснительной записки и нумеровать арабскими цифрами с точкой. В тексте должны быть ссылки на соответствующие пункты списка. При использовании интернета обязательно указывается имя сайта.
При необходимости перечисленные разделы могут быть дополнены другими разделами,
Образец титульного листа приведен в приложении 1.
Отчет должен быть написан хорошим языком без грамматических и семантических ошибок; текст не должен допускать различных толкований, не следует употреблять для одного и того же понятия различные термины.
Список литературы.
1. Иванова Г.С. Основы программирования: Учебник для вузов.-М.: Изд-во МГТУ им. Н.Э.Баумана, 2001;
2. Бураков М.В. Основы работы в MATLAB: учебное пособие/ М.В. Бураков.- ГУАП.СПб., 2006;
3. Васильев Ф.П. Численные методы решения экстремальных задач. Учебное пособие для студ. ВУЗов - М.,НАУКА 1982, 552 с., [Шифр 519.6/8,В-19]
4. Волков Е.А. Численные методы: учебное пособие - М., Наука, 1982,254 с.;
5. Самарский А.А. Введение в численные методы. Учебное пособие для Вузов, - М., Наука,1987,288 с.,;
6. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран, Паскаль. - Томск, МП "Раско",1992,406 с.;
7. Дудник В.М., Карпова Т.С., Плющева Л.В. Документирование программного обеспечения. Методические указания для курсового проектирования. -Л., ЛИАП,1986.
8. Бахвалов Н. С., Лапин А. В., Чижонков Е. В. Численные методы в задачах и упражнениях. Учеб. пособие. / Под ред. В. А. Садовничего – М.: Высш. шк. 2000. – 190 с.
9. Дьяконов, В. П. MATLAB 7.*/R2006/R2007: самоучитель. – М.: ДМК Пресс, 2008. – 767 с.
Приложение 1.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА КОМПЬЮТЕРНОЙ МАТЕМАТИКИ И ПРОГРАММИРОВАНИЯ
ОТЧЕТ О ПРАКТИКЕ
ЗАЩИЩЕН С ОЦЕНКОЙ
РУКОВОДИТЕЛЬ
к.ф.-м.н., доцент | М. В. Фаттахова | |||
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
ОТЧЕТ ПО УЧЕБНО-ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ | ||||||||||||
РАЗРАБОТКА ПРОГРАММЫ ПО РЕШЕНИЮ НЕЛИНЕЙНЫХ УРАВНЕНИЙ МЕТОДОМ ИТЕРАЦИЙ | ||||||||||||
ОТЧЕТ ВЫПОЛНИЛА
Санкт-Петербург 2012 | ||||||||||||
[1] Методические указания не ставят целью приводить полное изложение примеров выполнения разделов. Подобные материалы имеются в рекомендованной литературе и в сети Интернет по всем вариантам заданий