42337

Чисельні методи - обєктно-орієнтований підхід

Лабораторная работа

Информатика, кибернетика и программирование

Курс Чисельні методи, як і будь-який інший, побудовано за принципом від простого до складного, тому методи, що їх розглядають у перших розділах програми, виявляються складовими частинами алгоритмів, що розглядаються на подальших етапах. Це дозволяє побудувати роботу над програмним забезпеченням так, щоби не робити дурної роботи двічі, а то і тричі. Хоча, в принципі, формально немає заборони кожен програмний проект розробляти з самого початку, аби все було правильно.

Украинкский

2014-03-24

107.5 KB

4 чел.

Чисельні методи - об'єктно-орієнтований підхід

У цьому документі описується  програмове забезпечення, розроблене для реалізації чисельних методів.

Задачею цього курсу є передати студентам знання щодо сутності чисельних методів. Тому, незважаючи на те, що існує сила-силенна готових пакетів, що реалізують готові чисельні методи (MatCAD, MatLab, Derive і т. ін.), тут будемо розглядати питання, що стосуються реалізації цих методів.

Протягом двох семестрів студенти мають виконати дев'ять лабораторних робіт.

І семестр.

1. Методи розв'язання нелінійних (алгебраїчних) рівнянь.

2. Прямі методи розв'язання систем лінійних алгебраїчних рівнянь (СЛАР).

3. Ітераційні методи розв'язання СЛАР.

4. Методи розв'язання систем нелінійних рівнянь.

5. Інтерполяційні поліноми.

ІІ семестр.

6. Пошук власних пар матриць.

7. Задача Коші для звичайного диференціального рівняння (ЗДР).

8. Крайова задача для ЗДР.

9. Розв'язання диференціального рівняння у часткових похідних (ДРЧП).

Виконання роботи полягає у написанні програми, що реалізує відповідний метод, безпосередньо розв'язанні конкретної задачі за варіантом та проведенні, якщо необхідно, деякого дослідження.

Курс "Чисельні методи", як і будь-який інший, побудовано за принципом "від простого до складного", тому методи, що їх розглядають у перших розділах програми, виявляються складовими частинами алгоритмів, що розглядаються на подальших етапах. Це дозволяє побудувати роботу над програмним забезпеченням так, щоби не робити дурної роботи двічі, а то і тричі. Хоча, в принципі, формально немає заборони кожен програмний проект розробляти з самого початку, аби все було правильно. Але значно більш раціонально буде реалізовувати кожен чисельний метод на відносно універсальному рівні, щоби можна було скористатися тими самими методами (процедурами) для конструювання наступних, більш складних алгоритмів. Йдеться про застосування об'єктно-орієнтованого підходу.

Для того, щоби сумлінний студент міг з самого початку уявляти собі, що чекатиме його попереду, автор спочатку наводить опис кожної роботи.

 

І семестр.

1. Методи розв'язання нелінійних (алгебраїчних) рівнянь. Пошук дійсних коренів дійснозначного поліному.

Для даного поліному з дійсними коефіцієнтами треба відокремити корені, тобто визначити кількість дійсних коренів та кожному кореню поставити у відповідність відрізок осі, до якого він (корінь) належить та є на ньому єдиним. Це - ручний етап роботи; хоча його теж можна автоматизувати, але це непросто і не вимагається.

Програмуванню підлягяють методи пошуку відокремленого кореня на відрізку. Кожен метод треба реалізувати як саме метод відповідного класу або об'єкту "поліном". Пошук коренів характеристичного поліному знадобиться у ЛР5; крім того, деякі методи розв'язування ЗДР базуються на зведенні похибки, як функції параметру, до нуля (це та сама задача).

2. Прямі методи розв'язання систем лінійних алгебраїчних рівнянь (СЛАР).

Методів сила силенна. Знадобиться у першу чергу, метод Гаусса, як найбільш універсальний для "малих" матриць, тобто таких, що їх можна зберігати у оперативній пам'яті. Системи треба розв'язувати у ЛР 4, 5, 7. Обов'язково потрібний буде метод прогонки для тридіагональної системи (ЛР 5, 7, 8).

