Определение количества теплоты, выделяющегося на единичном сопротивлении за единицу времени

Страницы работы

Содержание работы

                Государственный комитет РФ по связи и информатизации

Сибирский государственный университет телекоммуникаций и информатики

КУРСОВАЯ   РАБОТА

По предмету :  Информатика

Студент 2 курса группа М-52 заочной формы подготовки специалистов по сокращенной программе

Преснецов Сергей Юрьевич

Работа выполнена : «___»____________200___г.

________________________________________________________________________

Оценка _________________________ «___» _____________200___г.

Преподаватель_____________________________________________

Новосибирск

2007 г.

Постановка задачи

Напряжение в электрической цепи описывается уравнением

  2.     y' = 1 – sin (kx + y) + (Iy)/(2 + x)                                                      (1)

          y(0) = 0 , где  k = 1 + /4  , I = - 0,3 + 0,2  + /1000                  (2)

где а=3, b=3.

Определить количество теплоты , выделяющегося на единичном сопротивлении за единицу времени . Количество теплоты определяется по формуле :

         T

Q =   y² dt

1-й этап .

Для задачи Коши составляем программу по блок-схеме (рис.1) и проверяем , сначала правильность ее работы на тестовом примере , где полагаем  :

  y' = ƒ (х , у) = х ,

  у(0) = 0

Блок-схема дифференциального уравнения 1-го порядка методом Рунге-Кутта

1
I

Блок-схема: карточка: Procedure
RK (m : integer … ; var y : mas)
Блок-схема: карточка: VAR :
К1 , К2 , К3 , К4 , КС : real

           b – a

h = ------- ; y [0] = yo

              m

 
Блок-схема: карточка: const:
a,b,e,yo
Блок-схема: знак завершения: начало

 


                                              begin

 


II

                                            begin

         RK(M, U1)

 

M = 2M

 

    RK(M, U2)

 

M2=Mdir·2

 

L = true

 
Ромб: | U2[M] –U1[M2] |
----------------------- >e
15
Ромб: Until 1

L = False

 

x = n

 

U[o] = n

 
Блок-схема: подготовка: i = QMБлок-схема: документ: WRITELN ( U[i] , U2[i] )
WRITELN (FF1. U[i] , U2[i] )

x = x + h

U [i+1] = x

 

L = false

 

нет

 

да

 

end

 

           M = 5

 
Блок-схема: знак завершения: конец
Блок-схема: знак завершения: конец
 


Рисунок 1.

Здесь I ,  II описательная и операторная части программы ; a , b – концы отрезка интегрирования ; е – погрешность счета ; YO – начальное значение искомой функции ;  F (x ; y) – функция , являющаяся прямой частью уравнения (1)(здесь дается ее описание) ; procedure RK – здесь решается уравнение (1) (с условием (2)) ; U1 , U2 – массивы , используемые для получения искомого решения (4)-(5) и распечатки результатов .

3

Программа 1-го этапа

uses crt;

type mas=array[0..1000] of real;

const a=0;

      b=1;

      y0=0;

      e=0.001;

var

h:real;

u1,u2:mas;

i,m,m2:integer;

l:boolean;

function f(x,y:real):real;

begin

f:=x;

end;

procedure RK(m:integer; var y:mas);

var

k1,k2,k3,k4,kc:real;

i:integer;

begin

h:=(b-a)/m;

y[0]:=y0;

for i:=0 to m-1 do

begin

k1:=f(a+i*h,y[i]);

k2:=f(a+i*h+h/2,y[i]+k1*h/2);

k3:=f(a+i*h+h/2,y[i]+k2*h/2);

k4:=f(a+i*h+h,y[i]+k3*h);

kc:=(k1+2*k2+k3*2+k4)/6;

y[i+1]:=y[i]+kc*h;

end;

end;

begin

clrscr;

m:=1;

repeat

rk(m,u1);

m:=m*2;

rk(m,u2);

l:=true;

m2:= m div 2;

if (abs(u2[m]-u1[m2])/15)>e then l:=false;

4

until l;

writeln('   X      Y');

for i:=0 to m do

writeln(i*h:5:1,'  ', u2[i]:5:2);

readln;

end.

Результат выполнения:

Значение у = 0,5 при х = 1 является показателем правильности работы этой части программы.

Далее, модифицируем функцию f под наши условия задачи Коши и примем m=5.

function f(x,y:real):real;

const a=3;

         b=3;

var k,i:real;

begin

k:=1+a/4;

i:=-0.3+0.2*a+b/1000;

f:=1-sin(k*x+y)+(i*y)/(2+x);

end;

Результат выполнения:

А это означает, что решение, удовлетворяющее заданной точности 0,001, найдено при m=10, т.е. шаг h=0.1.

5

2-й этап.

Похожие материалы

Информация о работе