Аппроксимация зависимости ширины запрещенной зоны полупроводников от температуры



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

Федеральное государственное образовательное учреждение

высшего профессионального образования

«Астраханский государственный технический университет»

Образовательная деятельность в сфере высшего и дополнительного профессионального образования
сертифицирована DQS по ISO 9001

ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ТЕЛЕКОММУНИКАЦИЙ

 

КАФЕДРА
«АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ ОБРАБОТКИ ИНФОРМАЦИИ И УПРАВЛЕНИЯ»

ДОПУЩЕНО К ЗАЩИТЕ

 

Заведующий кафедрой, доцент

 

__________________ М.Б. Френкель

 

«_____»___________ 2009 г.

От __________ № ___________

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

по дисциплине

«Высокоуровневые методы информатики и программирования»

на тему:

«Аппроксимация зависимости ширины запрещенной зоны полупроводников от температуры»

 

КР-080801.65-ОПД.Ф.04-072019

                                            Студент гр. ДИЭ-21

 

_____________________  Хачатуров В.Ю.
 

       «____»__________2009 г.

 

          Руководитель к.т.н., доцент

_______________________  М.Б. Френкель
 

        «____»__________2009 г.

 

       Защищено с оценкой _______________
 

Руководитель __________ М.Б. Френкель

 

         Член комиссии _____________________

 

        «____»__________2009 г.

АСТРАХАНЬ 2009

 

СОДЕРЖАНИЕ



ВВЕДЕНИЕ              3

1. ТЕХНИЧЕСКИЙ ПРОЕКТ              4

1.1. Предметная область              4

1.2. Метод наименьших квадратов              8

1.3. Требования к техническому и программному обеспечению              10

1.3.1. Требования к программному обеспечению              11

1.3.2. Требования к техническому обеспечению              11

2. РАБОЧИЙ ПРОЕКТ              12

2.1. Общие сведения работе программы              12

2.3. Описание программы              12

2.3. Алгоритм работы программы              14

2.4. Системные требования  к компьютеру              15

ЗАКЛЮЧЕНИЕ              17

ЛИТЕРАТУРА              18

ПРИЛОЖЕНИЕ              19



 

 

 

 

ВВЕДЕНИЕ

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

Целью данного курсового проекта является изучение методов приближенного вычисления и разработка учебно-демонстрационной программы аппроксимации зависимости ширины запрещенной зоны от температуры.

1. ТЕХНИЧЕСКИЙ ПРОЕКТ

1.1. Предметная область

Твердые тела, по своему удельному сопротивлению , могут быть разделены на три больших класса: металлы (проводники), полупро­водники и диэлектрики (изоляторы). При комнатной температу­ре для различных классов твердых тел  имеет значения в следующих пределах:

Металлы

10-8  10-6 Омм

Полупроводники

10-6  108 Омм

Диэлектрики

более108 Омм

             

Однако такая чисто количественная классификация не передает специфических особенностей электропроводности и других свойств твер­дых тел. Между металлами и полупро­водниками наблюдается существенное качественное различие. Например, у металлов удельное сопротивление с ростом температуры увеличивает­ся по линейному закону (1), а полупроводников  экспоненциально умень­шается (кривая 2) (рис. 1.1).

Рис. 1.1. График зависимости сопротивления от температуры

 

Объяснение  различия  электропроводности  и  других   свойств указанных классов дает квантово  механическая зонная теория твердого тела. Из квантовой механики известно, что в любом изолированном атоме электроны могут иметь только определенные дискретные значения энер­гии, называемые энергетическими уровнями. Причем на каждом энергети­ческом уровне, в соответствии  с  принципом  Паули,  может  находиться не более двух электронов. Электроны, находящиеся на наиболее высоком энергетическом уровне (электроны внешних электронных орбит), называ­ются валентными. По мере сближения атомов до расстояний, равных меж­атомным расстояниям в твердых телах, взаимодействие между электрон­ными оболочками атомов приводит к тому, что энергетические уровни отдельных атомов расщепляются, образуя энергетические зоны твердо­го тела. Каждая энергетическая зона представляет собой набор дис­кретных, но очень близко расположенных энергетических уровней, чис­ло которых в зоне равно числу атомов в кристалле, а расстояние между ними составляет порядка 10-22–10-23 эВ (I эВ = 1,610-19 Дж).

