Расчет характеристик электрической цепи

Автор: Пользователь скрыл имя, 20 Декабря 2011 в 18:49, курсовая работа

Описание работы

Если функция y=f(x) задаётся не формулой, а таблицей, т.е. в виде отдельных значений y0, y1,…, yn в узлах x0, x1,…, xn равноотстоящих с постоянным шагом h, то при вычислении её производной y’(x) приходится пользоваться формулами численного дифференцирования.

Содержание

Условие задания…………………………………………. 3
Формулы, использованные в программе……………4
Программа…………………………………………………6
Результаты (таблица)……………………………………8
Графики……………………………

Работа содержит 1 файл

курсовик.doc

— 61.00 Кб (Скачать)

Министерство  РФ по связи и информатизации

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

Кафедра ПМ и К 
 
 
 

Курсовая  работа

Тема: «Расчет характеристик  электрической цепи» 
 
 

Выполнила: студентка гр. М-62

                    Ваулина Е.С.

                                         Проверил:              Рягин Б.А.     
 
 
 
 
 
 
 

Новосибирск

2007г. 
 

                            Содержание. 

  1. Условие задания…………………………………………. 3
  2. Формулы, использованные в программе……………4
  3. Программа…………………………………………………6
  4. Результаты (таблица)……………………………………8
  5. Графики…………………………………………………….9 
 
 
 
 
 
 
 

 

 

Условие:

Измерение заряда (Y) на некотором конденсаторе, описанного дифференциальным уравнением:

       Y′=1+Y*sin(x)-l*Y2

       Y(0)=0, k=0.1*a, l=0.5*(a+1)+b/1000 

Составить программу, вычисляющую  силу тока при

       I=Y/∆x =Y/h, при х=0,05; 0,1; 0,15; … 0,95  (h=0,05).

Разность  ∆Y вычисляется для тех интервалов x= h, которые заключают в себе указанные точки

х=0,1; 0,2; 0,3; … 0,9.

Для сравнения провести вычисление Y′ по формуле, указанной в вариантном задании.

Представить распечатку заряда Y для Х, принадлежащего [0;1];   Y′ и I для Х, принадлежащего [0.1; 0.9]. 
 
 
 
 
 
 
 

 

 

Формулы, используемые в программе:

    Метод Рунге-Кутта – метод решения дифференциального уравнения, в котором на каждом шаге xi при вычислении yi используется четыре значения углового коэффициента:

Решение ищется на отрезке [a ; b]. Для получения решения отрезок делится на  N частей точками  Xi =a+(b - a)*i/N с постоянным шагом h=(b - a)/N. Пусть Y(Xi)-значение точного решения в точке Xi ; а Yi-значение приближённого  решения в точке Xi .

    В методе Рунге – Кутта на каждом шаге i = 0,1,2,…,(n-1) используется четыре значения углового коэффициента, которые затем усредняются, и затем делается окончательный шаг для нахождения очередного y по формулам:

           K1i=F(Xi ; Yi )=Ki ;

    K2i=F(Xi + H/2 ; Yi + K1i*H/2) ;

    K3i=F(Xi + H/2 ; Yi + K2i*H/2) ;

    K4i=F(Xi + H ; Yi + K3i*H) ;

         Усредним: 

    KCi=(K1i + 2*K2i + 2*K3i + K4i)/6 ;

    Yi+1=Yi + KCi*H;     i = 0,1,2,…,(n-1)

           Единичная погрешность на каждом шаге i:

    Ri=Zrk*Y(5)(Ci)*H5      Xi<Ci<Xi+1.

Суммарная погрешность  характеризующая вычисления Yn:

    Q=Ri*N;  | Y(5)(Ci)|=<M5

    Max|Q|<Zrk*(b - a)M5*H4

Получим другую формулу оценки суммарной погрешности  с помощью двойного пересчёта:

    Y(Xn)=Yn + Zrk*(b - a)M5*H4=Yhn + P*H4    делим H на 2

    Y(Xn)=Yh/2n + P*(H/2)4 |*16

    16*Y(Xn)=16*Yh/2n + P*H4

    Y(Xn)=Yhn + P*H4

    15*Y(Xn)=16Yh/2n – Yhn=15*Yh/2n + Yh/2n - Yhn

    Y(Xn) – Yh/2n=(Yh/2n - Yhn ) /15

    Y(Xn) – Yh/2n=Q 

    Если разность |(Yh/2n - Yhn)/15|<E, то |Y(Xn) – Yh/2n|<E. 

    Интерполирование – восстановление всех значений функции по её отдельным узловым значениям с помощью интерполяционного многочлена Ln(x) по правилу: в узлах Ln(xi)=yi, вне узлов Ln(xi) y(xi). При линейной интерполяции каждые две соседние точки соединяются отрезком прямой, уравнение которой получено с помощью интерполяционного многочлена. В совокупности все отрезки представляют собой график интерполяционной кривой, приближённо представляющей график искомой функции.

      
 
 
 
 

Численное дифференцирование

