Читайте также:
|
|
Выполнил: студент гр. АТПбзс-11-1
Проверил: доц.
к.т.н. Бруслова О.В.
г. Новый Уренгой
2013г.
Задание: изучить решение задач одномерной оптимизации методом
перебора значений целевой функции.
Вариант № 7
Задание №1
Найти на отрезке [0,10] абсциссу точки минимума х функции U=x2+k1exp(k2x) с абсолютной погрешностью, не превышающей 0,0001.
k1 = 7,0 k2 = 0.35
Подставив коэффициенты k1 и k2 в заданную функцию, получим
U=x2+7exp(0,35x)
Текст программы (язык Pascal 7.0):
program pr {u:=x^2+7*exp(0.35*x)};
uses crt;
var n,umin,e,h,a,z,b: real;
k,kmin: integer;
u,x: array[1..100] of real;
begin
clrscr;
writeln ('vvedite granici otrezka - a,b');
readln (a,b);
writeln ('vvedite e');
readln (e);
n:=(b-a)/e; {e - zadannaya tochnost, t.e. shag,}
h:=(b-a)/n;
for k:=1 to 100 do
begin
x[k]:=a+k*h;
u[k]:=x[k]*x[k]+7*exp(0.35*x[k]);
end;
umin:=u[1];
kmin:=1;
for k:=2 to 100 do
begin
if u[k]<umin then
begin
umin:=u[k];
kmin:=k;
end;
end;
writeln ('otvet:=',umin);
writeln ('argument:=',x[kmin]);
writeln ('press any key');
readln (e);
end.
Протокол работы программы
Построим график заданной функции:
Хmin= 0 | Umin=7 |
Результаты теоретических расчетов совпадают с практическими результатами, изображенными на графике.
Задание № 2
В результате эксперимента определены значения некоторой величины у - уэ (х1), соответствующие определенным значениям другой переменной х – х1. При этом установлено, что между величинами у и х существует функциональная зависимость, причем вид функции yT=f(x) известен, требуется определить такое значение параметра к этой функции, при котором сумма квадратов отклонений экспериментальных данных от расчетных значений будет минимальна:
Номер варианта | Экспериментальные данные | ут(x) | a | B | ε | |||||
x | k*exp(x) | 0,01 | ||||||||
y | 5,44 | 14,9 | 40,20 | 109,0 | 296,05 |
Графики теоретический (1) и практический (2)
Практический график построен по изначально данным точкам.
Текст программы (язык Pascal 7.0):
program programmlab12;
var
ypr,yt,krash: array [1..5] of real;
x,n: integer;
k: real;
begin
ypr[1]:=5.44;yt[1]:=0;
ypr[2]:=14.9;yt[1]:=0;
ypr[3]:=40.20;yt[1]:=0;
ypr[4]:=109.0;yt[1]:=0;
ypr[5]:=296.05;yt[1]:=0;
n:=1;
For:=1 to 5 do
begin
k:=0;
while ypr[n]<>yt[n]do
begin
yt[n]:=k*exp*(x);writeln ('yt[n]=',yt[n]:4:2);
krash[n]:=k;writeln('krash[n]=',krash[n]:4:2);
k:=k+0.01;
n:=n+1;
end;
end;
k:=(krash[1]+krash[2]+krash[3]+krash[4]+krash[5])/5;
writeln('k=',k:4:2);
read(x);
end.
В результате выполнения программы мы получили значение k = 0.02. Анализируя полученные графики, приходим к выводу о том что функция отклика модели отличается от У объкта.
Показано увеличение корректирующего воздействия на модель с целью усиления диапазона функции отклика. (к=0,99)
ЗАДАНИЕ К ЛАБОРАТОРНОМУ ПРАКТИКУМУ
Лабораторная работа №1
Арифметические выражения. Оператор ветвления
Вариант №
Вычислить значение переменной k:
Алгоритм в виде блок-схемы
Текст программы
Дата добавления: 2014-12-19; просмотров: 174 | Поможем написать вашу работу | Нарушение авторских прав |