Энергетическая зона, образованная расщеплением энергетического уровня валентных электронов оказывается полностью заполненной и называется валентной зоной. Выше валентной зоны располагается энергетическая зона, в которой электронов нет (все энергетические уровни этой зоны свободны), и называется зоной проводимости. Разность энергии между дном зоны проводимости и потолком валентной зоны называется шириной за­прещенной зоны Е (дно  минимум энергии в зоне, потолок  максимум энер­гии в зоне).

Электропроводность твердых тел определяются степенью заполнения электронами зоны проводимости и шириной запрещенной зоны.

В зависимости от степени заполнения зон электронами и шириной запрещенной зоны Е возможны четыре случая, схематически изображен­ные на рис. 1.2.

 

Рис. 1.2. Схематическое изображение переходов

 

Валентная зона заполнена полностью, но перекрывается с зоной  проводимости (рис. 1.2. б). В этом случае электроны могут легко перехо­дить на энергетические уровни зоны проводимости и участвовать в электропроводимости.  Это характерно для металлов.

В общем случае валентная зона полностью заполнена электронами, а  зона проводимости пуста (рис. 1.2. а, в, г). В зависимости от ширины запрещенной зоны Е, твердые тела, имеющие такое зонное строение, являются проводниками, диэлектриками или полупроводниками. Если ширина запрещенной зоны много больше энергии теплового движения электронов, определяемой температурой, то электроны не могут пе­рейти в  зону проводимости (то есть  для перехода в зону проводимости тепловой энергии элек­тронов оказывается недостаточно). Такой кристалл является диэлек­триком (рис. 1.2. в).

И, наконец, если запрещенная зона достаточно узкая, так что переход электронов из валентной зоны в зону проводимости может быть осуществлен сравнительно легко даже путем теплового возбуждения, то кристалл является полупроводником (рис. 1.2. г).

В полупроводнике в основном состоянии, когда валентная зона заполнена полностью, в кристалле нет свободных носителей заряда, которые могли бы участвовать в электропроводимости. Все электроны заняты в ковалентных связях, объединяющих атомы в кристаллическую решетку. При этих условиях полупроводник ничем не отличается от диэлектрика. При повышении температуры возможно вырывание электрона из этой связи. При этом образуется свободный электрон, который не связан с какимто определенным атомом в  кристаллической решетке, а в том месте, где была связь, образуется вакансия, которая называется дыркой (рис. 1.3. а). На языке зонной теории это означает, что под действием теплового движения электрон преодолел запрещенную зону и перешел в зону проводимости, а в валентной зоне образовалась дырка (рис. 1.3. б).

Если такой кристалл поместить в электрическое поле, то под действием этого поля свободный электрон может перемещаться, то есть участвовать в электропроводимости.

 

Рис. 1.3. Образование дырки

 

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

Таким образом,  в  полупроводниках  наблюдаются  два  механизма проводимости: электронный и дырочный. Если число электронов  в  зоне проводимости равно  числу  дырок  в  валентной   зоне,   то   такой полупроводник называется собственным, а его проводимость собственной проводимостью.  Собственными  полупроводниками  являются, как правило,   химически чистые  полупроводники,  к  которым относятся  элементы  IV  группы Периодической  системы  элементов  Менделеева  Si , Ge,   а   также химические соединения III и V групп,  как, например, GaAs, GaP  и другие.

По мере увеличения температуры  (то есть  при  увеличении  энергии теплового возбуждения)  все  большее  число  электронов  будет переходить  из валентной зоны в зону проводимости, то есть  образуется  большее число  носителей  заряда  (электронов  и   дырок),   участвующих   в электропроводимости. Это приводит к  увеличению  электропроводимости полупроводника  при   увеличении   температуры   и,   следовательно, уменьшению сопротивления.

В теории физики полупроводников показывается, что сопротивление собственного полупроводника в зависимости от температуры  изменяется в соответствии с выражением

      (1)

где R0 некоторый  множитель,  зависящий  от  природы  полу­проводника;

k -постоянная Больцмана;

Т -абсолютная температура.

