Практикум j практическое примщенше численных методов



Download 2,15 Mb.
bet49/83
Sana06.07.2022
Hajmi2,15 Mb.
#750238
TuriПрактикум
1   ...   45   46   47   48   49   50   51   52   ...   83
Bog'liq
python

Вы многое найдете

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

Поиски во всемирной сети уместно начать с репозитария пакетов Python43. Вторая общая возможность связана с тенденцией обеспечения интерфейса на языке Python к прикладному программному, написанному на других языках программирования. Поэтому нужно обратиться к ресурсам по интересую­щему вас программному обеспечению. Здесь мы отметим некоторые пакеты Python, которые расширяют возможности SciPy44 прежде всего по решению задач вычислительной математики.
Начнем мы с систем аналитических вычислений, которые традиционно хо­рошо представлены в таких общих математический инструментах, как пакет прикладных программ для решения задач технических вычислений MAT- LAB45, программа для выполнения и документирования инженерных и на­учных расчётов Mat head46, системы компьютерной алгебры Mathematica47 и Maple48. Наиболее полная поддержка символьных вычислений обеспечивается Sage49. Этот программный продукт позиционируется как свободно-програм­мная альтернатива тех же Maple, Mathematica и MATLAB. Для иллюстрации поддержки символьных вычислений при работе на Python мы ограничимся возможностями пакета SymPy.
В пакете SciPy мы выделили модуль optimize, в котором решаются нелиней­ные уравнения и минимизируются функции. Более широкие возможности по задачам оптимизации предоставляет специализированный пакет OpenOpt50. Помимо всего в этом пакете реализован интерфейс с другими программны­ми продуктами решения задач оптимизации. В частности, к пакету решения задач выпуклой оптимизации CVXOPT51.
При численном решении задачи Коши для системы обыкновенных диффе­ренциальных уравнений использовался модуль integrate пакета SciPy. До­полнительные возможности работы с такими математическими объектами предоставляет пакет Model Builder52. С использованием графической оболоч­ки строятся математические модели, находиться численное решение и ви- дуализируются данные расчетов. Пакет PyDDE53 позволяет найти решение систем обыкновенных дифференциальных уравнений с запаздыванием.
Для научных вычислений и прикладных исследований наибольший интерес представляют программные продукты, которые предназначены для решения краевых задач для уравнений с частными производными. В настоящее время необходимо ориентироваться на приближенное решение многомерных нели­нейных задач в нерегулярных расчетных областях. В силу этого необходимо иметь возможность подготовки входных данных (область, уравнения, гра­ничные условия), генерации расчетной сетки, аппроксимации (построения дискретной задачи), решения дискретных задач, обработки и визуализации расчетных данных.
Для подготовки сложных трехмерных геометрических моделей (расчетной области) используются CAD инструменты. Среди свободного программного обеспечения упомянем набор библиотек и программного обеспечения для 3D моделирования Open CASCADE54. На ее основе строятся многие как платные, так и бесплатные программные продукты. Отметим в этой связи открытую интегрируемую платформу для численного моделирования SALOME55. На основе Open CASCADE реализована Python 3D CAD библиотека pythonOCC56.
При численном решении задач математической физики используются регу­лярные и нерегулярные (структурированные, блочно-структурированные и неструктурированные) сетки. Сеточные генераторы являются важной состав­ной частью любого программного продукта, ориентированного на решение задач для уравнений с частными производными и они включены в общие ин­струменты численного моделирования. Среди пакетов Pethon, которые ори­ентированы на подготовку расчетных сеток, отметим Mesh Ру57 Имеется воз­можность строить 2D и 3D неструктурированные сетки на основе разбиения Вороного (триангуляция Делоне).
Особое внимание уделяется программным продуктам для решения дискрет­ных задач. При решении многомерных задач мы должны учитывать основ­ную специфику таких проблем, которая связана прежде всего с разреженной структурой расчетных данных. Мы упоминали выше о модуле sparse в пакете SciPy, который даст инструменты для работы с разреженными матрицами. В част ности, в модою sparse.linalg представлены функции для решения си­стем уравнений с такими матрицами. Аналогичные возможности предостав­ляет пакет Pysparse58. Из других пакетов линейной алгебры, ориентирован­ных на численное решение задач математической физики, стоит упомянуть pyAMG59, в котором реализован алгебраический многосеточный итерацион­ный метод для решения сеточных задач.
Для решения задач большой размерности необходимо использовать компью­теры с параллельной архитектурой. Разработка программного обеспечения для решения задач на таких вычислительных многопроцессорных и/или мно­гоядерных комплексах базируется на тех или иных алгоритмах распреде­ленных вычислений. Среди специализированных инструментов Python мож­но отметить паке]' mpi4py60, который обеспечивает поддержку MPI (Message passing Interface) стандарт для многопроцессорных систем. Для разбиения задачи на подзадачи используется пакет PyMetis61.
Среди общих инструментов прикладного численного анализа отметим кол­лекцию библиотек Trilinos62. В настоящее время пакет PyTrilinos63 обеспечи­вает интерфейс на языке Python к отдельным библиотекам этой коллекции. Пакет PySUNDIALS64 дает возможность работы с другой популярной кол­лекцией программного обеспечения численного анализа SUNDIALS65 (SUite of Nonlinear and Dlfferential/ALgebraic equation Solvers). В этой связи отметим, что предоставление интерфейса для работы на языке Python разрабатываемому прикладному программному обеспечению является общей тенденцией.
При проведении научных вычислений отдельного обсуждения заслуживает проблема визуализации расчетных данных. Особенно это актуально при опе­рировании с большими массивами данных на компьютерах параллельной ар­хитектуры. Для большинства случаев может быть достаточно возможностей графической библиотеки Matplotlib, которая достаточно подробно обсужда­лась нами выше, и им подобным (Gnuplot, DISLIN, Chaco). Для научной визу­ализации трехмерных данных (скаляров, векторов) можно ориентироваться на более мощные инструменты, такие, например, как Mayavi266 и Visualization Toolkit (VTK)67. Вторая возможность связана с записью расчетных данных в надлежащем формате и использованию сторонних программных продуктов для их визуализации. Хорошим примером программы визуализации данных расчетов является ParaView68, — свободно распространяемая программа с от­крытым кодом для параллельной и интерактивной научной визуализации.
Имеется ряд интегрированных программных продуктов, которые обеспечи­вают численное решение краевых задач для уравнений с частными произ­водными. Так например, DOLFIN69 обеспечивает интерфейс на языке Python для коллекции свободных программных продуктов FEniCS70 — инструменты для работы с сетками, конечно-элементными аппроксимациями уравнений с частными производными и решения дискретных задач. В качестве второго примера программного инструментария для решения многомерных целиной- ных задач на основе метода конечных элементов отметим Escript71. В пакете FiPy72 для решения стационарных и нестационарных задач математической физики применяется метод конечных объемов.
При разработке современных программных продуктов большое внимание уделяется графическому интерфейсу пользователя. На этот элемент програм­мирования при проведении научных расчетов практически часто не обраща­ется внимания. Однако совсем отказываться от удобств, который предостав­ляет GUI (Graphical user interface) вряд ли целесообразно. На примере пакета form layout мы проиллюстрируем разработку программ на языке Python с ми­нимальным графическим интерактивным вводом параметров.

Download 2,15 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   83




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish