Исследование решений дифференциальных уравнений
Степенные ряды. Радиус сходимости. Ряды Лорана. Полюса и особые точки. Интегрирование дифференциальных уравнений при помощи степенных рядов. Общее дифференциальное уравнение Риккати. Исследование решений в окрестности полюса и существенно особой точки.
Рубрика | Математика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 15.12.2012 |
Размер файла | 252,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
При решении дифференциальных уравнений степенными рядами каждый полученный ряд является только элементом искомого решения, определенным в его области сходимости. Область сходимости степенного ряда есть круг, на границе которого должна находиться по крайней мере одна особая точка решения исходного дифференциального уравнения. Поэтому для того, чтобы распространить полученные результаты на всю комплексную область, прежде всего надо провести исследования поведения решений в окрестности полюса и существенно особой точки, которые на практике встречаются наиболее часто. Однако, этот процесс при реализации его в ручную довольно трудоемкий. В связи с этим появляется возможность запрограммировать данную задачу и сравнить полученный результат с уже проведенными вычислениями. Попытка именно этого и предпринята в данной дипломной работе.
1. Вводные замечания
1.1 Степенные ряды. Радиус сходимости
Наиболее простыми будут ряды, сходящиеся не только абсолютно, но и равномерно. К таким рядам относятся и степенные, чем и обусловлено то особо важное значение, которое они имеют в самых различных областях математики и ее приложениях.
Определение. Степенным рядом (точнее, целым степенным) называется бесконечный ряд вида
(1.1)
где сk и z0 - заданные комплексные числа, не зависящие от z. Число z0 для краткости называют центром ряда. В частности, может быть z0 = 0.
Выясним прежде всего область сходимости степенного ряда, для чего докажем следующую теорему.
Первая теорема Абеля (1826).
Если степенной ряд
сходится в некоторой точке z=z1, то он сходится, и притом абсолютно и равномерно, во всяком круге с центром z0 и радиусом < | z - z0|, т.е. радиусом, меньшим, чем расстояние от z1 до z0 (рис. 1).
Переходя к доказательству теоремы, предположим, что z - произвольная точка круга | z - z0| < р < | z1 - z0|, и представим n-й член ряда (1.1) в виде
Из сходимости ряда в точке z1, которая имеет место по условию теоремы, вытекает, что
| cn(z1 - z0)n | M
для всех n, где М - некоторое положительное число. Кроме того, в силу нашего предположения
Следовательно, для всех n
откуда и вытекает по признаку Вейерштрасса абсолютная и равномерная сходимость ряда внутри круга | z - z0 | р < | z1 - z0 |, так как члены рассматриваемого ряда по модулю меньше членов убывающей геометрической прогрессии, составленной из положительных чисел.
В частности, ряд сходится абсолютно (но, вообще говоря, не равномерно) во всех точках круга | z - z0 | < | z1 - z0 |. Отсюда вытекает, что если степенной ряд расходится при некотором значений z = z1 то он расходится и при всяком значении z, для которого
| z - z0 | > | z1 - z0 |,
Теорема, сформулированная выдающимся норвежским математиком Нильсом Генриком Абелем (1802-1829), играет в теории степенных рядов исключительно важную роль, и, в частности, из этой теоремы следует, что степенной ряд сходится в некотором круге, радиус которого будем обозначать через R, причем ряд сходится
абсолютно при
| z - z0 | < R,
расходится при
| z - z0 | > R,
и равномерно сходится в любом круге
| z - z0 | р < R
На самом же круге | z - z0 | = R ряд может быть сходящимся или расходящимся, и установление этого факта требует дополнительных исследований, иногда очень сложных.
Радиус этого круга R называется радиусом сходимости степенного ряда, а сам круг - кругом его сходимости. Для определения радиуса сходимости R служит формула
(1.2)
где lim обозначает верхний предел.
Эта формула была получена Огюстом Луи Коши в 1821 г. и со всей строгостью доказана в 1893 г. Жаком Адамаром (1865-1963). Она называется формулой Коши - Адамара.
Радиус сходимости можно также определять по формуле, вытекающей из признака сходимости рядов Даламбера;
(1.3)
если только указанный предел существует.
В частности, R может равняться нулю (тогда сумма ряда сводится к его первому члену c0) или бесконечности (тогда ряд сходится во всей комплексной плоскости z).
На основании теорем о сумме ряда и доказанной равномерной сходимости степенного ряда внутри его круга сходимости вытекают весьма важные свойства степенных рядов, которые мы сформулируем в виде следующих теорем.
Теорема 1. Сумма степенного ряда есть непрерывная функция от z внутри круга сходимости ряда.
Этот результат дополняется второй теоремой Абеля (1826): если степенной ряд сходится в точке z окружности | z - z0 | = R, то его сумма s(z) есть функция, непрерывная в точке z1 самой окружности вдоль радиуса, идущего из центра z0 в точку z1.
А. Прингсхейм доказал, что при условиях этой теоремы s(z) непрерывна в точке z1 вдоль любой линии, которая не касается окружности в точке z1.
Теорема 2. Степенной ряд внутри круга его сходимости можно почленно интегрировать, и сумма полученного ряда будет представлять собой интеграл от суммы данного ряда:
(1.4)
Теорема 3. Степенной ряд внутри круга его сходимости можно почленно дифференцировать, и его сумма будет представлять собой производную от суммы данного степенного ряда:
(1.5)
Для того чтобы последнее свойство имело место, надо еще доказать, что ряд, полученный по членным дифференцированием, имеет тот же радиус сходимости R (в силу чего он также будет равномерно сходящимся рядом).
Пусть z - некоторая точка внутри круга сходимости и R - число, удовлетворяющее неравенству | z - z0 | < R1 < R. Так как ряд
сходится абсолютно, то существует такое положительное число М, что
при всех значениях n.
Тогда для модуля общего члена ряда, полученного дифференцированием, имеем:
т.е. модули членов ряда (1.5) меньше соответствующих членов сходящегося по признаку Даламбера ряда. Следовательно, ряд (1.5) сходится абсолютно во всех точках внутри круга сходимости исходного степенного ряда
Если | z - z0 | > R, то cn(z - z0)n, а благодаря этому и ncn(z - z0)n-1 не стремится к нулю и ряд расходится.
Таким образом, ряд (1.5) и ряд
имеют один и тот же круг сходимости.
Следствие 2. Ряд
,
полученный почленным интегрированием степенного ряда
имеет тот же радиус сходимости R, что и исходный ряд.
Действительно, если бы это было не так, то, дифференцируя почленно ряд
,
мы бы получили исходный ряд
с радиусом сходимости R1 R, что противоречит теореме 3.
Следует, однако, отметить, что из факта равенства радиусов сходимости данного степенного ряда и рядов, полученных почленным дифференцированием или интегрированием, нельзя сделать никаких выводов относительно характера сходимости этих рядов и на самой границе области сходимости, т.е. на самой окружности | z - z0 | = R.
Так, например, ряд
расходится во всех точках границы | z | = 1, тогда как после интегрирования получается ряд
сходящийся при z = - 1. Действительно, при z = - 1 имеем:
Аналогично ряд
радиус сходимости которого R= 1, абсолютно сходится во всех точках границы области сходимости | z | = 1, так как при | z |= 1
а ряд справа, как известно, сходящийся.
Продифференцировав же этот ряд, получим ряд
который на окружности | z | = 1 является расходящимся, по крайней мере в точке z = 1, как гармонический ряд
1 + 1 / 2 + 1 / 3 + 1 / 4 + …
Приведенные примеры также хорошо иллюстрируют сказанное ранее о поведении ряда на самой границе области сходимости. А именно, на контуре сходимости ряд может быть всюду сходящимся (но отнюдь не обязательно абсолютно или равномерно сходящимся) или всюду расходящимся, или может сходиться только в отдельных точках и расходиться в других точках.
Следствие 2. Степенной ряд
в круге его сходимости | z - z0 | < R можно дифференцировать (и интегрировать) произвольное число раз. В результате получим новые степенные ряды, которые будут иметь тот же самый радиус сходимости R, суммы которых будут равны последовательным производным (или интегралам от) суммы ряда s (z).
2. Ряды Лорана. Полюса и особые точки
Рассмотрим два ряда:
(2.1)
(2.2)
Область сходимости первого ряда (если она существует) определяется неравенством | z - a | < r. Если существует область сходимости второго ряда, то она определяется неравенством |z - a | < R. Тогда при условии r < R для ряда
полученного сложением рядов (2.1) и (2.2), областью сходимости служит кольцо r < | z - a| < R, ограниченное концентрическими окружностями с центром в точке а и радиусами r и R (рис. 2).
Пусть (z) - однозначная и аналитическая функция в кольце r < | z - a| < R. Эта функция в указанном кольце может быть представлена в виде суммы ряда:
(z)=
Ряд в правой части равенства называется рядом Лорана функции (z). Коэффициенты этого ряда можно вычислить по формуле:
Ряд (2.1) называется главной частью ряда Лорана, а ряд (2.2) - правильной частью ряда Лорана.
Если ряд Лорана содержит главную часть, то а называется изолированной особой точкой. Коэффициент А-1 называется вычетом функции (г) относительно изолированной особой точки z = a.
Особая точка называется устранимой, если функция (г) - аналитическая в окрестности z = а и ограничена по модулю в этой окрестности, т.е. существует конечный предел
.
Особая точка называется полюсом функции (г), если (г) - аналитическая функция вблизи z = а и стремится к бесконечности при z а.
Особая точка z = a называется существенно особой, если при z, близких к а, модуль | (z) | не остается ограниченным, но функция не стремится к при z а, предел не существует.
Изолированная особая точка является:
устранимой, если главная часть разложения в ряд Лорана отсутствует. Например, для функции точка z = 0 служит устранимой особой точкой, так как
полюсом n - го порядка, если главная часть содержит конечное число членов, т.е. имеет вид
Например, для функции точка z = 0 есть полюс первого порядка, так как
существенно особой, если главная часть содержит бесконечное число членов. Например, функция в точке z = 0 имеет существенно особую точку, так как
Между нулем и полюсом функции существует следующая связь. Если z = а - нуль кратности k функции (z), то z = а - полюс того же порядка функции 1/(z); обратно, если z=b - полюс порядка k функции (z), то z = b - нулъ той же кратности функции 1/(z).
Следует заметить, что если то z = а - полюс k-го порядка функции (z).
3. Интегрирование дифференциальных уравнений при помощи степенных рядов. Задача Коши
Рассмотрим задачу Коши для уравнения -го порядка, разрешенного относительно старшей производной
y()=(х, у, у',…, y( -1)); (3.1)
; j = 0, 1, 2,…, - 1. (3.2)
Будем искать формальное решение задачи (3.1) - (3.2) в виде степенного ряда
, (3.3)
так что в каждом конкретном случае необходимо дополнительно исследовать, может ли данная задача Коши быть решена при помощи ряда (3.3).
Обозначим k-ю степень ряда (3.3) соответственно
, k = 1, 2, 3,… (3.4)
и выведем рекуррентную формулу для вычисления введенных коэффициентов
Так как для произвольного k=l+m имеет место тождество,
,
то воспользовавшись формулой Коши для умножения степенных рядов
аn=b0 cn +b1cn-1+b2 cn-2+ … +bn-1 c1+bn c0.
непосредственно получаем искомую рекуррентную формулу:
(3.5)
где l= 1, 2, 3,…; m= 1, 2, 3,…; n = 0, 1, 2, 3,…
В частности, при k = 1 ряд (1.4) тождественно совпадает с рядом (3.3), так что
; п =0.1, 2,…, (3.6)
и тогда при помощи формулы (3.5) легко определить коэффициенты а(k)n для произвольной целой степени ряда yk через коэффициенты исходного ряда (3.3).
Для удобства выкладок представим производные у', у»,… в виде таких рядов
(3.7)
где введены обозначения
(3.8)
В таком случае и все степени от производных у', у»,… легко выразить рядами
(3.9)
коэффициенты которых
определим при помощи формулы (3.5), если в этой формуле an заменим соответственно на
Если мы теперь подставим ряды (3.3), (3.4), (3.7), (3.9) в исходное уравнение (1.1) и приравняем коэффициенты при одинаковых степенях (x - x0) то после соответствующих упрощений, получим рекуррентную формулу вида:
(3.10)
где функция F полностью определяется заданной функцией (х, у, у',…, y(v-1)), а первые v коэффициентов, согласно начальным условиям (3.2), будут такими:
(3.11)
В том случае, когда существует предел
радиус сходимости ряда (3.3) можно определить численно, если вычислить достаточное количество членов последовательности
(3.12)
до такого значения n включительно, начиная с которого будет иметь место равенство
(3.13)
с необходимой для данной задачи точностью.
В отдельных частных случаях радиус сходимости ряда (3.3) можно найти, исходя из самой рекуррентной формулы (3.10).
Рассматриваемый метод позволяет также построить аналитическое продолжение ряда (3.3) и выявить особые точки найденного решения. Для этого в любой точке х1, где [x1-x0] < R, вычисляем при помощи ряда (3.3) новые начальные значения
(3.14)
и, подставив их в ту же самую рекуррентную формулу (3.10), находим коэффициенты а*n нового ряда
который, согласно известной теореме об аналитическом продолжении решений дифференциального уравнения, и есть аналитическое продолжение ряда (3.13).
Особые точки решения находим как точки пересечения двух или трех окружностей сходимости соответствующих аналитических продолжений. Если найденная особая точка есть полюс, то его легко выделить, перестроив соответствующим образом ряд (3.13).
Все полученные результаты имеют место также и в комплексной области.
Для пояснения методики вычислений рассмотрим пример.
Пример. Решим с семью десятичными знаками на сегменте [-1; +1] задачу Коши для нелинейного уравнения третьего порядка:
5y'''=2y'+y3-(x); (х)=sh(x) (1/x). (3.16)
при следующих начальных условиях:
x0=0; y(0)=1; y' (0)=1; y'' (0)=1/2. (3.17)
Решение. Подставив в исходное уравнение (3.16) ряды (3.13), (3.14), (3.17) при x0 = 0, k = 3, в результате сравнения коэффициентов при хn имеем:
(3.18)
n есть коэффициенты ряда Маклорена для заданной функции
в данном случае
Заменив теперь по формуле (3.8)
и учтя, что согласно начальным условиям (3.17)
a0=1; a1=1; a2=1/4,
находим из (3.18) рекуррентную формулу (3.10) для уравнения (3.16);
(3.19)
Коэффициенты a*n вычисляем по формуле (1.8), а коэффициенты аn(3) - по формуле (1.5), в которой надо вначале положить l=m= 1, а затем l= 1, т = 2, в результате чего получим
Все вычисления (с одним запасным знаком) приведены в табл. 1, и окончательным решением будет ряд
Согласно (3.13), радиус сходимости полученного ряда
так что при п = 15 заданная точность для |x|1 будет выполнена.
Методика вычислений по формулам (3.20) - (3.20') очень проста.
По известным а0, а1, а2 вычисляем а*1=а1 и а*2=а2, а также а0(2), а1(2), а2(2), после чего, перемножив столбец аn на столбец аn(2), находим соответствующий коэффициент аn(3).В результате получаем все необходимые данные для вычисления по рекуррентной формуле (1.19) а3 и а4, что позволяет продолжить дальше этот процесс и определить любое количество коэффициентов аn искомого ряда (3.21).
Для удобства ориентировки каждый из сомножителей, который используется в данный момент, отмечаем какими-либо марками. Столбец аn(2) вычисляем, умножив столбец аn сам на себя. Например,
an(2) = 1.00000000 * 0,25000000 + (1.00000000)2 + 0,25000000 *1,00000000 = 1,50000000.
an(3) = 1,00000000 * 1,50000000 + 1,00000000 * 2,00000000 + 0,25000000 * 1,00000000 = =3,75000000.
Ход дальнейших вычислений ясен из табл. 1, в которой все величины, необходимые для определения очередного аn+3, размещены в одной строке.
Для того чтобы точнее определить радиус сходимости R, вычисления надо вести с большим числом значащих цифр, и если мы это выполним, то получим, например,
a12=5,7341*10-6; a13=1,8765*10-6;… по которым в табл. 1 найдены соответствующие аn/an+1
4. Уравнение Риккати
Уравнение Риккати (1676-1754) - одно из простейших нелинейных дифференциальных уравнений первого порядка.
4.1 Общее дифференциальное уравнение Риккати
y'=P(x) y2+ Q(x) y+R(x) (4.1)
за исключением некоторых частных случаев, не сводится к квадратурам и не может быть выражено в конечном виде через элементарные функции (Лиувилль).
Для четырех частных решений этого уравнения y1, y2, y3, y4 двойное отношение постоянно:
Поэтому, если известны три частных решения y1, y2, y3, то получаем общее решение
с произвольной постоянной С. Если известны лишь два решения y1 и y2, то будем иметь:
(4.3)
Располагая только одним известным частным решением y1, при помощи подстановки
y=y1+1/v (4.4)
уравнение Риккати можно привести к линейному уравнению:
v'+ [2P(x) y1+ Q(x)] v + P(x)=0 (4.5)
Подстановкой
y= - u'/[P(x) u] (4.6)
уравнение (4.1) можно свести к однородному линейному уравнению второго порядка:
(4.7)
Если положить y=1/z, (4.8)
то для z получим снова уравнение Риккати
z'= - [P(x) z2+ Q(x) z+R(x)] (4.9)
нули которого будут являться полюсами исходного уравнения (4.1) и наоборот.
Заменой переменных
(4.10)
общее уравнение Риккати (4.1) можно привести к канонической форме:
(4.11)
, (4.12)
а функция (х) определяется из условия: P'+2P2+PQ=0
т.е. (4.13)
5. Исследование решений в окрестности полюса и существенно особой точки
лоран дифференциальный рикатти уравнение
При решении дифференциальных уравнений степенными рядами каждый полученный ряд является только элементом искомого решения, определенным в его области сходимости. Область сходимости степенного ряда есть круг, на границе которого должна находиться по крайней мере одна особая точка решения исходного дифференциального уравнения. Поэтому для того, чтобы распространить полученные результаты на всю комплексную область, нам прежде всего надо найти 'методику исследования поведения решений в окрестности полюса и существенно особой точки, которые на практике встречаются наиболее часто. С этой целью обратимся к характерному примеру, рассматривая при этом искомую функцию = и +iv и аргумент z =x+iy как комплексные величины.
Пример. Определим все полюсы решения задачи Коши для уравнения Риккати
(5.1)
Решение. Представим исходное уравнение в виде:
(5.2)
Тогда для определения коэффициентов его решения
(5.3)
рекуррентная формула будет иметь следующий вид:
или
(5.4)
Значение коэффициентов n для заданной функции
находим, представив ее в виде ряда с тем же центром z0= 0.
При n= 0 мы должны положить
a-1=0; a-1(2)=a-2(2)=0; a*0=0 (так как a*n=nan); 0 = - 1,
и тогда, согласно формулам (5.4), находим
a*1=0=-1; a1=a*1
При n=1 имеем:
и, следовательно,
Вычисление остальных коэффициентов a*n и an до (n = 12 включительно) ясно из табл. 2, в которой приведены все необходимые данные. При этом вначале по известным уже аn вычисляем an(2) =[anan] и
a*n+1, после чего, разделив найденное a*n+1 на его номер, определяем an+1
Проанализировав результаты, видим, что все нечетные коэффициенты
an=a2v+1= - 1; v=0,1,2,…
а все четные с ростом n стремятся к +1. Поэтому из решения (5.3) целесообразно вычесть ряд
1/(1+ z)=1-z + z 2 - z3 + …
в результате чего получим
(5.5)
где коэффициенты bп определяются по формуле
bn=an - (- 1)n
и их значения приведены в последней колонке табл. 2
Так как
b2v+1=0; b2v=(- 1)v/2v+1; v=0,1,2,… то, просуммировав каждый из полученных рядов (5.5), находим решение уравнения (5.1) в замкнутом виде:
(5.6)
Подставив это значение в (5.1), после несложных преобразований убеждаемся, что оно удовлетворяет и самому дифференциальному уравнению, и начальному условию (0)=3/2.
Таким образом, искомое решение имеет три полюса
z= - 1; z=2
благодаря чему радиус сходимости ряда (5.3) есть единица.
Формула (5.6), которую мы получили, исходя из ряда (5.3) полностью решает поставленную задачу. Однако просуммировать в явном виде полученный ряд удается лишь в простейших случаях, редко встречающихся на практике. Поэтому решим поставленную задачу, не прибегая к процессу суммирования ряда (5.3), а воспользовавшись его аналитическим продолжением и, кроме того, при помощи перехода к инверсной функции, что можно выполнить в случае любого получаемого ряда, суммируемого в явном виде или не суммируемого.
Ряд (5.3) является только элементом решения уравнения (5.1), определенным в круге с центром z0= 0 и проходящим через ближайшую к z0 особую точку z= - 1. Но этот элемент мы можем аналитически продолжить на полную область его определения, которой чаще всего является вся комплексная область, за исключением сколь угодно малых окрестностей изолированных особых точек. (Могут встретиться и такие случаи, когда окружность сходимости исходного элемента состоит из всюду плотного множества особых точек, так что исходный ряд за нее нельзя аналитически продолжить, но мы такие исключительные случаи рассматривать не будем.)
Для того чтобы аналитически продолжить исходный элемент (5.3), необходимо только вычислить для нового центра z0 значение функции 0=(z0) и в случае необходимости перестроить рекуррентную формулу (5.4). В качестве нового центра z0 можно, вообще говоря, взять любую точку комплексной плоскости, лежащую внутри круга сходимости исходного ряда (5.3). Однако не любой выбранный центр z0 будет приводить к расширению круга сходимости исходного ряда, так что мы должны предварительно испытать ряд проб и найти такую последовательность центров z0(I), z0(II), z0(III), которая ведет к поставленной цели.
В качестве первой пробы возьмём z0=z0(1)=+
Тогда, выполнив в уравнении (5.2) замену независимой переменной
z=t+z0(1)=t+;
(5.7)
приходим к уравнению
2,
или после очевидных преобразований
, (5.8)
где
Следовательно, коэффициенты an=an* ряда I
(5.9)
будут определяться рекуррентной формулой
(5.10)
В табл. 3 по формулам (5.10) вычислены с семью десятичными знаками 17 коэффициентов аn= аn* ряда I. Значение a*0= 1,1111111…, без знания которого нельзя начать рекуррентный процесс (5.10), мы определили при помощи исходного ряда (5.3)
положив в нем z=z0(I)=1/2. При этом для обеспечения требуемой точности выполненное в табл. 2 вычисление коэффициентов аn надо продолжить до n = 24. Для контроля найденных коэффициентов an* ряда I определяем (t) при t= - 0,5, т.е. при z=t + 0,5 =0, и в результате получаем
(t) t=-0.5=(z) z=0= 1,5000000,
что в пределах точности вычислений полностью совпадает с исходным начальным значением (5.1)
(z) z=0=(z0)=3/2
Вычислив с помощью ряда I по тем же коэффициентам an* значение (t) при t= + 0,5, т.е. при
Z=t + 0,5 =1, получаем новое начальное значение
(z) z=z0=1=(z0(II))= 0,8333333,
определяющее собой ряд II с центром z0=z0(II)= + 1:
(5.11)
который является аналитическим продолжением ряда I (рис. 3). Рекуррентная формула для определения коэффициентов an =an** ряда II будет иметь следующий вид:
(5.12)
Действительно, произведя в (5.1) подстановку
(5.12)
Первые 16 коэффициентов an = an** ряда II вычислены в табл. 4, а для контроля этих вычислений умножим найденные аn** на n для = - 0.5, т.е. для z = + 1 = 0.5, стоящие в тех же строках, и, просуммировав результаты, получаем
() =-0.5=(z) z=0.5= 1,1111111,
Что полностью совпадает с начальным значением (z0(I))=a0*=1,1111111 ряда I.
Вычислив аналогичным путем
() =0.5=(z) z=1.5= 0,6352941.
мы можем использовать этот результат для построения ряда III. Однако сходимость ряда II значительно лучше сходимости ряда I, в чем легко убедиться, проанализировав быстроту убывания коэффициентов an* и an**, а также сравнив результаты, полученные в табл. 3 для t = 1 и = 1 с соответствующими точными значениями. Поэтому мы можем с помощью ряда II вычислить (при п = 15 с пятью десятичными знаками) начальное значение
() =1=(z) z=2 =0,50000,
соответствующее центру z0=z0(III) = + 2, и построить затем ряд III, сходящийся еще быстрее.
Продолжая этот процесс, мы будем получать ряды, сходящиеся все быстрее и быстрее, так что, определив по формуле (3.12) § 3 радиусы сходимости для двух из них, найдем затем полюсы z=, как точки пересечения окружностей сходимостей этих рядов. Но это процесс довольно трудоемкий, а потому более целесообразно перейти к инверсной функции.
(5.14)
нули которой будут являться полюсами исследуемой функции (и наоборот).
Переход к инверсной функции проще всего осуществить при помощи подстановки
(5.15)
Тогда из (5.1) получаем уравнение
или, умножив обе части на (1 + z) 2 и поменяв знаки,
(5.16)
Решение этого уравнения ищем в виде ряда
(5.17)
и для коэффициентов n получаем рекуррентную формулу
(5.18)
0=1/a0=2/3; 0=0; 1=2; 2=4; 3=2; n=0 при n4Нули функции находим, определяя корни уравнения по формуле Ньютона
(5.19) При этом производную (z) находим, пользуясь коэффициентами *n которые были уже вычислены в процессе определения коэффициентов n по формуле (5.18).
В табл. 5 вычислены первые 24 коэффициента n по которым затем, исходя из нулевого приближения z0(0) =-0,8, после двух уточнений по формуле Ньютона находим один из нулей z2(0)= - 1,00001 инверсной функции (z). Выполнив еще один шаг, получаем
z(0)=z3(0)= - 1,000000.
Следовательно, одним из полюсов исследуемой функции =1/(z) будет точка z= - 1,000000.
Выделив этот полюс из исходного ряда (5.3), аналогичным путем определяем два других полюса, на чем и заканчиваем решение поставленной задачи.
Коэффициенты n для инверсной функции можно также непосредственно найти по коэффициентам исходного ряда (5.3), так как, согласно (5.14), имеем
(5.20)
Тогда, представив единицу в следующем виде:
при n 2
И воспользовавшись формулами:
получаем:
n= - 0(0an+1an-1+ … +n-1a1); 0=1/a0=2/3. (5.21)
где an - коэффициенты исходного ряда (5.3).
Приложение А
Исследование решений дифференциальных уравнений в окрестности полюсов и особых точек
Программа
ФОРМА - ЗАСТАВКА
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
Form1. Visible = False
Form4. Visible = True
End Sub
Private Sub Ex_Click()
End
End Sub
Private Sub Form_Load()
Form1. Visible = True
End Sub
Private Sub prog_Click()
Form1. Visible = False
Form2. Visible = True
End Sub
ФОРМА - ВВОД ЗНАЧЕНИЙ
Private Sub Command1_Click()
If Text1 = «0» Or Text1 = «» Or Text2 = «» Or Text3 = «» Or Text4 = «» Or Text5 = «» Or Text6 = «» Then
Beep
Label1. Caption = «Введите все коэффициенты, первый не должен равняться 0»
ElseIf Text1 = «0» Or Text1 = «» Or Text2 = «» Or Text3 = «» Or Text4 = «» Or Text5 = «» Or Text6 = «» Then
Beep
Label1. Caption = «Введите все коэффициенты, первый не должен равняться 0»
Else
k1 = Text1
k2 = Text2
k3 = Text3
k4 = Text4
k5 = Text5
w0 = Text6
z0 = 0
Label1. Caption = «»
Form4. Visible = False
Form3. Visible = True
End If
End Sub
ФОРМА - ИНФОРМАЦИЯ
Dim num As Integer
Dim num2 As Integer
Dim num1 As Integer
Dim ds1 As Double
Dim ds2 As Double
Private Sub Command1_Click()
Form3. Visible = False
Form1. Visible = True
End Sub
Private Sub Command4_Click()
Form3. Visible = False
Form6. Visible = True
End Sub
Private Sub Command5_Click()
Form3. Visible = False
Form4. Visible = True
End Sub
Private Sub Form_Load()
Form1. Visible = True
Form3. Visible = False
If k1 = 0 Then k1 = 1
Grid1. ColAlignment(0) = 3
Grid1. ColAlignment(4) = 3
Grid1. ColAlignment(1) = 3
Grid1. ColAlignment(2) = 3
Grid1. ColAlignment(3) = 3
Grid1. ColWidth(0) = 500
Grid1. ColWidth(4) = 1300
Grid1. ColWidth(2) = 1300
Grid1. ColWidth(3) = 1300
Grid1. ColWidth(1) = 1300
a(-2) = 0
a(-1) = 0
a(0) = w0
ny(0) = -1
a2 (-2) = 0
a2 (-1) = 0
at(0) = 0
For i% = 0 To 25
If i > 0 And i / 2 = Int (i / 2) Then ny(i) = 1 Else ny(i) = -1
For j% = 0 To i
a2 (i) = a2 (i) + a(j) * a (i - j)
Next j
at (i + 1) = (k5 * a (i - 1) + (k4 * a2 (i - 1) + k3 * a2 (i - 2)) - k2 * at(i) + ny(i)) / k1
a (i + 1) = at (i + 1) / (i + 1)
If i / 2 = Int (i / 2) Then wan% = 1 Else wan = -1
b(i) = a(i) - wan
Next i
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = a (i - 1)
Grid1. TextMatrix (i, 2) = a2 (i - 1)
Grid1. TextMatrix (i, 3) = at (i - 1)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub HS1_Change()
num = HS1. Value
If num1 > num Then
For i = num + 1 To num1 + 1
Grid1. TextMatrix (i, 0) = «»
Grid1. TextMatrix (i, 1) = «»
Grid1. TextMatrix (i, 2) = «»
Grid1. TextMatrix (i, 3) = «»
Grid1. TextMatrix (i, 4) = «»
Next i
End If
Label1. Caption = num
Label2. Caption = «Нажмите <обновить>»
num1 = num
End Sub
Private Sub Command3_Click()
Label2. Caption = «»
a(0) = w0
For i% = 0 To 50
If i > 0 And i / 2 = Int (i / 2) Then ny(i) = 1 Else ny(i) = -1
a2 (i) = 0
For j% = 0 To i
a2 (i) = a2 (i) + a(j) * a (i - j)
Next j
at (i + 1) = (k5 * a (i - 1) + (k4 * a2 (i - 1) + k3 * a2 (i - 2)) - k2 * at(i) + ny(i)) / k1
a (i + 1) = at (i + 1) / (i + 1)
If i / 2 = Int (i / 2) Then wan% = 1 Else wan = -1
b(i) = a(i) - wan
Next i
For i = 0 To 25
For j = 1 To 10
ds1 = Format (a(i) / a (i + j), «0.000»)
ds2 = Format (a(i + j) / a (i + 2 * j), «0.000»)
If ds1 < 0 Then ds1 = ds1 * (-1)
If ds2 < 0 Then ds2 = ds2 * (-1)
If ds1 = ds2 Then Label7. Caption = ds1
Next j
Next i
radius1 = Label7. Caption
If num2 = 0 Then num2 = 1
Select Case num2
Case 1
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.0»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.0»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.0»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 2
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.00»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.00»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.00»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 3
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 4
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.0000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.0000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.0000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 5
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.00000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.00000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.00000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 6
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.000000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.000000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.000000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 7
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.0000000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.0000000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.0000000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 8
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.00000000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.00000000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.00000000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 9
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.000000000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.000000000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.000000000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
Case 10
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a(i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 2) = Format (a2 (i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 3) = Format (at(i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 4) = ny (i - 1)
Next i
End Select
End Sub
Private Sub HS2_Change()
num2 = HS2. Value
Label4. Caption = num2
Label2. Caption = «Нажмите <обновить>»
End Sub
ФОРМА - ИНФОРМАЦИЯ О ПРОГРАММЕ
Private Sub Command1_Click()
Form1. Visible = True
Form2. Visible = False
End Sub
Private Sub Form_Load()
Label1. Caption = «Данный программный продукт составил студент КнАГТУ группы 6ПМ-1 Давыдов Андрей Анатольевич. Программа позволяет решить дифференциальное уравнение, а также исследовать полученные полюса и особенно существенные точки»
End Sub
ФОРМА - ВЫБОР МЕТОДА
Private Sub Command1_Click()
If Option1. Value = True Then
Form7. Visible = True
Form6. Visible = False
ElseIf Option1. Value = True Then
Form7. Visible = True
Form6. Visible = False
Else
End If
If Option2. Value = True And Text1 <> «» Then
Form5. Visible = True
z1 = Text1
Label2 = «»
Option1. Value = True
Label1 = «»
Label3 = «»
Label4 = «»
Form5. Label6. Caption = z1
Form6. Visible = False
ElseIf Option2. Value = True And Text1 = «» Then
Beep
Label2 = «Необходимо ввести z1»
Else
End If
End Sub
Private Sub Option1_Click()
Label1 = «»
Label2 = «»
Label3 = «»
Label4 = «»
End Sub
Private Sub Option2_Click()
Label1 = «Введите значение z1= (<z1<)»
Label3 = z0 - radius1
Label4 = z0 + radius1
End Sub
ФОРМА - ИССЛЕДОВАНИЕ ПОЛЮСОВ
Dim num As Integer
Dim num2 As Integer
Dim num15 As Integer
Dim sum As Double
Dim ds1 As Double
Dim ds2 As Double
Dim ds3 As Double
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
If Text1 = «» Then
Beep
Label9 = «Необходимо ввести радиус»
ElseIf Text1 = «» Then
Beep
Label9 = «Необходимо ввести радиус»
Else
radius2 = Text1
Label9 = «»
Form9. Label3 = z1 - radius2
Form9. Label4 = z1 + radius2
Form5. Visible = False
Form9. Visible = True
End If
End Sub
Private Sub Command5_Click()
Form5. Visible = False
Form4. Visible = True
End Sub
Private Sub Form_Load()
Grid1. ColAlignment(0) = 3
Grid1. ColAlignment(4) = 3
Grid1. ColAlignment(1) = 3
Grid1. ColAlignment(2) = 3
Grid1. ColAlignment(3) = 3
Grid1. ColWidth(0) = 300
Grid1. ColWidth(4) = 1600
Grid1. ColWidth(2) = 1300
Grid1. ColWidth(3) = 1300
Grid1. ColWidth(1) = 1300
For i% = 0 To 24
z1n(i) = 1
For j% = 0 To i
If j = 0 Then z1n(i) = 1 Else z1n(i) = z1n(i) * z1
Next j
sum = sum + z1n(i) * a(i)
Next i
a1 (-2) = 0
a1 (-1) = 0
a1 (0) = sum
ny1 (0) = -2 + 1 / (1 + z1)
ny1 (1) = - (1 / ((1 + z1) * (1 + z1)))
a21 (-2) = 0
a21 (-1) = 0
at1 (0) = 0
For i = 0 To 25
If i > 1 Then ny1 (i) = 0
If i > 1 Then ny1 (i) = - (1 / (1 + z1)) * ny1 (i - 1)
a21 (i) = 0
For j = 0 To i
a21 (i) = a21 (i) + a1 (j) * a1 (i - j)
Next j
at1 (i + 1) = (k5 * a1 (i - 1) + k5 * z1 * a1 (i) + k3 * a21 (i - 2) + (2 * k3 * z1 + k4) * a21 (i - 1) + (k4 * z1 + k3 * z1 * z1) * a21 (i) - k1 * at1 (i) + ny1 (i)) / (k1 + k1 * z1)
a1 (i + 1) = at1 (i + 1) / (i + 1)
z1n(i) = 1
Next i
For i = 1 To num15 + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0»)
Next i
End Sub
Private Sub Command1_Click()
Form5. Visible = False
Form1. Visible = True
End Sub
Private Sub HS1_Change()
num = HS1. Value
If num15 > num Then
For i = num + 1 To num15 + 1
Grid1. TextMatrix (i, 0) = «»
Grid1. TextMatrix (i, 1) = «»
Grid1. TextMatrix (i, 2) = «»
Grid1. TextMatrix (i, 3) = «»
Grid1. TextMatrix (i, 4) = «»
Next i
End If
Label1. Caption = num
Label3. Caption = «Нажмите <обновить>»
num15 = num
End Sub
Private Sub Command2_Click()
Label3. Caption = «»
sum = 0
For i% = 0 To 24
z1n(i) = 1
For j% = 0 To i
If j = 0 Then z1n(i) = 1 Else z1n(i) = z1n(i) * z1
Next j
sum = sum + z1n(i) * a(i)
Next i
a1 (0) = sum
ny1 (0) = -2 + 1 / (1 + z1)
ny1 (1) = - (1 / ((1 + z1) * (1 + z1)))
For i% = 0 To 50
If i > 1 Then ny1 (i) = 0
If i > 1 Then ny1 (i) = - (1 / (1 + z1)) * ny1 (i - 1)
a21 (i) = 0
For j% = 0 To i
a21 (i) = a21 (i) + a1 (j) * a1 (i - j)
Next j
at1 (i + 1) = (k5 * a1 (i - 1) + k5 * z1 * a1 (i) + k3 * a21 (i - 2) + (2 * k3 * z1 + k4) * a21 (i - 1) + (k4 * z1 + k3 * z1 * z1) * a21 (i) - k1 * at1 (i) + ny1 (i)) / (k1 + k1 * z1)
a1 (i + 1) = at1 (i + 1) / (i + 1)
z1n(i) = 1
For j = 0 To i
If j = 0 Then z1n(i) = 1 Else z1n(i) = z1n(i) * z1
Next j
Next i
Label6. Caption = z1
If num2 = 0 Then num2 = 1
Select Case num2
Case 1
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0»)
Next i
Case 2
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.00»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.00»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.00»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.00»)
Next i
Case 3
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.000»)
Next i
Case 4
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0000»)
Next i
Case 5
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.00000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.00000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.00000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.00000»)
Next i
Case 6
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.000000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.000000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.000000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.000000»)
Next i
Case 7
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0000000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0000000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0000000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0000000»)
Next i
Case 8
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.00000000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.00000000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.00000000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.00000000»)
Next i
Case 9
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.000000000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.000000000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.000000000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.000000000»)
Next i
Case 10
For i = 1 To num + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0000000000»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0000000000»)
Next i
End Select
End Sub
Private Sub HS2_Change()
num2 = HS2. Value
Label2. Caption = num2
Label3. Caption = «Нажмите <обновить>»
End Sub
ФОРМА - ВВОД ЗНАЧЕНИЯ z1
Private Sub Command1_Click()
If Text1 = «» Then
Beep
Label2. Caption = «Необходимо ввести значение z2»
ElseIf Text1 = «» Then
Beep
Label2. Caption = «Необходимо ввести значение z2»
Else
z2 = Text1
Label2 = «»
Form8. Label6 = z1
Form8. Label7 = z2
Form9. Visible = False
Form8. Visible = True
End If
End Sub
ФОРМА - ИССЛЕДОВАНИЕ ПОЛЮСОВ 2
Dim num As Integer
Dim num2 As Integer
Dim num15 As Integer
Dim sum As Double
Dim ds1 As Double
Dim ds2 As Double
Dim ds3 As Double
Private Sub Command1_Click()
Form8. Visible = False
Form1. Visible = True
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
If Text1 = «» Then
Label10 = «Необходимо ввести радиус»
Beep
ElseIf Text1 = «» Then
Label10 = «Необходимо ввести радиус»
Beep
Else
radius3 = Text1
Label10 = «»
x1 = (radius2 * radius2 - radius1 * radius1 - z1 * z1) / (-2 * z1)
If (radius1 * radius1 - x1 * x1) < 0 Then
Label10 = «Введеные радиусы не корректны»
ElseIf (radius1 * radius1 - x1 * x1) >= 0 Then
y1 = Sqr (radius1 * radius1 - x1 * x1)
x2 = (radius3 * radius3 - radius2 * radius2 - z2 * z2 + z1 * z1) / (2 * (z1 - z2))
If (radius2 * radius2 - (x2 + z1) * (x2 + z1)) < 0 Then
Label10 = «Введеные радиусы не корректны»
ElseIf (radius2 * radius2 - (x2 + z1) * (x2 + z1)) >= 0 Then
y2 = Sqr (radius2 * radius2 - (x2 + z1) * (x2 + z1))
If y2 < 0 Then
Form12. Label3 = «z2= i»
Form12. Label4 = «z3= + i»
ElseIf y2 < 0 Then
Form12. Label3 = «z2= i»
Form12. Label4 = «z3= + i»
Else
Form12. Label4 = «z3= i»
Form12. Label3 = «z2= + i»
End If
Form8. Visible = False
Form12. Visible = True
Form12. Label6 = Format (x1, «0.000»)
Form12. Label7 = Format (y1, «0.000»)
Form12. Label8 = Format (x2, «0.000»)
Form12. Label9 = Format (y2, «0.000»)
Form12. Label10 = Format (x2, «0.000»)
Form12. Label11 = Format (-1 * y2, «0.000»)
Else
End If
Else
End If
End If
End Sub
Private Sub Command5_Click()
Form8. Visible = False
Form5. Visible = True
End Sub
Private Sub Form_Load()
Grid1. ColAlignment(0) = 3
Grid1. ColAlignment(4) = 3
Grid1. ColAlignment(1) = 3
Grid1. ColAlignment(2) = 3
Grid1. ColAlignment(3) = 3
Grid1. ColWidth(0) = 300
Grid1. ColWidth(4) = 1600
Grid1. ColWidth(2) = 1300
Grid1. ColWidth(3) = 1300
Grid1. ColWidth(1) = 1300
Grid2. ColAlignment(0) = 3
Grid2. ColAlignment(4) = 3
Grid2. ColAlignment(1) = 3
Grid2. ColAlignment(2) = 3
Grid2. ColAlignment(3) = 3
Grid2. ColWidth(0) = 300
Grid2. ColWidth(4) = 1600
Grid2. ColWidth(2) = 1300
Grid2. ColWidth(3) = 1300
Grid2. ColWidth(1) = 1300
z2 = Form9. Text1
For i% = 0 To 24
z1n(i) = 1
For j% = 0 To i
If j = 0 Then z2n(i) = 1 Else z2n(i) = z2n(i) * (z2 - z1)
Next j
sum = sum + z2n(i) * a1 (i)
Next i
a12 (-2) = 0
a12 (-1) = 0
a12 (0) = sum
ny2 (0) = -2 + 1 / (1 + z2)
ny2 (1) = - (1 / ((1 + z2) * (1 + z2)))
a22 (-2) = 0
a22 (-1) = 0
at2 (0) = 0
For i = 0 To 25
If i > 1 Then ny2 (i) = - (1 / (1 + z2)) * ny2 (i - 1)
a22 (i) = 0
For j = 0 To i
a22 (i) = a22 (i) + a12 (j) * a12 (i - j)
Next j
at2 (i + 1) = (k5 * a12 (i - 1) + k5 * z2 * a12 (i) + k3 * a22 (i - 2) + (2 * k3 * z2 + k4) * a22 (i - 1) + (k4 * z2 + k3 * z2 * z2) * a22 (i) - k1 * at2 (i) + ny2 (i)) / (k1 + k1 * z2)
a12 (i + 1) = at2 (i + 1) / (i + 1)
z2n(i) = 1
Next i
For i = 1 To num15 + 1
Grid1. TextMatrix (i, 0) = i - 1
Grid1. TextMatrix (i, 1) = Format (a1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 2) = Format (a21 (i - 1), «0.0»)
Grid1. TextMatrix (i, 3) = Format (at1 (i - 1), «0.0»)
Grid1. TextMatrix (i, 4) = Format (ny1 (i - 1), «0.0»)
Grid2. TextMatrix (i, 0) = i - 1
Grid2. TextMatrix (i, 1) = Format (a12 (i - 1), «0.0»)
Grid2. TextMatrix (i, 2) = Format (a22 (i - 1), «0.0»)
Grid2. TextMatrix (i, 3) = Format (at2 (i - 1), «0.0»)
Grid2. TextMatrix (i, 4) = Format (ny2 (i - 1), «0.0»)
Next i
End Sub
Private Sub HS1_Change()
num = HS1. Value
If num15 > num Then
For i = num + 1 To num15 + 1
Grid1. TextMatrix (i, 0) = «»
Grid1. TextMatrix (i, 1) = «»
Grid1. TextMatrix (i, 2) = «»
Grid1. TextMatrix (i, 3) = «»
Grid1. TextMatrix (i, 4) = «»
Grid2. TextMatrix (i, 0) = «»
Grid2. TextMatrix (i, 1) = «»
Grid2. TextMatrix (i, 2) = «»
Grid2. TextMatrix (i, 3) = «»
Grid2. TextMatrix (i, 4) = «»
End If
Заключение
В результате выполнения дипломной работы были решены дифференциальные уравнения и исследованы полученные решения в окрестности полюсов двумя способами. Разработана методика исследования решений в комплексной области и представления результата в виде действительной и мнимой частей без относительной затраты времени и огромного объема вычислений. Приблизительно, производительность программы по скорости вычислений превышает в десятки тысяч раз. Программа выдает желаемое количество полученных коэффициентов (от 1 до 25) с желаемой точностью (от 1 до 10 знаков после запятой). В результате значительной доработки данной дипломной работы можно устранить необходимость ввода радиусов сходимости полученных рядов, но по предварительным расчетам необходимо будет вычислять до 300 коэффициентов исследуемого ряда, что в некоторых случаях будет приводить к переполнению переменных в коде программы.
Список источников
Кудрявцев Л.Д. «Курс математического анализа» Т.1, М., ВШ., 1981 г. - 687 с.
Фильчаков П.Ф.» Численные и графические методы прикладной математики» Справочник, К., «Наукова думка», 1970 г. - 798 с.
Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся вузов. - 13-е изд., исправленное. - М.,:Наука, 1986 - 544 с.
Михаэль Райтингер, Геральд Муч. Visual Basic 6: полное руководство: пер. с нем. - К.: Издательская группа BHV, 2000. - 720 с.
Данилина Н.И., Дубровская Н.С. Численные методы. - М.: «Высшая школа», 1976 - 368 с.
Мышкис А.Д. Математика для ВТУЗов. Спец. Курсы. - М.:» Наука». 1971 - 632 с.
Данко П.Е., Попов А.Г. Теория функций комплексного переменного. - М.: «Высшая школа». 1986 - 415 с.
Подобные документы
Понятие о голоморфном решении задачи Коши. Теорема Коши о существовании и единственности голоморфного решения задачи Коши. Решение задачи Коши для линейного уравнения второго порядка при помощи степенных рядов. Интегрирование дифференциальных уравнений.
курсовая работа [810,5 K], добавлен 24.11.2013Понятия, связанные с рядами и дифференциальными уравнениями. Необходимый признак сходимости. Интегрирование дифференциальных уравнений с помощью рядов. Уравнение Эйри и Бесселя. Примеры интегрирования в Maple. Приближенные вычисления с помощью рядов.
курсовая работа [263,9 K], добавлен 11.12.2013Нахождение особых точек уравнений, определение их типов, построение фазовых траекторий в окрестности каждой особой точки. Исследование циклических траекторий на изохронность, устойчивости нулевого решения, доказывание существования циклов в уравнениях.
контрольная работа [457,9 K], добавлен 23.09.2010Представления фазовых кривых систем двух обыкновенных дифференциальных уравнений вблизи критического направления. Построение примеров, удовлетворяющих методу Фроммера. Нахождение характеристических чисел 1 и 2 рода дифференциального уравнения в C++.
дипломная работа [595,0 K], добавлен 11.02.2012Анализ методов решения систем дифференциальных уравнений, которыми можно описать поведение материальных точек в силовом поле, законы химической кинетики, уравнения электрических цепей. Этапы решения задачи Коши для системы дифференциальных уравнений.
курсовая работа [791,0 K], добавлен 12.06.2010Система двух нелинейных обыкновенных дифференциальных уравнений, порождённая прямым и обратным преобразованиями Беклунда высшего аналога второго уравнения Пенлеве. Аналитические свойства решения, наличие у системы четырёхпараметрических семейств решений.
реферат [104,0 K], добавлен 28.06.2009Определение степенного ряда. Теорема Абеля как определение структуры области сходимости степенного ряда. Свойства степенных рядов. Ряды Тейлора, Маклорена для функций. Разложение некоторых элементарных функций в ряд Маклорена. Приложения степенных рядов.
реферат [89,3 K], добавлен 08.06.2010Задачи на нахождение неопределенного интеграла с применением метода интегрирования по частям. Вычисление площади, ограниченной заданными параболами. Решение дифференциального уравнения первого порядка. Исследование на сходимость ряда; признаки сходимости.
контрольная работа [136,7 K], добавлен 16.03.2010Существование и единственность решений дифференциальных уравнений. Геометрическая интерпретация решений. Линейные и нелинейные системы. Дифференциальные уравнения, моделирующие динамику популяций конкурирующих видов, их решения и фазовые портреты.
дипломная работа [2,5 M], добавлен 27.06.2012Описание колебательных систем дифференциальными уравнениями с малым параметром при производных, асимптотическое поведение их решений. Методика регулярных возмущений и особенности ее применения при решении задачи Коши для дифференциальных уравнений.
курсовая работа [1,5 M], добавлен 15.06.2009