- •Численные методы моделирования
- •Численные методы моделирования
- •Первичная обработка информации
- •1.Для 8 значений X из диапазона 5..8 заполнить и распечатать массив y[I]
- •Численное дифференцирование
- •Численное интегрирование
- •Численное решение дифференциальных уравнений
- •Основные команды мatlab
- •1.Требования к идентификатору
- •2.Команды ввода исходных данных
- •3. Арифметические операторы
- •4. Операторы отношения
- •5.Логические операторы
- •9..Графика
- •2.Пример 2.
- •3.Функции
3.Функции
.
Функции представляет собой важный инструмент, позволяющий писать хорошо структурированные программы.
Функции должны быть описаны в отдельном файле, обращение к ней производится, из основной программы.
Описание функций включает заголовок и основную часть описания.
Пример . Создания функции . F(x)=x*x
function y=F(x); %описание функции сохраняется в файл с именем F.m
y=x*x;
Обращение к функции
F(3)% получаем 9
ПРИЛОЖЕНИЕ 2. Технология программирования
Включает пять технологических операций (этапов):
Постановка задачи.
Математическое описание.
Алгоритм структограмма.
Написание текста программы.
Отладка, получение результатов.
При разработке программ будем последовательно выполнять технологические этапы программирования, для наглядности помещая их в таблицу.
Пример. Определить площадь круга.
Этапы разработки программы сведены в таблицу.
Таблица
N |
Этапы программирования |
Выполнение | ||||
1. |
Постановка задачи |
Составить программу для вычисления площади круга радиусом R.
| ||||
2. |
Математическое описание |
Расчетная формула :S=R
| ||||
Описание
R,S Ввод
R Расчет
S=R Вывод
S
|
Разработка алгоритма (структограммы) |
| ||||
4. |
Написание программы |
%{ программа вычисления площади круга} R:=4;}{другой вариант ввода исходных данных} S:=3.14*Sqr(R);{расчет} {S:=Pi*sqr(R);} {другой вариант расчета} Writeln(‘R=’,R:3:1, ‘S=’,S:8:4); {Вывод} end. | ||||
5. |
Отладка и получение результатов |
R= 4.0 S= 48.7654 |
ПРИЛОЖЕНИЕ 3. Структурное программирование
Структурное программированиеэто стиль программирования, позволяющий разрабатывать хорошо структурированные программы.
Основные положения структурного программирования:
Программа разбивается на блоки, каждый из которых имеет один «вход» и один «выход».
Любая программа может быть составлена из трех структур или блоков, которые представлены в таблице.
Алгоритмы при структурном программировании представляются в виде структоргамм, элементы написания которых также приведены в таблице.
Таблица
Основные типы структур и примеры их изображения на структограммах
Название |
Алгоритм | |
Блок-схема |
Структограмма | |
а) линейная структура |
|
|
б) ветвящаяся структура
|
|
|
в) циклическая структура -с предусловием
-с постусловием:
|
|
|
ПРИМЕР 1. Выполнения контрольной работы
Вариант№ 1
1.Для 8 значений x из диапазона 5..8 заполнить и распечатать массив y[i]
Построить график функции y(x).
Определить cр. арифметическое y[i]<2.
Определить cр. геометрическоеt abs(x[i])<6.
Определить максимальное значение y[i]<1
Определить минимальное значение x[i]>6
Программа
function kr
for i=1:8
x(i)=5+3*rand
if x(i)<=6
y(i)=cos(x(i));
else
y(i)=log(x(i));
end
end
[x' y']
plot(x,y,'*')
A=0;n=0;
for i=1:8
if y(i)<=2
A=A+y(i);
n=n+1;
end
end
A=A/n;
[A]
P=0;k=0;
for i=1:8
if x(i)>6
P=P+x(i);
k=k+1;
end
end
P=P^(1/k);
[P]
MaxY=-10;
for i=1:8
if (y(i)>MaxY)&(y(i)<1)
MaxY=y(i);
end
end
[MaxY]
MinX=10;
for i=1:8
if (x(i)<MinX)&(x(i)<6)
MinX=x(i);
end
end
[MinX]
end
Результат выполнения
x y
7.2119 1.9757
5.4096 0.6420
5.0353 0.3173
7.6817 2.0388
5.5974 0.7739
5.8962 0.9260
6.9843 1.9437
5.8532 0.9090
A = 1.0697
P = 2.7968
MaxY = 0.9260
MinX = 5.0353
ПРИМЕР 2.. Лабораторная работа 1
Задание. 1. Bычислить значение производнойa функции y=x2 в точке x=1 аналитически и численно тремя методами для пяти значений приращения аргумента Dx=1 ; 0.5 ; 0.1 ; 0.01 ; 0.001 . Результаты расчета вывести на экран и распечатать в виде таблицы (табл.3)
Таблица 3
Dx |
y(x) |
y'(x) |
|
|
|
1 |
|
|
|
|
|
0.2 |
|
|
|
|
|
0.1 |
|
|
|
|
|
0.01 |
|
|
|
|
|
0.001 |
|
|
|
|
|
2. Построить графики функций .
Программа
function LR1
function y=f(x);y=x*x; end
dx=[1 0.5 0.1 0.01 0.001 ]
x=1;dya=[2 2 2 2 2];
for i=1:5
dy1(i)=(f(x+dx(i))-f(x))/dx(i);
dy2(i)=(f(x)-f(x-dx(i)))/dx(i);
dy3(i)=(f(x+dx(i))-f(x-dx(i)))/2/dx(i);
end
[dx' dya' dy1' dy2' dy3']
plot(dx,dya,dx,dy1,dx,dy2,dx,dy3)
end
Результат выполнения
Dx dya dy1 dy2 dy3
1.0000 2.0000 3.0000 1.0000 2.0000
0.5000 2.0000 2.5000 1.5000 2.0000
0.1000 2.0000 2.1000 1.9000 2.0000
0.0100 2.0000 2.0100 1.9900 2.0000
0.0010 2.0000 2.0010 1.9990 2.0000
ПРИМЕР 3.. Лабораторная работа 2
Задание. 1. Bычислить значение определенного интеграла аналитически и численно четырьмя методами для пяти значений N, где N- число разбиений интервала интегрирования N=10; 20; 50; 100; 1000. Результаты расчета вывести на экран и распечатать в виде таблицы и графикаI(N).
Программа
function LR2
function y=f(x);y=x*x; end
N=[10 20 50 100 1000]
a=0;b=1;Sa=[1/3 1/3 1/3 1/3 1/3];
for i=1:5
h=(b-a)/N(i);S1(i)=0;S2(i)=0;S3(i)=0;S4(i)=0;
x=a;
for j=1:N(i)
S1(i)=S1(i)+f(x);x=x+h;
end
S1(i)=S1(i)*h;
x=a+h;
for j=1:N(i)
S2(i)=S2(i)+f(x);x=x+h;
end
S2(i)=S2(i)*h;
x=a+h;
for j=1:N(i)-1
S3(i)=S3(i)+f(x);x=x+h;
end
S3(i)=(f(a)/2+f(b)/2+S3(i))*h;
x=a+h;
for j=1:N(i)-1
if mod(j,2)==1
S4(i)=S4(i)+4*f(x);
else
S4(i)=S4(i)+2*f(x);
end
x=x+h;
end
S4(i)=(f(a)+f(b)+S4(i))*h/3;
end
format bank
[N' Sa' S1' S2' S3' S4']
plot(N,Sa,N,S1,N,S2,N,S3,N,S4)
end
Результат выполнения
N Ia I1 I2 I3 I4
10.00 0.33 0.28 0.39 0.33 0.33
20.00 0.33 0.31 0.36 0.33 0.33
50.00 0.33 0.32 0.34 0.33 0.33
100.00 0.33 0.33 0.34 0.33 0.33
1000.00 0.33 0.33 0.33 0.33 0.33
ПРИМЕР4.. Лабораторная работа 3.
Решение дифференциальных уравнений