КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Program beta2
End End Enddo Endif Else If(f(c).gt. 0) then Do while((b-a).gt. eps) Function dih(a,b,eps) End Program beta1 !переменный, общие для beta1 и функции f common /cblock/ a,ak,m !входные данные; при указанных значениях !результат для контроля: h = 0.8956242 !длина волны; размерности alambda и t одинаковые alambda = 0.85 !толщина волноведущего слоя t = 5. !отн. диэл. проницаемость покрытия e1 = 2.11 !отн. диэл. проницаемость волноведущего слоя e2 = 2.14 !отн. диэл. проницаемость подложки e3 = 2.12 !номер моды m = 1 !погрешность значения корня eps = 1e-6 !вычисляется коэффициент A a = 2 * sqrt(e2-e3) * t/alambda !вычисляется коэффициент K ak = (e2-e1) / (e2-e3) !обращение к функции решения уравнения F(x)=0 aksi = dih(1e-10,1.,eps) !определение h h = aksi * 2*3.14159/alambda * sqrt(e2-e3) !вывод результата print *, h !-------------------------------------------------------------- !Функция решения уравнения F(x)=0 методом дихотомии !с точностью eps при условии, что корень лежит в !интервале от a до b !цикл, пока не достигнута требуемая точность !c = середина отрезка [a,b] c=(a+b)/2 !проверка знака функции в середине отрезка [a,b] !обновление правой границы если F(c) > 0 b=c !обновление левой границы если F(c) = 0 a=c !dih -- решение; F(dih) = 0 с точностью до eps dih=(a+b)/2 return
!-------------------------------------------------------------- !Функция F(x) для функции dih function f(x) !переменные, получаемые из beta1 common /cblock/ a,ak,m
f1 = atan(sqrt(1/x**2-1)) f1 = (f1 + atan(sqrt(ak/x**2-1))) / 3.14159 f = a*x - m - f1 return
!-------------------------------------------------------------- 3.3. Метод аппроксимации При решении уравнения (3.3) методом “половинного деления” основная трудность обусловлена необходимостью многократных вычислений достаточно “неудобной” функции Основная идея метода заключается в сведении уравнения (3.3) к квадратному путем введения аппроксимирующей функции для правой части уравнения (3.3). В результате такой аппроксимации решение (3.3) записывается в явном виде, а необходимая точность достигается простой итерационной процедурой, что значительно увеличивает быстродействие и эффективность алгоритма. 3.3.1 Алгоритм решения. На рисунке 3.2 представлена для примера зависимость
Рис. 3.2. К решению трансцендентного уравнения методом аппроксимации. Поскольку в (3.4) берутся главные значения арктангенсов, величина
где b – параметр, определяемый из (3.4) при
С учетом явного вида
где При условии
а их производные по параметру
Выполнение условий (3.12), (3.13) означает, что обе функции имеют одинаковые граничные значения, монотонно убывают и являются выпуклыми в интервале Из условий (3.12), (3.13) следует, что функция
Предельные значения
Задание: получить соотношение (3.15,а) – (3.15,б). Из выражения (3.14) следует, что функция Таблица 1
На рисунке 3.3. для примера представлены зависимость Заменяя функцию
Физическим решением этого уравнения относительно Подставляя
Рис. 3.3. Аппроксимирующие функции. Из рисунка 3.3 следует, что решением уравнения (3.3) является значение
Решение на первом шаге итерации записывается в виде
Если точность
Аналогично (3.19) записывается новое решение Если заданная точность
i=1,2; j=1,2,3…. “Точное” значение
3.3.2. Программная реализация алгоритма по методу аппроксимации на алгоритмическом языке Фортран-90*) Программа "beta2" предназначена для расчета поперечных волновых чисел h в волноведущем диэлектрическом слое для Н-волн планарного однородного изотропного диэлектрического волновода. Входные и выходные данные такие же, что и в программе "beta1" (см. п. 3.2.3). Вначале программа "beta2" вычисляет верхний и нижний пределы параметра кривизны !-------------------------------------------------------------- !Программа расчета волнового числа h в волноводном !диэлектрическом слое для H-волн планарного однородного !изотропного диэлектрического волновода !переменный, общие для beta1 и функций aksi и delta common /cblock/ a,ak,m,b
pi = 3.14159 !входные данные; при указанных значениях !результат для контроля: h = 0.8958030 !длина волны; размерности alambda и t одинаковые alambda = 0.85 !толщина волноведущего слоя t = 5. !отн. диэл. проницаемость покрытия e1 = 2.11 !отн. диэл. проницаемость волноведущего слоя e2 = 2.14 !отн. диэл. проницаемость подложки e3 = 2.12 !номер моды m = 1 !погрешность значения корня eps = 1e-6
!вычисляется коэффициент A a = 2 * sqrt(e2-e3) * t/alambda !вычисляется коэффициент K ak = (e2-e1) / (e2-e3) !вычисляется параметр B по (3.10) b = atan(sqrt(ak-1)) / pi
!подготовка начальных данных для итерационной процедуры !начальное значения параметра кривизны d1 = b - 1 + 2*(1+1/sqrt(ak))/pi
Дата добавления: 2015-08-31; Просмотров: 357; Нарушение авторских прав?; Мы поможем в написании вашей работы! |