3. Ітераційні методи розв'язання СЛАР.

Для виконання цієї роботи знадобиться реалізація операцій матричної алгебри - додавання, віднімання, множення матриць та векторів; обчислення норми вектора та матриці. Ці ж методи будуть потрібні практично в усіх ЛР. До одного з ітераційних методів зводится задача ЛР8 для еліптичної задачі.

4. Методи розв'язання систем нелінійних рівнянь.

Обертання матриці 2х2, обчислення норми вектора. Для роботи, що претендує ..., знадобиться синтаксичний аналіз виразів, заданих формульно. Реалізація методів, що їх із цим пов'язано: обчислення значення у конкретній точці, обчислення похідної від функції, заданої формульно.

5. Пошук власних пар матриць.

Це - найбільш складна задача. Знадобляться всі методи матричної алгебри, методи обчислення коренів нелінійного рівняння, метод Гаусса розв'язування СЛАР.

ІІ семестр.

6. Задача Коші для звичайного диференціального рівняння (ЗДР).

В ідеалі метод має бути реалізований, як універсальна процедура, у яку передається посилання на функцію, яку треба проінтегрувати. Реалізація неявних методів передбачає використання методів пошуку коренів нелінійного рівняння (див. ЛР1).

7. Крайова задача для ЗДР.

З ймовірністю 1 (з точністю до множини міри нуль) можна передбачати, що у більшості варіантів знадобиться ПЗ, розроблене у ЛР6. Обов'язково знадобиться метод розв'язування тридіагональної СЛАР методом прогонки.

8. Розв'язання диференціального рівняння у часткових похідних (ДРЧП).

Згідно розподілу варіантів це може бути або еліптична, або параболічна, або гіперболічна задача МФ з відповідними КУ та ПУ. Практично в усіх варіантах задача кінець кінцем зводиться до розв'язування тридіагональної СЛАР методом прогонки. Знадобляться ітераційні методи розв'язування СЛАР (див. ЛР3).

Автором розроблено низку модулів Паскалю, що містять деякі об'єкти, які пропонуються як програмове забезпечення з ЧМ.

Загальне зауваження. У всіх об'єктах всі поля є закритими (private), а інформацію про них можна одержати з відповідних методів-функцій (якщо можна).

Об'єкт TMatrix. Unit Vectors2.

Двовимірна матриця.

Поля:

FRows,FColumns: LongInt; { Martix dimensions, seem to be nonnegative. }

Розмірності матриці. Кількості рядків та стовпців, відповідно.

PArray: PBasicType;

Посилання на початок фрагменту пам'яті, де зберігатимуться елементи матриці. Память замовляється конструкторами.

Transposed: Boolean;

Поле, що показує, транспоновано матрицю (true) або ні (false). Під час транспонування (метод Transpose) міняється лише поле Transposed, а елементи залишаються на місцях.

Методи:

constructor Create(NewRows,NewColumns: LongInt; var ResSucc: Boolean);

Утворює примірник матриці з NewRows рядками та NewColumns стовпцями. Всі елементи заповнюються нулями. Якщо утворення відбулося успішно, то ResSucc повертає значення true, інакше - false.

destructor Done; virtual;

Знищує примірник та звільняє пам'ять.

function MatrMult0(a,b: PMatrix): Boolean; virtual;

{ Self := a*b; }

Поточний примірник стає рівним добутку матриць a та b.

function MatrMult1(a: PMatrix;var b: PMatrix): Boolean; virtual;

{ b := Self*a; b must NOT be CREATED }

Матриця b утворюється та стає рівною добутку поточного примірника та матриці a. Об'єкт b повинен бути пустим!

function MatrMult2(a: PMatrix;var b: PMatrix): Boolean; virtual;

{ b := a*Self; b must NOT be CREATED }

Матриця b утворюється та стає рівною добутку матриці a та поточного примірника. Об'єкт b повинен бути пустим!

function Rows: LongInt; virtual;

Кількість рядків.

function Columns: LongInt; virtual;

Кількість стовпців.

function Element(i,j: LongInt): BasicType; virtual;

Значення елементу  (i, j). Рядки нумеруються від 0 до Rows-1, стовпці - від 0 до Columns-1.

function SetElem(i,j: LongInt; x: BasicType): Boolean; virtual;

Надати значення елементу  (i, j).

procedure ZeroFill; virtual;

Заповнити матрицю нулями вщерть.

function EuclidNorm: Real; virtual; { Euclidean }

Сферична (евклідова) норма матриці - корінь квадратний з суми квадратів всіх елементів.

function CopyTo(var a: PMatrix): Boolean; virtual;

{ a is a destiny and must NOT be created }

Зробити матрицю a точною копією поточного примірника. Об'єкт a повинен бути пустим!

procedure Transpose; virtual;

Транспонувати поточний об'єкт. Рядки та стовпці міняються місцями.

Об'єкт TVector (TMatrix). Unit Vectors2.

Одновимірний вектор як частинний випадок матриці (з одним стовпцем).

Поля: жодних нових.

Методи:

constructor Create(NewDimension: LongInt; var ResSucc: Boolean);

Утворює примірник вектора з NewDimension елементами. Всі елементи заповнюються нулями. Якщо утворення відбулося успішно, то ResSucc повертає значення true, інакше - false.

function Dimension: LongInt; virtual;

Кількість елементів вектора.

function VElement(i: LongInt): BasicType; virtual;

Повертає значення i-го елементу вектора. Елементи нумеруються від 0 до Dimension-1.

function SetVElem(i: LongInt; x: BasicType): Boolean; virtual;

Надати i-му елементу значення x.

function Norm: Real; virtual;

Повертає значення евклідової довжини вектора.

Крім того, об'єкт TVector спадкує методи від TMatrix як предка: Done, MatrMult0, MatrMult1, MatrMult2, Rows, Columns, Element, SetElem, ZeroFill, EuclidNorm, CopyTo, Transpose.

Об'єкт TSqMatrix (TMatrix). Unit Vectors2.

Квадратна матриця - матриця з однаковими розмірностями.

Поля: жодних нових.

Методи:

constructor Create(NewDimension: LongInt; var ResSucc: Boolean);

Утворює квадратну матрицю розмірності NewDimension * NewDimension.

function Dimension: LongInt; virtual;

Розмірність матриці.

function MatrNorm(var ResSucc: Boolean): Real; virtual;

Матрична норма квадратної матриці - модуль найбільшого власного числа. Реалізовано степеневий метод для часткової спектральної проблеми.

Крім того, об'єкт TSqMatrix спадкує методи від TMatrix як предка: Done, MatrMult0, MatrMult1, MatrMult2, Rows, Columns, Element, SetElem, ZeroFill, EuclidNorm, CopyTo, Transpose.

Об'єкт TSymMatrix (TSqMatrix). Unit Vectors2.

Симетрична квадратна матриця.

Поля: жодних нових.

Методи:

function SetElem(i,j: LongInt; x: BasicType): Boolean; virtual;

Надати те саме значення x елементам (i,j) та (j,i).

Об'єкт TAlgVector (TVector). Unit Algebra.

Вектор у алгебраїчному розумінні (з операціями векторної алгебри).

Поля: жодних нових.

Методи:

constructor MVMult(M: PMatrix; V: PVector; var ResSucc: Boolean);

{ Self := M*V }

Утворити вектор як добуток матриці M на вектор V. Розмірності мають бути відповідними, інакше ResSucc повертає значення false, як індикатор помилки.

constructor VMMult(V: PVector; M: PMatrix; var ResSucc: Boolean);

{ Self := V*M = Transpose(M)*V }

Утворити вектор як добуток ковектора V на матрицю M. Розмірності мають бути відповідними, інакше ResSucc повертає значення false, як індикатор помилки.