Соотношение (1) используется в данной  работе  для  определения ширины запрещенной зоны  Е  полупроводника. Прологарифмировав выражение (1), получим

    (2)

Выражение (2) в координатах lnR  и 1/Т  является  уравнением  прямой, график которой приведен на рис.1.4. 

Рис. 1.4. График зависимости

 

Из  выражения  (2)  и  рисунка 1.4. видно, что ширина запрещенной  зоны  будет  определяться следующим выражением:

              (3)

Таким образом, измерив сопротивление полупроводника, в зависимости от температуры в некотором интервале температур, построив   график зависимости  lnR = f(1/Т),  и выбрав на этом графике значения lnR2 и lnR1, соответствующие температурам T2  и  T1,  можно вычислить ширину запрещенной зоны изучаемого полупроводника. На практике график для нахождения ширины запрещенной зоны удобнее строить в координатах  lnR = f(103/Т). В этом случае, учитывая, что k =1.3810-23 Дж/К = 0,862-10-4 эВ/К. (1 эВ = 1,610-19 Дж), получим окончательную формулу для расчета ширины запрещенной зоны:

(4)

1.2. Метод наименьших квадратов

Метод наименьших квадратов — один из методов регрессионного анализа для оценки неизвестных величин по результатам измерений, содержащим случайные ошибки.

 

Метод наименьших квадратов применяется также для приближённого представления заданной функции другими (более простыми) функциями и часто оказывается полезным при обработке наблюдений.

Когда искомая величина может быть измерена непосредственно, как, например, длина отрезка или угол, то, для увеличения точности, измерение производится много раз, и за окончательный результат берут арифметическое среднее из всех отдельных измерений. Это правило арифметической середины основывается на соображениях теории вероятности; легко показать, что сумма квадратов уклонений отдельных измерений от арифметической середины будет меньше, чем сумма квадратов уклонений отдельных измерений от какой бы то ни было другой величины. Само правило арифметической середины представляет, следовательно, простейший случай метода наименьших квадратов.

До начала XIX в. учёные не имели опредёленных правил для решения системы уравнений, в которой число неизвестных менее числа уравнений; до этого времени употреблялись частные приёмы, зависевшие от вида уравнений и от остроумия вычислителей, и потому разные вычислители, исходя из тех же данных наблюдений, приходили к различным выводам. Лежандру (1805—06) и Гауссу (1794—95) принадлежит первое применение к решению указанной системы уравнений теории вероятности, исходя из начал, аналогичных с началом арифметической середины, уже издавна и, так сказать, бессознательно применяемых к выводам результатов в простейшем случае многократных измерений. Как и в случае арифметической середины, вновь изобретённый способ не даёт, конечно, истинных значений искомых, но дает, зато вероятнейшие значения. Этот способ распространён и усовершенствован дальнейшими изысканиями Лапласа, Энке, Бесселя, Ганзена и др. и получил название метода наименьших квадратов, потому что после подстановки в начальные уравнения неизвестных величин, выведенных этим способом, в правых частях уравнений получаются если и не нули, то небольшие величины, сумма квадратов которых оказывается меньшей, чем сумма квадратов подобных же остатков, после подстановки каких бы то ни было других значений неизвестных. Помимо этого, решение уравнений по способу наименьших квадратов даёт возможность выводить вероятные ошибки неизвестных, то есть даёт величины, по которым судят о степени точности выводов.

Пусть дано решить систему уравнений:

число которых более числа неизвестных x, у, z… Чтобы решить их по способу наименьших квадратов, составляют новую систему уравнений, число которых равно числу неизвестных и которые затем решаются по обыкновенным правилам алгебры. Эти новые, или так называемые нормальные, уравнения составляются по следующему правилу: умножают сперва все данные уравнения на коэффициенты у первой неизвестной х и, сложив почленно, получают первое нормальное уравнение, умножают все данные уравнения на коэффициенты у второй неизвестной у и, сложив почленно, получают второе нормальное уравнение и т. д. Если означить для краткости:

то нормальные уравнения представятся в следующем простом виде:

Легко заметить, что коэффициенты нормальных уравнений весьма легко составляются из коэффициентов данных, и притом коэффициент у первой неизвестной во втором уравнении равен коэффициенту у второй неизвестной в первом, коэффициент у первой неизвестной в третьем уравнении равен коэффициенту у третьей неизвестной в первом и т. д.

