Примеры программ, реализующих рассмотренный алгоритм

Разработку программы целесообразно начать с простого модуля решения задачи. Ниже приведен пример программы для рассмотренного выше примера, в комментариях приведены соответствующие фрагменты псевдокода. Этот пример можно скопировать в среду 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] Методические указания не ставят целью приводить полное изложение примеров выполнения разделов. Подобные материалы имеются в рекомендованной литературе и в сети Интернет по всем вариантам заданий