Главная страница
Навигация по странице:

  • Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный технический университет

  • РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ

  • _________________ Е.М.Иванова (Группа) (Подпись, дата) (И.О.Фамилия) Руководитель курсовой работы _________________ А.А.Федотов

  • _________________ П.В.Храпов (Подпись, дата) (И.О.Фамилия) 2020 г. Министерство науки и высшего образования Российской Федерации

  • (национальный исследовательский университет)» (МГТУ им. Н.Э. Баумана)

  • ЗАДАНИЕ

  • Руководитель курсовой работы

  • ОГЛАВЛЕНИЕ 1.Решение смешанной задачи для нестационарного двумерного уравнения теплопроводности методом конечных элементов. 4 1.1 Постановка задачи. 4

  • Найти решение смешанной задачи для гиперболического уравнения 4 (1) 4

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

  • Начально-краевая задача для нестационарного двумерного уравнения теплопроводности

  • Заключение.

  • Решение задач математической физики численными методами


    Скачать 0.93 Mb.
    НазваниеРешение задач математической физики численными методами
    Дата01.12.2020
    Размер0.93 Mb.
    Формат файлаdocx
    Имя файлаAlyona.docx
    ТипРешение
    #155656




    Министерство науки и высшего образования Российской Федерации

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

    высшего образования

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

    имени Н.Э. Баумана

    (национальный исследовательский университет)»

    (МГТУ им. Н.Э. Баумана)



    ФАКУЛЬТЕТ Фундаментальные науки
    КАФЕДРА Высшая математика

    РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
    К КУРСОВОЙ РАБОТЕ
    НА ТЕМУ:
    Решение задач математической физики численными методами


    Студент ФН1-61Б _________________ Е.М.Иванова

    (Группа) (Подпись, дата) (И.О.Фамилия)

    Руководитель курсовой работы _________________ А.А.Федотов

    (Подпись, дата) (И.О.Фамилия)
    Консультант _________________ П.В.Храпов

    (Подпись, дата) (И.О.Фамилия)

    2020 г.
    Министерство науки и высшего образования Российской Федерации

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

    высшего образования

    «Московский государственный технический университет имени Н.Э. Баумана

    (национальный исследовательский университет)»

    (МГТУ им. Н.Э. Баумана)
    УТВЕРЖДАЮ

    Заведующий кафедрой __________

    (Индекс)

    ______________ _______________

    (И.О.Фамилия)

    « _____ » ____________ 20 ____ г.
    ЗАДАНИЕ

    на выполнение курсовой работы
    по дисциплине Методы вычислений

    Студент группы ФН1-61Б

    Иванова Елена Михайловна

    (Фамилия, имя, отчество)
    Тема курсовой работы: Решение задач математической физики численными методами


    Направленность КР (учебная, исследовательская, практическая, производственная, др.)

    Учебная, исследовательская
    Источник тематики (кафедра, предприятие, НИР) ФН1
    График выполнения работы: 25% к 3 нед., 50% к 9 нед., 75% к 12 нед., 100% к 15 нед.
    Задание

    Решить смешанную задачу для двумерного волнового уравнения методом конечных элементов
    Оформление курсовой работы:
    Расчетно-пояснительная записка на _____ листах формата А4.

    _______________________________________________________________________________

    _______________________________________________________________________________

    _______________________________________________________________________________

    _______________________________________________________________________________
    Дата выдачи задания « 7 » февраля 2020 г.
    Руководитель курсовой работы _________________ А.А.Федотов

    (Подпись, дата) (И.О.Фамилия)

    Студент _________________ Е.М.Иванова

    (Подпись, дата) (И.О.Фамилия)
    Примечание: Задание оформляется в двух экземплярах: один выдается студенту, второй хранится на кафедре.

    ОГЛАВЛЕНИЕ


    1.Решение смешанной задачи для нестационарного двумерного уравнения теплопроводности методом конечных элементов. 4

    1.1 Постановка задачи. 4

    Найти решение смешанной задачи для гиперболического уравнения 4

    (1) 4

    1.2 Задание 5

    1.1.Постановка задачи 11

    1.2.Задание 12

    Список использованных источников 19

    1.2 Листинг кода graphik_ver_1……………………..........................................................................25

    Введение.

    В настоящей работе была решена смешанная задача для двумерного волнового уравнения методом конечных элементов (так называемая тестовая задача), а также начально-краевая задача для нестационарного двумерного уравнения теплопроводности (задача курсовой работы). Были получены графики решения обеих задач в двумерном и трёхмерном виде, а также графики решений в сечениях при x=0 и y=0.

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

    МКЭ может быть охарактеризован следующими свойствами:

    1. Физическая область задачи делится на подобласти, или конечные элементы.

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

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

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

    Яркий пример использования МКЭ – это его применение для некоторые расчётов в советском крылатом орбитальном корабле многоразового использования «Буран». Для получения минимальной массы конструкции планера и его элементов были использованы программы ЦАГИ (Центральный Аэрогидродинамический институт им. проф. Н. Е. Жуковского), реализующие метод конечных элементов. Проведенные численные исследования позволили решить принципиальные вопросы определения напряженного и деформированного состояния конструкций деформации фюзеляжа и створок ОПГ (отсек полезного груза) при различных условиях нагружения, напряженного состояния конструкции при воздействии сосредоточенных нагрузок, деформации и температурных нагрузок, вызываемых неравномерным нагревом или различными коэффициентами линейного расширения материалов, и т.п.

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

    1.1 Постановка задачи.

    Найти решение смешанной задачи для гиперболического уравнения

    (1)

    в области S (рис.2) при t[0,5], удовлетворяющее начальным условиям

    , , (2)

    и граничным условиям





    (3)







    Рис. 2

    Точное решение:



    1.2 Задание

    1. Сформулировать постановку задачи, имеющей аналитическое решение . Проверить, что функция удовлетворяет уравнению (1.1), начальному условию (1.2) и граничным условиям (1.3). Провести методические расчеты для выбора расчетной сетки, сравнить аналитическое решение с численным при в сечениях и . Вывести результаты в текстовые файлы в виде таблиц и .

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



      1. Численное решение.

    Сначала рисуется расчетная область S, изображённая на рисунке 2. После этого задаются уравнение (1) и граничные условия (3), которые предварительно нужно записать в стандартном виде, используемом в среде PDETool:

    ,











    На следующем шаге в области S c помощью пункта меню Mesh формируется конечно-элементная сетка.

    Затем в окне Solve Parameters задаются начальные условия и отрезок времени, на котором строится решение рассматриваемой задачи. В этом же окне можно установить допустимый уровень относительной (Relative tolerance) и абсолютной (Absolute tolerance) погрешности решения задачи.



    Нарисованная в PDE Modeler область S.



    Пример граничных условий Дирихле на границе Г3.



    Пример граничных условий Неймана на границе Г1.



    Пример формирования конечно-элементной сетки.



    Окно Solve Parameters. Второе и третье вводимые строки - начальные условия, первая вводимая строка - отрезок времени, на котором строится решение рассматриваемой задачи. Четвёртая вводимая строка - допустимый уровень относительной (Relative tolerance) погрешности. Пятая строка - абсолютная (Absolute tolerance) погрешности решения задачи.

    1.4 Далее с помощью пункта меню «Solve» «Solve PDE» получаем решение задачи:





    2-D и 3-D изображения решений соответственно.

    Также с помощью отдельного m-файла «graphik_ver_1» получаем решения задачи в сечениях при x=0 и y=0:



    1. Начально-краевая задача для нестационарного двумерного уравнения теплопроводности



      1. Постановка задачи

    Найти функцию в области (Рис. 1), удовлетворяющую уравнению

    , (1.1)

    начальному условию

    , (1.2)

    и граничным условиям



    (1.3)

    Где , ,





    Рис. 1

      1. Задание

    1. Сформулировать постановку задачи, имеющей аналитическое решение . Проверить, что функция удовлетворяет уравнению (1.1), начальному условию (1.2) и граничным условиям (1.3). Провести методические расчеты для выбора расчетной сетки, сравнить аналитическое решение с численным при в сечениях и . Вывести результаты в текстовые файлы в виде таблиц и .

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

    1.3 Численное решение.

    Решаем задачу аналогично тестовой задаче. Сначала рисуем расчетную область S, изображённая на рисунке 1. После этого задаём уравнение (1.1) и граничные условия (1.3), которые предварительно нужно записать в стандартном виде, используемом в среде PDETool:



    ,











    На следующем шаге в области S c помощью пункта меню Mesh формируется конечно-элементная сетка.

    Затем в окне Solve Parameters задаются начальные условия и отрезок времени, на котором строится решение рассматриваемой задачи. В этом же окне можно установить допустимый уровень относительной (Relative tolerance) и абсолютной (Absolute tolerance) погрешности решения задачи.

    Рисуем область S (рис. 1), задаем уравнение (1.1) и граничные условия (1.3), c помощью пункта меню Mesh формируем конечно-элементную сетку.

    Затем в окне Solve Parameters задаём начальные условия (1.2) и отрезок времени, на котором строится решение рассматриваемой задачи. В этом же окне указываем относительную (Relative tolerance) и абсолютную (Absolute tolerance) погрешности решения задачи.



    Нарисованная в PDE Modeler область S.



    Пример граничных условий Дирихле на границе Г3.



    Пример граничных условий Неймана на границе Г1.



    Пример формирования конечно-элементной сетки.



    Окно Solve Parameters. Второе и третье вводимые строки - начальные условия, первая вводимая строка - отрезок времени, на котором строится решение рассматриваемой задачи. Четвёртая вводимая строка - допустимый уровень относительной (Relative tolerance) погрешности. Пятая строка - абсолютная (Absolute tolerance) погрешности решения задачи.

    1.4 Далее с помощью пункта меню «Solve» «Solve PDE» получаем решение задачи:



    2-D решение задачи.





    3-D изображение решения задачи. (оба рисунка)

    Также с помощью отдельного m-файла «graphik_ver_1» получаем решения задачи в сечениях при x=0 и y=0:





    Заключение.

    Таким образом, метод конечных элементов является универсальным средством для решения задач математической физики. Набор инструментов «PDETool» пакета прикладных программ «MATLAB» охватывает достаточно широкий спектр задач, среди которых: плоская задача теории упругости, стационарная и нестационарная задачи инженерных и научных расчетов теплопроводности и диффузии, задачи электростатики и магнитостатики. Кроме того, имеется возможность задания эллиптических, параболических и гиперболических уравнений и систем, решения задач на собственные значения и задач, описываемых нелинейными дифференциальными уравнениями. Применение этого набора инструментов упрощает вычисления и позволяет получить решение задачи с достаточной точностью в удобном для пользователя виде. Приведенные примеры расчётов задач в курсовой работе позволяют сделать вывод о том, что среда PDE Toolbox может оказаться весьма удобной для численного решения задач механики, в частности различных задач теплопроводности и прочности, задач деформации, неравномерного нагрева и нагружения частей механических конструкций, устойчивости элементов сооружений к различным воздействиям. Благодаря набору готовых функций и возможности изучать и развивать реализованные в них алгоритмы «PDETool» с встроенным в него методом конечных элементов является одним из мощных инструментов вычисления.


    Список использованных источников
    1. Тихонов А.Н., Самарский А.А. Уравнения математической физики. – М.: Наука, 2004. – 798 с.

    2. Формалев В.Ф., Ревизников Д.Л. Численные методы. – М.: Физматлит, 2004. – 400 с.

    3. Самарский А.А., Гулин А.В. Численные методы математической физики. – М.: Научный мир, 2000. – 315 с.

    4. Численные методы. Учебник в 2 книгах. Книга 1. Численный анализ. Калиткин Н. Н., Альшина Е. А., 304 с.; Книга 2. Методы математической физики. Калиткин Н. Н., Корякин П.В. – М.: 2013.: Academia , 304 с.

    5. Самарский А.А., Гулин А.В. Численные методы. М.: Наука, 1989.- 432с.

    6. Амосов А. А., Дубинский Ю. А., Копченова Н. В. Вычислительные методы. СПб.: Лань, 2014. – 672 с.

    7. Шмелев В.Е. MatLab. Partial Differential Equations Toolbox, 2015.

    8. Норри Д., де Фриз Ж. Введение в метод конечных элементов. – М.: Мир, 1981. – 304 с. (Перевод с английского. D.H. Norrie and G. de Vries. An Introduction to Finite Element Analysis. New York, San Francisco, London: Academic Press, 1978.).

    9. Мэтьюз Д.Г., Финк К.Д. Численные методы. Использование MATLAB. 3-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2001.

    Приложение 1.

    1.1 Листинг кода kursv1_ver_1

    function kursv1_ver_1

    [pde_fig,ax]=pdeinit;

    pdetool('appl_cb',1);

    set(ax,'DataAspectRatio',[1 1 1]);

    set(ax,'PlotBoxAspectRatio',[7 5 1]);

    set(ax,'XLim',[-7 7]);

    set(ax,'YLim',[-5 5]);

    set(ax,'XTickMode','auto');

    set(ax,'YTickMode','auto');

    % Geometry description:

    pdecirc(0,2,1,'C1');

    pdecirc(0,-2,1,'C2');

    pdecirc(2,0,1,'C3');

    pdecirc(-2,0,1,'C4');

    pdecirc(0,0,4,'C5');

    set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','C5-C1-C2-C3-C4')

    % Boundary conditions:

    pdetool('changemode',0)

    pdesetbd(20,...

    'neu',...

    1,...

    '0',...

    '(x.*x+y.*y)/2')

    pdesetbd(19,...

    'neu',...

    1,...

    '0',...

    '(x.*x+y.*y)/2')

    pdesetbd(18,...

    'neu',...

    1,...

    '0',...

    '(x.*x+y.*y)/2')

    pdesetbd(17,...

    'neu',...

    1,...

    '0',...

    '(x.*x+y.*y)/2')

    pdesetbd(16,...

    'dir',...

    1,...

    '1',...

    '-x.*4-3+t.*t')

    pdesetbd(15,...

    'dir',...

    1,...

    '1',...

    '-x.*4-3+t.*t')

    pdesetbd(14,...

    'dir',...

    1,...

    '1',...

    '-x.*4-3+t.*t')

    pdesetbd(13,...

    'dir',...

    1,...

    '1',...

    '-x.*4-3+t.*t')

    pdesetbd(12,...

    'dir',...

    1,...

    '1',...

    'x.*4-3+t.*t')

    pdesetbd(11,...

    'dir',...

    1,...

    '1',...

    'x.*4-3+t.*t')

    pdesetbd(10,...

    'dir',...

    1,...

    '1',...

    'x.*4-3+t.*t')

    pdesetbd(9,...

    'dir',...

    1,...

    '1',...

    'x.*4-3+t.*t')

    pdesetbd(8,...

    'dir',...

    1,...

    '1',...

    '-y.*4-3+t.*t')

    pdesetbd(7,...

    'dir',...

    1,...

    '1',...

    '-y.*4-3+t.*t')

    pdesetbd(6,...

    'dir',...

    1,...

    '1',...

    '-y.*4-3+t.*t')

    pdesetbd(5,...

    'dir',...

    1,...

    '1',...

    '-y.*4-3+t.*t')

    pdesetbd(4,...

    'dir',...

    1,...

    '1',...

    'y.*4-3+t.*t')

    pdesetbd(3,...

    'dir',...

    1,...

    '1',...

    'y.*4-3+t.*t')

    pdesetbd(2,...

    'dir',...

    1,...

    '1',...

    'y.*4-3+t.*t')

    pdesetbd(1,...

    'dir',...

    1,...

    '1',...

    'y.*4-3+t.*t')

    % Mesh generation:

    setappdata(pde_fig,'Hgrad',1.3);

    setappdata(pde_fig,'refinemethod','regular');

    setappdata(pde_fig,'jiggle',char('on','mean',''));

    setappdata(pde_fig,'MesherVersion','preR2013a');

    pdetool('initmesh')

    pdetool('refine')

    pdetool('refine')

    pdetool('refine')

    % PDE coefficients:

    pdeseteq(3,...

    '1.0',...

    '0.0',...

    '-2',...

    '1.0',...

    '0:0.01:5',...

    'x.*x+y.*y',...

    '0.0',...

    '[0 100]')

    setappdata(pde_fig,'currparam',...

    ['1.0';...

    '0.0';...

    '-2 ';...

    '1.0'])

    % Solve parameters:

    setappdata(pde_fig,'solveparam',...

    char('0','19968','10','pdeadworst',...

    '0.5','longest','0','1E-4','','fixed','Inf'))

    % Plotflags and user data strings:

    setappdata(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 501 1 1 0 0 0 1]);

    setappdata(pde_fig,'colstring','');

    setappdata(pde_fig,'arrowstring','');

    setappdata(pde_fig,'deformstring','');

    setappdata(pde_fig,'heightstring','');

    % Solve PDE:

    pdetool('solve')


    1.2 Листинг кода graphik_ver_1

    function graphik_ver_1

    load('u.mat','u')

    u=u(:,size(u,2));

    load('e.mat','e')

    load('p.mat','p')

    load('t.mat','t')

    function plot_along_x(p,u,y_val)

    nodes_along_x=abs(p(2,:)-y_val) <0.05;

    [y_values,ind]=sort(p(1,nodes_along_x));

    L_mas=length(y_values);

    u_along_x=u(nodes_along_x);

    u_along_x=u_along_x(ind);

    [fl, mes]=fopen('mfile_x.doc', 'w');

    %fl=fopen('mfile_x.doc', 'w');

    for i=1:L_mas

    ya(i)=ua(y_values(i),0.0,5);

    R=ya(i)-u_along_x(i);

    %fprintf(1,'%10.5f %10.5f\n',y_values(i),u_along_x(i));

    fprintf(fl,'x(%d)=%7.4f y=%10.4f ua=%10.4f R=%10.4f\n',...

    i,y_values(i),u_along_x(i),ya(i),R);

    end

    fclose(fl);

    figure;

    hold on

    plot(y_values,u_along_x,'-b');

    plot(y_values,ya,'-m');

    legend('u=u(x,0.0)','ua(x,0.0,t)=x^2+y^2+t^2','Location','Best');

    title('u=u(x,0.0)');

    xlabel('x');

    ylabel('u');

    grid;

    end

    function plot_along_y(p,u,x_val)

    nodes_along_y=abs(p(1,:)-x_val) < 0.05;

    [x_values,ind]=sort(p(2,nodes_along_y));

    L_mas=length(x_values);

    u_along_y=u(nodes_along_y);

    u_along_y=u_along_y(ind);

    [fl, mes]=fopen('mfile_y.doc', 'w');

    %fl=fopen('mfile.doc', 'w');

    for i=1:L_mas

    ya(i)=ua(0.0,x_values(i),5);

    R=ya(i)-u_along_y(i);

    %fprintf(1,'%10.5f %10.5f\n',u_along_y(i),x_values(i));

    % fprintf(fl,'%10.5f %10.5f\n',u_along_y(i),x_values(i));

    fprintf(fl,'y(%d)=%7.4f y_ch=%10.4f ua=%10.4f R=%10.4f\n',...

    i,x_values(i),u_along_y(i),ya(i),R);

    end

    fclose(fl);

    figure;

    hold on

    plot(x_values, u_along_y,'-b');

    plot(x_values,ya,'-m');

    %legend('u=u(x,y), x=0.0','Location','NorthEast');

    legend('u=u(0.0,y)','ua(0.0,y,t)=x^2+y^2+t^2','Location','Best')

    title('Graph: u=u(0.0,y)');

    ylabel('u');

    xlabel('y');

    grid;

    end

    function [s]=ua(x,y,t)

    s=x.^2+y.^2+t.^2;

    end

    pdemesh(p,e,t); axis equal

    figure

    pdeplot(p,e,t,'xydata',u,'colormap','cool','colorbar','on','contour','on')

    % for j=1:5512

    % x=p(1,j);

    % y=p(2,j);

    % fprintf(1,'j=%4d, x=%4.2f, y=%4.2f, u=%8.4f\n',j,x,y,u(j))

    % end

    x_val=0.0;

    plot_along_y(p,u,x_val)

    y_val=0.0;

    plot_along_x(p,u,y_val)

    end
    Приложение 2.

    1.1 Листинг кодаkursv1_ver_1

    function kursv1_ver_1

    [pde_fig,ax]=pdeinit;

    pdetool('appl_cb',1);

    set(ax,'DataAspectRatio',[1 1 1]);

    set(ax,'PlotBoxAspectRatio',[7 5 1]);

    set(ax,'XLim',[-7 7]);

    set(ax,'YLim',[-5 5]);

    set(ax,'XTickMode','auto');

    set(ax,'YTickMode','auto');

    % Geometry description:

    pdecirc(0,2,1,'C1');

    pdecirc(0,-2,1,'C2');

    pdecirc(2,0,1,'C3');

    pdecirc(-2,0,1,'C4');

    pdecirc(0,0,4,'C5');

    set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','C5-C1-C2-C3-C4')

    % Boundary conditions:

    pdetool('changemode',0)

    pdesetbd(20,...

    'neu',...

    1,...

    '0',...

    '0')

    pdesetbd(19,...

    'neu',...

    1,...

    '0',...

    '0')

    pdesetbd(18,...

    'neu',...

    1,...

    '0',...

    '0')

    pdesetbd(17,...

    'neu',...

    1,...

    '0',...

    '0')

    pdesetbd(16,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(15,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(14,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(13,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(12,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(11,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(10,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(9,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(8,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(7,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(6,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(5,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(4,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(3,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(2,...

    'dir',...

    1,...

    '1',...

    '0')

    pdesetbd(1,...

    'dir',...

    1,...

    '1',...

    '0')

    % Mesh generation:

    setappdata(pde_fig,'Hgrad',1.3);

    setappdata(pde_fig,'refinemethod','regular');

    setappdata(pde_fig,'jiggle',char('on','mean',''));

    setappdata(pde_fig,'MesherVersion','preR2013a');

    pdetool('initmesh')

    pdetool('refine')

    pdetool('refine')

    pdetool('refine')

    % PDE coefficients:

    pdeseteq(3,...

    '1.0',...

    '0.2*exp(-x.*y)',...

    '-2*x.*(y-8)*t.*exp(-t./4)',...

    '1.0',...

    '0:0.01:40',...

    '0.0',...

    '0.0',...

    '[0 100]')

    setappdata(pde_fig,'currparam',...

    ['1.0 ';...

    '0.2*exp(-x.*y) ';...

    '-2*x.*(y-8)*t.*exp(-t./4)';...

    '1.0 '])

    % Solve parameters:

    setappdata(pde_fig,'solveparam',...

    char('0','19968','10','pdeadworst',...

    '0.5','longest','0','1E-4','','fixed','Inf'))

    % Plotflags and user data strings:

    setappdata(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 4001 1 1 0 0 0 1]);

    setappdata(pde_fig,'colstring','');

    setappdata(pde_fig,'arrowstring','');

    setappdata(pde_fig,'deformstring','');

    setappdata(pde_fig,'heightstring','');

    % Solve PDE:

    pdetool('solve')
    1.2 Листинг кода graphik_ver_1

    function graphik_ver_1

    load('u.mat','u')

    u=u(:,size(u,2));

    load('e.mat','e')

    load('p.mat','p')

    load('t.mat','t')

    function plot_along_x(p,u,y_val)

    nodes_along_x=abs(p(2,:)-y_val) <0.05;

    [y_values,ind]=sort(p(1,nodes_along_x));

    L_mas=length(y_values);

    u_along_x=u(nodes_along_x);

    u_along_x=u_along_x(ind);

    [fl, mes]=fopen('mfile_x.doc', 'w');

    fl=fopen('mfile_x.doc', 'w');

    %for i=1:L_mas

    % ya(i)=ua(y_values(i),0.0,5);

    % R=ya(i)-u_along_x(i);

    % %fprintf(1,'%10.5f %10.5f\n',y_values(i),u_along_x(i));

    % fprintf(fl,'x(%d)=%7.4f y=%10.4f ua=%10.4f R=%10.4f\n',...

    % i,y_values(i),u_along_x(i),ya(i),R);

    %end

    fclose(fl);

    figure;

    hold on

    plot(y_values,u_along_x,'-b');

    %plot(y_values,ya,'-m');

    legend('u=u(x,0.0)','Location','Best'); %,'ua(x,0.0,t)=x^2+y^2+t^2'

    title('u=u(x,0.0)');

    xlabel('x');

    ylabel('u');

    grid;

    end

    function plot_along_y(p,u,x_val)

    nodes_along_y=abs(p(1,:)-x_val) < 0.05;

    [x_values,ind]=sort(p(2,nodes_along_y));

    L_mas=length(x_values);

    u_along_y=u(nodes_along_y);

    u_along_y=u_along_y(ind);

    [fl, mes]=fopen('mfile_y.doc', 'w');

    fl=fopen('mfile.doc', 'w');

    %for i=1:L_mas

    % ya(i)=ua(0.0,x_values(i),5);

    % R=ya(i)-u_along_y(i);

    %fprintf(1,'%10.5f %10.5f\n',u_along_y(i),x_values(i));

    % fprintf(fl,'%10.5f %10.5f\n',u_along_y(i),x_values(i));

    % fprintf(fl,'y(%d)=%7.4f y_ch=%10.4f ua=%10.4f R=%10.4f\n',...

    % i,x_values(i),u_along_y(i),ya(i),R);

    %end

    fclose(fl);

    figure;

    hold on

    plot(x_values, u_along_y,'-b');

    % plot(x_values,ya,'-m');

    %legend('u=u(x,y), x=0.0','Location','NorthEast');

    legend('u=u(0.0,y)','Location','Best') %,'ua(0.0,y,t)=x^2+y^2+t^2'

    title('Graph: u=u(0.0,y)');

    ylabel('u');

    xlabel('y');

    grid;

    end

    %function [s]=ua(x,y,t)

    % s=x.^2+y.^2+t.^2;

    %end

    pdemesh(p,e,t); axis equal

    figure

    pdeplot(p,e,t,'xydata',u,'colormap','cool','colorbar','on','contour','on')

    % for j=1:5512

    % x=p(1,j);

    % y=p(2,j);

    % fprintf(1,'j=%4d, x=%4.2f, y=%4.2f, u=%8.4f\n',j,x,y,u(j))

    % end

    x_val=0.0;

    plot_along_y(p,u,x_val)

    y_val=0.0;

    plot_along_x(p,u,y_val)

    end


    написать администратору сайта