Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бАКАЛАВР_РАБОТА.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.13 Mб
Скачать

3.2 Входная информация

На вход языкового процессора поступает компьютерная модель, записанная с новыми конструкциями языка ИСМА.

Таким образом, компьютерная модель описанной выше задачи реакции-диффузии с размерностью N=20 должна иметь вид, как на рис. 3.2.

N = 20; k = 100 ; C2 = 16;

phi = 2;

count i = [1-10];

countj = [2-9];

arrayy[20]; // объявлениемассива

// начальные условия

y[2*i -1] = 0;

y[2*i] = 1;

// макросспараметром

macro alpha[i] = 2*pow(i/N - 1, 3)/C2;

macro beta[i] = 2*pow(i/N - 1, 4)/C2;

// явноезаданиеправыхчастейСДУ

y'[1] = alpha[1]*(y[3]- phi)*N/2 + beta[1]*(phi - 2*y[1] + y[3])*N*N - k*y[1]*y[2];

y'[2] = -k*y[2]*y[1];

y'[19] = -k*y[20]*y[19] ; y'[20] = -k*y[19]*y[20] ;

// алгоритмическая форма задания правых частей СДУ

y'[2*j-1] = alpha[j]*(y[2*j + 1] - y[2*j - 3])*N/2 + beta[j]*(y[2*j - 3] - 2*y[2*j-1] + y[2*j+1]) *N*N - k*y[2*j -1]*y[2*j];

y'[2*j] = -k*y[2*j]*y[2*j-1];

// гибридность

change_phi [TIME>= 5] is

phi~=0;

frominit;

Рисунок 3.2 – Компьютерная модель на входе языкового процессора

3.3 Выходная информация

После выполнения трансляции на выходе языкового процессора должна быть получена компьютерная модель, соответствующая старой версии языкаИСМА. Она показана на рис. 3.3.

N=20;

k=100;

C2=16;

phi=2;

// начальные условия

y1=0;

y3=0;

y5=0;

y7=0;

y9=0;

y11=0;

y13=0;

y15=0;

y17=0;

y19=0;

y2=1;

y4=1;

y6=1;

y8=1;

y10=1;

y12=1;

y14=1;

y16=1;

y18=1;

y20=1;

// задание правых частей СДУ

y1'=2*pow(1/N-1,3)/C2*(y3-phi)*N/2+2*pow(1/N-1,4)/C2*(phi-2*y1+y3)*N*N-k*y1*y2;

y2'=(-k)*y2*y1;

y19'=(-k)*y20*y19;

y20'=(-k)*y19*y20;

y3'=2*pow(2/N-1,3)/C2*(y5-y1)*N/2+2*pow(2/N-1,4)/C2*(y1-2*y3+y5)*N*N-k*y3*y4;

y5'=2*pow(3/N-1,3)/C2*(y7-y3)*N/2+2*pow(3/N-1,4)/C2*(y3-2*y5+y7)*N*N-k*y5*y6;

y7'=2*pow(4/N-1,3)/C2*(y9-y5)*N/2+2*pow(4/N-1,4)/C2*(y5-2*y7+y9)*N*N-k*y7*y8;

y9'=2*pow(5/N-1,3)/C2*(y11-y7)*N/2+2*pow(5/N-1,4)/C2*(y7-2*y9+y11)*N*N-k*y9*y10;

y11'=2*pow(6/N-1,3)/C2*(y13-y9)*N/2+2*pow(6/N-1,4)/C2*(y9-2*y11+y13)*N*N-k*y11*y12;

y13'=2*pow(7/N-1,3)/C2*(y15-y11)*N/2+2*pow(7/N-1,4)/C2*(y11-2*y13+y15)*N*N-k*y13*y14;

y15'=2*pow(8/N-1,3)/C2*(y17-y13)*N/2+2*pow(8/N-1,4)/C2*(y13-2*y15+y17)*N*N-k*y15*y16;

y17'=2*pow(9/N-1,3)/C2*(y19-y15)*N/2+2*pow(9/N-1,4)/C2*(y15-2*y17+y19)*N*N-k*y17*y18;

y4'=(-k)*y4*y3;

y6'=(-k)*y6*y5;

y8'=(-k)*y8*y7;

y10'=(-k)*y10*y9;

y12'=(-k)*y12*y11;

y14'=(-k)*y14*y13;

y16'=(-k)*y16*y15;

y18'=(-k)*y18*y17;

// гибридность

change_phi [TIME>=5] is

phi~=0;

frominit;

Рисунок 3.3 ­– Компьютерная модель на выходе языкового процессора

3.4 Архитектура среды исма с расширенным языком описания гс

В рамках данной работы предполагается решить поставленную цель, создав препроцессор, который переводил бы входную программу с новыми конструкциями в старый формат, это расширит область применения среды ИСМА.Также препроцессор сообщит пользователю об семантических и синтаксических ошибках, таких как выход за границу массива, невыполнение условия полноты системы уравнения, деление на ноль и т.п.

В дальнейшем предполагается интеграция нового языкового процессора непосредственно в инструментальную среду ИСМА.

На рис. 3.4 показано место препроцессора в работе среды ИСМА.

Рисунок3.4 ­– Архитектура инструментальной среды ИСМА+

Препроцессор расширенногоязыка ИСМА выполняет анализ текстовой модели ГС в соответствии со схемой (рис. 3.5).

Рисунок 3.5 – Технологическая схема работы препроцессора