1.3. Требования к техническому и программному обеспечению

Разрабатываемая программа должна соответствовать следующим минимальным требованиям, обусловленным заданием к проекту.

1.3.1. Требования к программному обеспечению

 ОС — Windows NT/2000/XP/2003;

 Framework 3.5.

1.3.2. Требования к техническому обеспечению

 IBM-совместимый компьютер с МП Intel Pentium II или AMD K6 с тактовой частотой 300 МГц и выше;

 32 MB ОЗУ;

 НЖМД со свободным пространством 500 КБ;

 видеокарта, поддерживающая разрешение 800*600.

2. РАБОЧИЙ ПРОЕКТ

2.1. Общие сведения работе программы

Разработанная программа координирует действия пользователя, в зависимости от решаемой задачи. Также она обеспечивает дружественный пользовательский интерфейс, что делает работу более приятной и интересной. Для запуска программы необходимо запустить файл «kyrs.exe». Для корректной работы программы необходимо, чтобы на компьютере был установлен Framework 3.5.

2.2.Структура программы

Программа представляет собой совокупность окон, которые все вмести создают  «дружественный интерфейс».

При запуске программы на экране появляется главное окно, элементами которого являются следующие компоненты: «Label», «TextBox», «Button», «PictureBox» (рис. 2.1).

2.3. Описание программы

Работа программы начинается с появления главной формы, на которой расположено несколько элементов управления, позволяющие задавать различные настройки. Главное окно программы изображено на рис. 2.1.

 

Рис. 2.1. Главное окно программы

 

              Для начала работы необходимо заполнить следующие поля:

  • Графа «T1», нижняя граница температуры;
  • Графа «R1», сопротивление полупроводника при температуре «T1»;
  • Графа «T2», верхняя граница температуры;
  • Графа «R2», сопротивление полупроводника при температуре «T2»;
  • Графа «Порядок аппроксимации», указывает количество переменных при составлении системы уравнений.

После ввода всех необходимых начальных данных, при нажатии на кнопку «Построить», если была допущена ошибка при заполнении данных, появится сообщение об ошибке (рис. 2.2).

 

Рис. 2.2. Сообщение об ошибке

 

Если все данные были введены правильно, то будут произведены все необходимые вычисления и представлен результат вычислений в виде графика (рис. 2.3).

 

Рис. 2.3. Результат работы программы

 

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

2.3. Алгоритм работы программы

              Работа программы начинается с инициализации формы, при запуске программы вызывается функция «DrawInit», которая очищает пространство рисунка и рисует лини оси, а так же инициализирует переменные необходимые в дальнейшей работе программы.

              После выполнения функции «DrawInit» происходит отображение главного окна программы на дисплее монитора, Исходный код функции «DrawInit» представлен в приложении.

              При вводе начальных данных и нажатии кнопки «Построить», вызывается функции отрабатывающая нажатие кнопки.

На первом этапе проверяется корректность введенных данных, для это используется функции «CheckValue», которая в случае корректных данных возвращает 1, а иначе 0. Исходный код функции «CheckValue» представлен в приложении.

Из исходного кода функции «CheckValue» видно, что для исходных данных введены следующие ограничения:

       ;

       0 R2 1000;

       0 T1 1000;

  • 0 T2 1000.

После проверки корректности введенных начальных данных, происходит инициализация графика и необходимых переменных, для этого вызывается функция «DrawInit», исходный код которой представлен выше.

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

Функция «InitMatrix» используется для подготовки переменных к аппроксимации функции, для этого в качестве входных параметров функции передаются шаг по оси изменения температуры и массив значения функции в точках. Исходный  код функции «InitMatrix» представлен в приложении.

После инициализации всех необходимых переменных происходит вычисление полинома удовлетворяющего значениям аппроксимируемых значений в точке, в этого используется метод наименьших квадратов.

Функция «DrawResult» отображает полученные результаты в виде графика, для этого данной функции необходимо передать два параметра: способ, которым был получен результат и массив содержащих значения функции в точках. Исходный код функции, отображающий результат работы программы представлен в приложении.

2.4. Системные требования  к компьютеру