constructor Add(a,b: PVector; var ResSucc: Boolean);

{ Self := a+b }

Утворити вектор як суму векторів a та b. Розмірності мають бути однаковими, інакше ResSucc повертає значення false, як індикатор помилки.

constructor Subtract(a,b: PVector; var ResSucc: Boolean);

{ Self := a-b }

Утворити вектор як різницю векторів a та b. Розмірності мають бути однаковими, інакше ResSucc повертає значення false, як індикатор помилки.

function Scale(c: BasicType): Boolean; { Self := Self*c }

Помножити даний вектор на константу c. Значення функції (true/false) свідитиме про успішність/неуспішність виконання операції.

function Normalize: Boolean; { Set length to 1 }

Поділити даний вектор на його власну довжину. Після цього довжина стає рівною 1. Значення функції, рівне false, свідитиме про неуспішність виконання операції, зокрема для нуьового вектора.

Об'єкт TSimplePolynom (TVector). Unit Polynoms.

Простий поліном - вектор, i-й елемент якого мислиться як коефіцієнт при xi.

Поля: жодних нових.

Методи:

constructor Create(NewOrder: LongInt; var ResSucc: Boolean);

Утворити поліном степеня NewOrder. Спочатку всі коефіцієнти є нульовими.

function Order: LongInt;

Порядок поліному (найбільший степінь).

function OrderDeFacto: LongInt;

Фактичний порядок поліному (найбільший степінь, при якому коефіцієнт є ненульовим).

function Value(x: BasicType):BasicType;

Обчислити значення поліному для значення арументу, рівного x. Тобто, обчислюється значення

a0 + a1x1 + … + an-1xn-1 + anxn.

function Coeff(i: LongInt):BasicType;

Повертає значення коефіцієнта ai.

function SetCoeff(i: LongInt; x: BasicType): Boolean; virtual;

Змінює значення коефіцієнта ai. Якщо індекс i виходить за межі інтервалу [0 .. Order], то повертається значення false, а коефіцієнту нового значення не надається.

constructor Add(a,b: PSimplePolynom; var ResSucc: Boolean);

constructor Substitute(a,b: PSimplePolynom; var ResSucc: Boolean);

constructor Multiply(a,b: PSimplePolynom; var ResSucc: Boolean);

constructor Divide(a,b: PSimplePolynom; var Remainder:

PSimplePolynom; var ResSucc: Boolean);

Чотири конструктори, які утворюють поліном як суму, різницю, добуток, частку двох поліномів-аргументів, відповідно. Метод "Ділення" утворює ще й остачу Remainder, цей об'єкт перед тим НЕ повинен бути ініалізований, він утворюється всередині метода Divide.

function Bisection(LeftBound,RightBound,Epsylon: Real; var ResSucc: Boolean): BasicType;

Аж ось, власне, і перший чисельний метод! Обчислити дійсний корінь поліному на інтервалі [LeftBound; RightBound] з точністю Epsylon. ResSucc набуде значення false, якщо цей інтервал фактично не містить кореня поліному.

procedure Derivative(var Der: PSimplePolynom; var ResSucc: Boolean);

{ Der = d(SP)/dx }

Утворити новий поліном, рівний похідній від даного. Результатом є Der. Перед цим Der має бути пустим посиланням!

constructor Sturm(a,b: PSimplePolynom; var ResSucc: Boolean);

Утворює даний примірник як -(a mod b), тобто черговий поліном з послідовності Штурма. Готова програмка, що утворює послідовність Штурма  та друкує табличку знаків цих поліномів - файл TestStrm.pas.

Unit LAES.

Типи:

TShow = (Full, Compact);

 { For Gauss method Full will create a triangle matrix after the direct gain }

 { Compact follows all changes to be made in A_ matrix }

TState = (stNoMemory, stNotSolved, stSingular, stStop, stOK);

Об'єкт TLAES. Unit LAES.

Система лінійних алгебраїчних рівнянь.

Поля:

