Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание 1 часть_В1-В34.docx
Скачиваний:
1
Добавлен:
19.09.2019
Размер:
3.05 Mб
Скачать

Глава 11

Численные методы решения интегральных уравнений

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

§ 1. Решение интегральных уравнений методом замены интеграла квадратурной суммой

В теории численных методов решения интегральных уравнений рассмат­риваются следующие типичные задачи. Найти решение интегрального уравнения Фредгольма первого рода

Вариант № 25

  1. Отформатировать текст по стп мгупи. Оформить рисунки и программный кода

Обратите внимание на то, как в примере задается произвольное количество столб- цов — для этого в конструкторе вместо конкретного числа столбцов указывается ноль. Аналогично можно задать и произвольное количество строк в таблице. Главное, чтобы оба числа не были нулями. В нашем примере GridLayout разделит компоненты так, чтобы они помещались в два ряда, неважно, как много столбцов для этого придется создать.

Запустите программу с этим примером и попробуйте произвольно увеличить раз- | мер окна. Вы увидите, что менеджер расположения GridLayout очень «эгоистичен» — он j занимает все место, доступное в данный момент в окне, да еще к тому же безобразно ] «раздувает» свои компоненты. Если же вы уменьшите окно, то компоненты никуда не исчезнут, как это было в случае с последовательным расположением FlowLayout, а станет очень маленькими (вплоть до того, что на них ничего не станет видно). Ниже перечис­лены основные свойства табличного расположения.

  • Все компоненты имеют одинаковый размер. Доступное пространство контейнер с табличным расположением разбивается на одинаковое количество ячеек, в ках- |

дую из которых помещается компонент.

  • Все компоненты всегда выводятся на экран, как бы ни было велико или малодо­ступно пространство.

Чаще всего мы не хотим, чтобы компоненты были слишком велики или слишком «*- , лы, поэтому почти всегда имеет смысл размещать панель с табличным расположен»:*

G'idLayout в дополнительной панели с последовательным расположением FlowLayout, ко­торое наоборот, никогда не делает содержащиеся в нем компоненты больше их предпо- -ггительного размера, или использовать другое расположение с такими же свойствами GridBagLayout). Чтобы проиллюстрировать сказанное, создадим элемент пользователь­ского интерфейса, встречающийся практически в любом диалоговом окне, а именно гтроку кнопок (обычно это кнопки ОК и Отмена). Табличное расположение придаст кнопкам одинаковый размер, а последовательное расположение не даст им «расплыть­ся» и заодно выровняет их по правому краю:

// CommandButtons.java // Создание панели командных кнопок importjavax.swing.*; importjava.awt.*;

public class CommandButtons extends JFrame { public CommandButtons() { super("CommandButtons"); setSize(350, 250); setLocat’ion (150, 100);

setDefaultCloseOperation( EXIT_ON_CLOSE );

// создаемпанельстабличнымрасположениемдля // выравниванияразмеровкнопок JPanel grid = new JPanel(

new GridLayout(1, 2, 5, 0) );

// добавляемкомпонентыgrid.add( new JButton("OK")); grid.add( new JButton("Отмена"));

// помещаем полученное в панель с последовательным // расположением, выравненным по правому краю JPanel flow = new JPanel (

new FlowLayout( FlowLayout.RIGHT )); flow, add (grid) ;

// помещаемстрокукнопоквнизокна add (flow, BorderLayout. SOUTH );

// выводим окно на экран setVisible(true);

)

public static void main(String[] args) {

SwingUtilities.invokeLater( new Runnable() { i

public void run() { new CommandButtons(); } });

}

}

В конструкторе табличного расположения мы указываем один ряд с двумя столбца­ми, с расстоянием между компонентами по вертикали в 5 пикселов. Теперь, как бы вы не изменяли размер окна, в какой бы операционной системе не оказалось ваше приложе­ние, его пользовательский интерфейс окажется «на высоте»: полярное расположение заставит панель с кнопками разместиться вдоль нижней границы окна, табличное рас­положение приведет к выравниванию размеров кнопок, а последовательное расположе­ние заставит их прижаться к левому краю.

В дальнейшем при создании различных диалоговых окон мы не раз будем использо- вать этот пример.

Динамические вкладки и CardLayout

Хотя менеджер расположения CardLayoutподдерживается в пакетах JDKс самых пер­вых версий, при создании пользовательского интерфейса им практически не пользуют­ся. Менеджер CardLayoutдо появления библиотеки Swing использовался для создания так называемых вкладок (tabs), выбирая которые, можно было поочередно открывать доступ к панелям, занимающие одно и то же место. В библиотеке Swing имеется специ­альный класс JTabbedPane, который берет все заботы по организации вкладок на себя, а вам остается лишь добавлять их. Мы его вскоре изучим.

Вариантом применения CardLayoutостается динамический интерфейс, которому не нужны визуальные вкладки, которые предоставляет JTabbedPane, но нужна возможность динамически, во время работы программы, менять одни панели на другие. Но такая возможность легко реализуется и без CardLayout— необходимо убрать из контейнера старую панель методом remove(), добавить новую панель, и провести проверку коррект­ности контейнера методом revalidate(). Таким образом, область применения менеджера :CardLayoutвесьма ограничена и мы даже не станем рассматривать его на примере.

  1. Отформатировать таблицу по СТП МГУПИ

  1. Отформатировать текст по СТП МГУПИ, ввести формулы с помощью инструмента MSEquation

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

Будем рассматривать случай вещественных К(х, s) и f(x). Обратим внимание на следующее обстоятельство. Если ядро К(х, s) интегрально­го оператора G симметрично (K(s, х) = К(х,s)), то операторЕ — G, входящий в левую часть исходного уравнения (2), также симметричен.

Однако матрица системы уравнений (9) не обязательно будет симмет­ричной. Мы видели ранее, что решение систем уравнений с симметрич­ной матрицей в определенном смысле предпочтительнее решения системы уравнений с несимметричной матрицей: шире класс точных и итерацион­ных методов, которые могут быть применены для решения таких систем.

Вариант № 26