Если функция y=f(x) задаётся не формулой, а таблицей, т.е. в виде отдельных значений y0, y1,…, yn в узлах x0, x1,…, xn равноотстоящих с постоянным шагом h, то при вычислении её производной y’(x) приходится пользоваться формулами численного дифференцирования. В данной работе используется формула , причём производная y’(x), вычисленная по данной формуле, соответствует всем значениям x в интервале , т.е. имеет неизменное значение для всех x, принадлежащих отрезку [xi; xi+1], поскольку отсутствует предельный переход и производная вычисляется сразу для всех точек интервала, то её значение получается здесь приближённым. 

3.Используемые  обозначения:

a, b – концы отрезка интегрирования;

e – погрешность счёта;

Y0 – начальное значение искомой функции;

FF1.txt – файл, используемый для распечатки результатов;

F(X, Y) – функция, являющаяся правой частью уравнения;

Procedure RK – в данной процедуре решается уравнение;

Procedure Interpol – в данной процедуре находятся значения z[k]= 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, и значения интерполяционного многочлена в узлах z[k]. 
 
 

Программа 

Program variant7;

uses crt, graph ;

const a = 0 ; b = 1 ; a1 = 2 ; b1 = 7 ; l1 = 1.507; x0 = 0 ; y0 = 0 ; e = 0.01 ;

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

var  i, k, m1, gt, gm, xm, ym: integer ;

      h, x, min, max, I_1, y_1, y : real;

      v1, v2, u1, u2 : mas ;

      l : boolean ; f1 : text ;

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

begin

F:=1+y*sin(x)-l1*y*y;

end ;

procedure RK(m : integer; var X : mas; var Y : mas) ;

var i : integer ;

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

begin

h := (b - a) / m ;

X[0] := a ; 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 + 2 * k3 + k4 ) / 6 ;

X[i + 1] := a + i * h + h ;

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

end ; end ;

function cx(x : real) : integer ;

begin

cx := round(10 + (x - a) / (b - a) * (xm - 20) );

end ;

function cy(y : real) : integer ;

begin

cy := round( (ym - 10) - (y - min) / (max - min) * (ym - 20) );

end ;

begin clrscr;

k := 20 ;

repeat

RK(k, v1, u1);

k := 2 * k;

RK(k, v2, u2);

l:= true;

m1 := k div 2;

if abs(u2[k] - u1[m1]) / 15 > e then

l := false ;

until l ;

m1 := k ;

assign(f1, 'kurs.txt'); rewrite(f1) ;

writeln('|   x      |    y     |   y^     |     I    |  Inter   |');

writeln(f1, '|       x      |       y      |     y^      |        I      |    Inter  |');

writeln('| ' , v2[0]:8:4,  ' | ', u2[0]:8:4, ' |') ;

writeln(f1, '| ' , v2[0]:8:4,  ' | ', u2[0]:8:4, ' |') ;

h := 0.05 ; x := h ;

while x < b do begin

for i := 1 to m1 - 1 do begin

if  ( (v2[i] <= x) and (v2[i + 1] >= x)  )  or

( (v2[i] >= x) and (v2[i + 1] <= x)  )

then begin

y_1 := F(x, (u2[i] + u2[i + 1]) / 2 ) ;

I_1 := (u2[i + 1] - u2[i]) / (v2[i + 1] - v2[i])  ;

y:=U2[0]*(x-b)/(a-b)+U2[m1]*(x-a)/(b-a);

writeln('| ' ,x:8:4, ' | ', u2[i]:8:4, ' | ', y_1:8:4, ' | ', I_1:8:4, ' |', y:8:4, '|') ;

writeln(f1, '| ' ,x:8:4, ' | ', u2[i]:8:4, ' | ', y_1:8:4, ' | ', I_1:8:4, ' |', y:8:4, '|');

break ;

end ;

end ;

x := x + h ;

end;

writeln('| ' , v2[m1]:8:4,  ' | ', u2[m1]:8:4, ' |') ;

writeln(f1, '| ' , v2[m1]:8:4,  ' | ', u2[m1]:8:4, ' |') ;

close(f1);

readln;

min := u2[0] ;

max := u2[0] ;

for i := 1 to m1 do begin

if u2[i] < min

then min := u2[i] ;

if u2[i] > max

then max := u2[i] ;

end ;

gt := detect ;

initgraph(gt, gm, '');

xm := GetMaxX ;

ym := GetMaxY ;

setcolor (3);

i := 10 ;

repeat

line(i, 5, i, ym - 5) ;

i := i + 20 ;

until i > xm - 20 ;

i := 10 ;

repeat

line(5, i, xm - 20, i) ;

i := i + 20 ;

until i > ym - 20 ;

setcolor (5);

MoveTo( cx(v2[0]), cy(u2[0]) );

for i := 1 to m1 do

LineTo( cx(v2[i]), cy(u2[i]) );

readln ; CloseGraph ; end. 

Полученные  результаты. 

                     |      x      |       y     |     y^     |        I     |    Inter |

                     |   0.0000 |   0.0000 |

|   0.0500 |   0.0250 |   0.9998 |   0.9993 |  0.0429|

|   0.1000 |   0.0749 |   0.9972 |   0.9961 |  0.0858|

|   0.1500 |   0.1247 |   0.9922 |   0.9905 |  0.1286|

Информация о работе Расчет характеристик электрической цепи