FA: PSqMatrix; { Coefficients matrix }

Fb,            { Right hand vector }

Fx: PVector;   { Solution }

NDim: LongInt; { System dimension }

FDeterminant: BasicType;{ Determinant }

Ahelp: PSqMatrix; { Help matrix - a changeble copy of FA }

                   { (if needed and Gauss parameter is set to Full) }

bHelp: PVector;   { a changeble copy of Fb }

FState: TState;  { System state }

Значення FState:

StNoMemory - не вистачило пам'яті для розташування примірника. Подальші операції не є можливими.

StNotSolved - початковий стан системи. Систему утворено успішно, але ще не розв'язувано.

StSingular - система є виродженою.

StStop - перервано ітераційний метод пошуку коренів до досягнення потрібної точності.

StOK - систему розв'язано успішно.

Методи:

constructor Create(NewA: PSqMatrix; Newb: PVector; var ResSucc: Boolean);

Утворити нову систему ЛАР з матрицею NewA та вектором правої частини Newb. ResSucc - успішність операції.

destructor Done; - геть усе повитирати.

procedure TLAES.Reset; { Reset FState for to solve once more }

                      { (may be with an another method) }

function A(i,j: LongInt): BasicType;

function b(i: LongInt): BasicType;

function x(i: LongInt): BasicType;

function Dimension: LongInt;

function Determinant: BasicType;

function State: TState;

procedure Gauss(Show: TShow; var Fout: Text);

Просто метод Гаусса - приклад прямого методу.

procedure Residual(Precision: BasicType; MaxIterationCount: LongInt; FixedStep: BasicType; var Fout: Text);

Метод мінімальної нев'язки - ітераційний метод.

Об'єкт TEigenMatrix (TSymMatrix). Unit Eigen.

Поля:

private

  FValue: PVector;    { Eigenvalues array }