Аппаратные требования

       Процессор Intel или AMD с тактовой частотой 133 MHz или выше;

       16Mb ОЗУ;

       1 Mb свободного места на винчестере.

Системные   требования

       Microsoft Windows 95/98/NT/2000/XP/ME;

       Framework 3.5.

 

ЗАКЛЮЧЕНИЕ

              Курсовой проект выполнен в среде Microsoft Visual Studio 2008.

Разработка проекта проходила в несколько стадий, заключавшихся в изучении предметной области задачи, изучении метода наименьших квадратов, разработке учебно-демонстрационной программы, включающей в себя возможности указания параметров полупроводника и порядка аппроксимации.

В течение разработки курсовой работы были изучены основные вопросы, посвящённые работе с приближенными методами вычисления, а также были изучены основы работы в среде Microsoft Visual Studio 2008.

Результатом проектирования стал программный продукт, позволяющий автоматизировать и облегчить процесс вычисления ширины запрещенной зоны. Программа легка в использовании и удовлетворяет всем необходимым требованиям. Внедрение подобных простейших программ в процессы математического моделирования сильно облегчит работу научным деятелям.

ЛИТЕРАТУРА

  1. А.Я. Архангельский. «Программирование в Visual Basic 6.0.» Москва «Издательство БИНОМ», 2005 г.

2.       Боуман Дж., Эмерсон С «Практическое руководство по Visual Studio 2008», «БХВ-Петербург», 2000 г.

3.       Глушаков С.В., Третьяков Ю.В., Головаш О.А. «Приближенные методы вычисления». – Харьков: Фолио, 2003.

4.       Девис Чепмен «Математика в примерах»: Пер. с англ.Изд. Дом «Вильямс», 2002.

5.       Страуструп Б. «Программирование на Basic», Санкт-Петербург «БХВ-Петербург», 2001 г.

6.       Тимофеев В.В. «Математические модели». -М: ООО «Бином-Пресс», 2004г.

ПРИЛОЖЕНИЕ

Листинг программы

Private Sub DrawInit()

        PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)

        Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)

        Dim drawFont As Font = New Font("Arial", 12)

        Dim drawBrush As Brush = New SolidBrush(Color.Black)

        g.Clear(Color.White)

        Dim pen As Pen = New Pen(Color.Black, 2)

        g.DrawLine(pen, 20, PictureBox1.Height - 10, 20, 20)

        g.DrawLine(pen, 10, PictureBox1.Height - 20, PictureBox1.Width - 20, PictureBox1.Height - 20)

        g.DrawLine(pen, 20, 20, 20 - 5, 20 + 10)

        g.DrawLine(pen, 20, 20, 20 + 5, 20 + 10)

        g.DrawLine(pen, PictureBox1.Width - 20, PictureBox1.Height - 20, PictureBox1.Width - 20 - 10, PictureBox1.Height - 20 - 5)

        g.DrawLine(pen, PictureBox1.Width - 20, PictureBox1.Height - 20, PictureBox1.Width - 20 - 10, PictureBox1.Height - 20 + 5)

        g.DrawString("E", drawFont, drawBrush, 5, 5)

        g.DrawString("T", drawFont, drawBrush, PictureBox1.Width - 15, PictureBox1.Height - 25)

        g.Dispose()

        For i As Integer = 0 To 20

            A(i) = 0

            B(i) = 0

            For j As Integer = 0 To 20

                summ(i, j) = 0

            Next

        Next

    End Sub

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If CheckValue() = 0 Then

            Return

        End If

        DrawInit()

        Dim values(10) As Double

        Dim value_step_T As Integer = (Convert.ToInt32(TextBox_T2.Text) - Convert.ToInt32(TextBox_T1.Text)) / 10

        Dim value_step_R As Double = ((Convert.ToInt32(TextBox_R2.Text) - Convert.ToInt32(TextBox_R1.Text)) / (Convert.ToInt32(TextBox_T2.Text) - Convert.ToInt32(TextBox_T1.Text))) * value_step_T

        Dim temp_R As Double

        Dim temp_T As Integer

        temp_T = Convert.ToInt32(TextBox_T1.Text)

        temp_R = Convert.ToDouble(TextBox_R1.Text)

        For i As Integer = 1 To 10

            values(i - 1) = 0.172 * ((Math.Log(temp_R + value_step_R) - Math.Log(temp_R)) / ((1000 / (temp_T + value_step_T)) - (1000 / temp_T)))

            temp_R += value_step_R

            temp_T += value_step_T

        Next

        InitMatrix(value_step_T, values)

        For tmp_k As Integer = 0 To K

            For i As Integer = tmp_k + 1 To K

                Dim M As Double = summ(i, tmp_k) / summ(tmp_k, tmp_k)

                For j As Integer = tmp_k To K

                    summ(i, j) -= M * summ(tmp_k, j)

                Next

                B(i) -= M * B(tmp_k)

            Next

        Next

 

        For i As Integer = K To 0 Step -1

            Dim s As Double = 0

            For j As Integer = i To K

                s += summ(i, j) * A(j)

            Next

            A(i) = (B(i) - s) / summ(i, i)

        Next

        DrawResult(1, values)

        temp_T = Convert.ToInt32(TextBox_T1.Text)

        For i As Integer = 1 To 10

            values(i) = 0

            For j As Integer = 0 To K

                values(i) += Math.Pow(temp_T, j) * A(j)

            Next

            temp_T += value_step_T

        Next

        DrawResult(2, values)

    End Sub

 