Масив власних чисел.

  FVector: PSqMatrix; { EigenVectors matrix:

                        FVector[i,j], where j goes 0 till Dim-1,

                        is an i-th eigenvector.

                        It's eigenvalue is FValue[i]. }

Матриця власних векторів: FVector[i] - і-й власний вектор, так що FVector[i][j] - j-та координата і-го власного вектора.

  FValueCount: LongInt; { Known eigenvalues count }

Кількість фактично знайдених вл.чисел. Спочатку дорівнює 0.

  FIVector: PAlgVector; { Work Array }

Просто робоча змінна.

  function Copy(i: LongInt): Boolean; { Copies the i-th EVR to FIVector }

Робоча процедура.

Методи:

  constructor Create(NewDimension: LongInt; ResSucc: Boolean);

  destructor Done; virtual;

  

  procedure Power(var EVCount: LongInt);

Ось це - степеневий метод для обчислення вл.чисел та векторів. Він встановлює значення полів FvalueCount, Fvalue, Fvector.

  function EigenValue(i: LongInt): BasicType; virtual;

Власне число № і.

  function EigenVector(ValNo,i: LongInt): BasicType; virtual;

Власний вектор № ValNo. Повертає і-ту координату вектора № ValNo.

  function EigenCount: LongInt; virtual;

Загальна кількість власних пар, що їх вдалося обчислити.

Об'єкт TinterPolynom. Unit Interpol.

Поля:

private

 FX,FY:PVector;

Масиви абсцис та ординат вузлів інтерполяції.

Методи:

public

 constructor Create(NewX,NewY: PVector);

Утворити інтерполяційний поліном з от такими вузлами.

 destructor Done; virtual;

Геть його знищити.

 function X(i: LongInt): BasicType;

 function Y(i: LongInt): BasicType;

Значення абсцис та ординат вузлів інтерполяції.

 function Dimension: LongInt; virtual;

Їхня кількість.

Об'єкт TLaGrangePolynom (TInterPolynom). Unit Interpol.

{ LaGrange Interpolation }

Цей об'єкт спадкує все від TInterPolynom та реалізує функкцію LaGrange, яка обчислює значення поліному за методом Лагранжа.

Методи:

 function LaGrange(t: BasicType): BasicType;

 

Система спадкування цих об'єктів дозволяє зобразити таку структуру:

Крім того, об'єкт TLAES, хоча і не є нащадком жодного з інших об'єктів, але як поля містить інші об'єкти:

ЛИТЕРАТУРА

1. Бахвалов Н. С. Численные методы. - М.: Наука, 1978.- 681с.

2. Березин И.С., Жидков Н.П. Методы вычислений.- М.: Физмат-ГИЗ, 1962.-1966.- Т. 1, 2

3. Боглаев Ю. П. Вычислительная математика и программирование. М.: Высшая школа, 1990.-544с.

4. Вазов В.Р., Форсайт Дж. Разностные методы решения дифференциальных уравнений в частных производных. – М.: ИЛ. 1963

5. Воеводин В.В. Численные методы алгебры. - М.: Наука, 1977 -303с.

6. Годунов С.К., Рябенький В.С. Разностные схемы (введение в теорию).- М.: Наука, 1977.- 440с.

7. Демидович Б.П., Марон И.А. Основы вычислительной математики. - М.: Физматгиз, 1960.- 659с.

8. Зенкевич О. Метод конечных элементов в технике.- М.: Мир, 1975.- 541 С.

9. Калиткин Н. Н. Численные методы. - М.: Наука, 1978.- 512с.

10. Копченова Н. В. , Марон И. А. Вычислительная математика в примерах и задачах.- М.: Наука, 1982.- 366с.

11. Мак-Кракен Д., Дорн У. Численные методы и программирование на Фортране. М.: Мир, 1977.- 584с.

12. Ортега Дж., Пул У. Введение в численные методы решения дифференциальных уравнений.- М.: Наука, 1986.- 288с.

13. Положий Г.Н. и др. Математический практикум.- М.: Физматгиз, 1960.- 498 с.

14. Понтрягин Л. С. быкновенные дифференциальные уравнения.-М. : аука, 1974.- 322с.

15. Самарский А. А. Введение в численные методы.- М.: Наука, 1982. -272с.

16. Самарский А.А. , Гулин А.В. Численные методы. М.: Наука, 1989.- 432с.

17. Форсайт Дж., Малькольм М. , Моулер К. Машинные методы математических вычислений.- М.: Мир, 1980.- 280с.

18. Хемминг Г.В. Численные методы.- М.: Наука, 1968.- 400 с.

19. Уилкинсон Дж. Алгебраическая проблема собственных значений. - М.: Наука, 1970.- 564с.


 

А также другие работы, которые могут Вас заинтересовать

84167. Абсолютный идеализм Гегеля. Система и метод философии Гегеля. История как процесс саморазвития «абсолютного духа» 35.72 KB
  А что же такое Абсолютный Разум сам по себе Абсолютный Разум сам по себе –это есть некая идея его самоочевидного существования идея о том что Абсолютный Разум вообще существует безотносительно того что такое есть при этом Абсолютный Разум. Но если эта идея содержит в себе самоочевидное существование Абсолютного Разума как такового то она же содержит в себе и то каков есть этот Абсолютный Разум по своей природе. Потому что если идея определяет что Абсолютный Разум есть то она же эта самая же идея определяет и то что такое есть...
84168. Антропологический принцип философии Фейербаха. Фейербах о религии как отчуждении родовой сущности человека 40.99 KB
  Фейербах о религии как отчуждении родовой сущности человека. Прежде всего духовное начало не может быть истинным бытием поскольку единственно истинным бесспорным и самоочевидным бытием является не я человека а то что ему дано в ощущениях. Кроме того органом познания является не логическое мышление а непосредственно чувства человека. Потому что не логическое мышление а именно физические чувства человека являются поставщиками бесспорных ощущений.
84169. Характеристика философии позитивизма. Основные этапы ее развития, виднейшие представители 48.8 KB
  Суть этого метода состояла в том чтобы отказаться от традиционной философии как средства познания и создать новую философию которую они называли позитивная синтетическая философия. Таким образом поскольку богословие и традиционная философия оказались практически бесполезными то от них следует отказаться а вместо них создать новую систему объединения научных знаний которая с одной стороны сохранила бы в себе всеобъемлющий характер теологии и философии но с другой стороны приобрела бы характер точной науки. Это есть её главное...
84170. Философия экзистенциализма. Понятие экзистенции. Светский (Хайдеггер, Сартр, Камю) и религиозный (Ясперс) экзистенциализм 37.5 KB
  Поскольку экзистенция есть осознание человеком своей конечности временности то основной характеристикой бытия является время. Но внутреннее переживание человеком будущего есть не что иное как страх смерти осознание человеком своей конечности. Следовательно в дорефлексионном состоянии человеческое сознание было неспособно осознавать себя и воспринимать своё индивидуальное существование и таким образом не способно было осознавать мир ибо не было индивидуальным сознанием то есть сознанием способным вмещать в себя нечто что не есть оно...
84171. Аналитическая философия ХХ столетия. Философская программа неопозитивизма и ее кризис. «Постпозитивизм» и философия науки 46.26 KB
  Постпозитивизм и философия науки. Аналитическая философия пыталась выяснить законы возникновения научного знания корни его противоречий а также причины постоянного опровержения достижений науки развитием самой же науки. Таким образом предмет философии неопозитивизма это язык который и только который является по мнению неопозитивистов виновником несовершенства и постоянной изменчивости основ науки Мур. Это позволит формировать весь язык науки только из логически обоснованных единиц так называемых атомов научных понятий.
84172. Русская философия XIX века: западничество и славянофильство 30-50 гг. Оценка исторического прошлого России и разработка славянофильской идеологии 39.27 KB
  Оценка исторического прошлого России и разработка славянофильской идеологии. Западники стремились к европеизации России к переходу русской жизни на западноевропейские образцы а славянофилы отстаивали традиционные формы национальной жизни России и боролись за ограждение их от иностранного влияния. Западники считали что Россия должна повторить исторический путь стран Западной Европы а славянофилы наоборот полагали что исторический путь России самобытен и неповторим. Проблему национальной самобытности России поставил в 2030х годах XIX...
84173. Философия русской радикальной демократии 50-60 гг. (Н.Г. Чернышевский, Д. Писарев). Народничество в России, его социально-философские позиции 35.41 KB
  Народничество в России его социальнофилософские позиции. В 5060 годах XIX века в России сложился революционный демократизм – направление общественнополитической мысли которое соединяло в себе идею крестьянской революции с утопическим социализмом. Революционный демократизм в России проистекал из убеждения его сторонников что в России невозможно придти к общенациональному согласию в отношении крестьянского вопроса. Другой революционный демократ Дмитрий ПИСАРЕВ не верил в способность крестьянства самостоятельно освободить себя и построить...
84174. ИММУНОДЕФИЦИТЫ 24.57 KB
  Синдром Вискотта Олдрича наследственное рецессивное заболевание связанное с X хромосомой которое характеризуется экземой тромбоцитопенией и иммунодефицитом. Дефицит Тлимфоцитов может развиваться в ходе болезни при этом уровень IgM в сыворотке снижен. Атаксиятелеангиоэктазия наследственное заболевание передающееся аутосомно рецессивно характеризуемое мозжечковой атаксией телеангйоэктазией кожи и дефицитами Тлимфоцитов Ig и IgE.
84175. ХИМИЧЕСКИЙ ОНКОГЕНЕЗ 25.72 KB
  Канцерогенные вещества это вещества которые достоверно вызывают образование опухоли или по крайней мере вызывают увеличение частоты заболеваемости раком. Большинство канцерогенных химических веществ вызывают изменения в ДНК включающее повреждение пуриновых и пиримидиновых оснований делецию хромосом разрывы цепей и образование перекрестных связей. Небольшое количество канцерогенных химических веществ действуют эпигенетически т.