Private Function CheckValue() As Integer

        Dim result_value = 1

        Try

            Dim R1 As Integer = Convert.ToInt32(TextBox_R1.Text)

            Dim R2 As Integer = Convert.ToInt32(TextBox_R2.Text)

            Dim T1 As Integer = Convert.ToInt32(TextBox_T1.Text)

            Dim T2 As Integer = Convert.ToInt32(TextBox_T2.Text)

            Dim tmp_K As Integer = Convert.ToInt32(TextBox5.Text)

 

            If R1 < 0 Or R1 > 1000 Then

                result_value = 0

            ElseIf R2 < 0 Or R1 > 1000 Then

                result_value = 0

            ElseIf T1 < 0 Or T1 > 1000 Then

                result_value = 0

            ElseIf T2 < 0 Or T2 > 1000 Then

                result_value = 0

            ElseIf tmp_K < 0 Or tmp_K > 10 Then

                result_value = 0

            End If

            If result_value = 0 Then

                MessageBox.Show("Ошибка заполнения данных", "Сообщение")

            End If

        Catch ex As Exception

            result_value = 0

            MessageBox.Show(ex.Message, "Ошибка")

        End Try

        Return result_value

    End Function

 

Private Sub InitMatrix(ByVal value_step_T As Integer, ByVal ParamArray y() As Double)

        Dim x(10) As Double

        x(0) = Convert.ToInt32(TextBox_T1.Text)

        For i As Integer = 1 To 10

            x(i) = x(i - 1) + value_step_T

        Next

        K = Convert.ToInt32(TextBox5.Text)

        For i As Integer = 0 To K

            For j As Integer = 0 To K

                summ(i, j) = 0

                For tmp_k As Integer = 0 To 9

                    summ(i, j) += Math.Pow(x(tmp_k), i + j)

                Next

            Next

        Next

 

        For i As Integer = 0 To K

            B(i) = 0

            For tmp_k As Integer = 0 To 9

                B(i) += Math.Pow(x(tmp_k), i) * y(tmp_k)

            Next

        Next

        Dim temp2 As Double

        For i As Integer = 1 To K

            If summ(i, i) = 1 Then

                For j As Integer = 1 To K

                    If i = j Then

                        Continue For

                    End If

                    If summ(i, j) <> 0 And summ(j, i) <> 0 Then

                        For tmp_k As Integer = 0 To K

                            temp2 = summ(j, tmp_k)

                            summ(j, tmp_k) = summ(i, tmp_k)

                            summ(i, tmp_k) = temp2

                        Next

                        temp2 = B(i)

                        B(i) = B(j)

                        B(j) = temp2

                        Exit For

                    End If

 

                Next

            End If

        Next

    End Sub

 

Private Sub DrawResult(ByVal typePen As Integer, ByVal ParamArray result() As Double)

Аппроксимация зависимости ширины запрещенной зоны полупроводников от температуры