на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Система Mathcad
p align="left">1. Задайте вектор v с количеством элементов равным количеству недостающих начальных условий. Значения элементов этого вектора - это начальные приближения, исходя из которых будет происходить поиск недостающих начальных условий. На данном этапе не конкретизируется, какой из элементов вектора будет соответствовать начальному значению той или иной неизвестной функции в задаче.

2. Задайте функцию F(x,y). Эта функция уже описывалась выше. Она представляет собой вектор, каждый элемент которого - это правая часть одного из уравнений системы.

3. Задайте еще одну векторную функцию load(x,v). Это функция от скалярного аргумента x и вектора v, который имеет столько же компонент, сколько недостающих начальных условий в системе. Сам вектор load должен содержать такое же количество элементов, как и вектор F, т.е. столько, сколько должно быть начальных условий в задаче. Если начальное значение какой-либо из функций известно, то соответствующий элемент вектора load должен содержать это значение. Для функций, начальное значение которых неизвестно, соответствующий элемент вектора load должен содержать один из элементов вектора v.

4. Следует задать еще одну некоторую функцию score(x,y). Аргументы этой функции - скаляр x и вектор y, который имеет столько элементов, сколько уравнений в системе. Количество компонент вектора score должно равняться количеству граничных условий, заданных в конечной точке отрезка интегрирования. На самом деле каждая компонента этого вектора задает одно из граничных условий в конечной точке. Например, если в задаче есть граничной условие yi(b)=c, то один из элементов вектора score должен быть функцией, которая обращается в нуль при значениях x=b и y(b)=c. Конкретный вид этой функции не играет особой роли, поэтому проще всего задавать ее в таком виде: scorek(x,y):=yi-c. Таким же образом должны быть заданы все элементы вектора score для всех конечных условий задачи.

5. Теперь все введенные величины нужно использовать как аргументы в функции sbval. Использование этой функции выглядит следующим образом: Y:=sbval(v,a,b,F,load,score). Аргументы a и b - это начало и конец отрезка интегрирования.

6. Результатом функции sbval будет вектор, содержащий недостающие начальные значения. Их последовательность задается той последовательностью, в которой были использованы компоненты вектора v в функции load.

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

8. Теперь можно решить полученную задачу как задачу Коши, с помощью, например, функции Rkadapt.

Ниже приведено решение дифференциального уравнения на отрезке [0,3] с начальным условием y(0)=1 и граничным условием y(3)=4. Недостающее начальное условие - y'(0).

Решение уравнений в частных производных.

Постановка задач для уравнений в частных производных включает определение самого уравнения (или системы нескольких уравнений), а также необходимого количества краевых условий (число и характер которых зависит от специфики уравнения). Согласно своему названию, уравнения должны содержать частные производные неизвестной функции u (или нескольких функций, если уравнений несколько) по различным аргументам, например, пространственной переменной x и времени t. Соответственно, для решения задачи требуется вычислить функцию нескольких переменных, например, u(x,t) в некоторой области определения аргументов 0 x L и 0 t T. Граничные условия определяются как заданные временные зависимости функции u, или производных этой функции, на границах расчетной области 0 и L, а начальные - как заданная функция u(x,0).

Сами уравнения в частных производных (несколько условно) можно разделить на три основных типа:

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

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

- эллиптические - содержащие только вторые производные, причем одного знака.

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

Дифференциальные уравнения параболического типа.

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

1. Ключевое слово given

2. Уравнение, которое нужно решить. Уравнение должно иметь такой вид: . Для ввода производных в данном случае нельзя пользоваться обычным оператором производной, а нужно пользоваться нижним индексом, как это обычно делается в литературе для записи уравнений в частных производных. При этом нижний индекс набирается не как числовой, а как буквенный (точка).

3. Граничные условия для функции u(x,t). Если уравнение второго порядка по x, то граничных условий должно быть два. Можно использовать как граничные условия Дирихле (u(x0,t) = w(t)), так и граничные условия Неймана (ux(x0,t) = w(t)) или их комбинацию, как в вышеприведенном примере.

4. Начальное значение для неизвестной функции - u(x,0).

5. функция pdsolve(u,x,xrange,t,trange,xpts,tpts). Ее аргументы имеют следующее назначение

- u - имя функции, относительно которой решается уравнение. Для системы уравнений здесь должен быть вектор имен функций (как в odesolve).

- X- имя пространственной переменной.

- Xrange - двухкомпонентный вектор, задающий начало и конец интервала изменения пространственной переменной.

- T - имя временной переменной. Основная разница между пространственной и временной переменными в данном случае - это то, что все уравнения могут содержать только первые производные по временной переменной.

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

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

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

Дифференциальные уравнения гиперболического типа.

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

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

Эллиптические уравнения.

Решение эллиптических уравнений в частных производных реализовано только для единственного типа задач - двумерного уравнения Пуассона. Это уравнение содержит вторые производные функции u(x,y) по двум пространственным переменным. Для его решения в MathCAD есть отдельные встроенные функции multigrid и relax.

Вопросы

1. Какие дифференциальные уравнения называются ОДУ первого порядка? Высшего порядка? Что такое нормальная форма ОДУ первого и высшего порядка? К чему сводятся ОДУ высшего порядка при решении?

2. Можно ли решить дифференциальные уравнения в MathCADе символьно?

3. Как решаются ОДУ с помощью вычислительного блока Given/Odesolve? Какой метод решения реализует функция Odesolve? Как можно изменить метод решения для этой функции?

4. Как решаются ОДУ с помощью встроенной функции rkfixed? Чем функция rkfixed отличается от функции Rkadapt?

5. Как осуществляется решение системы ОДУ с помощью вычислительного блока Given/Odesolve? Приведите примеры.

6. Как осуществляется решение системы ОДУ с помощью функции rkfixed? Приведите примеры.

Лекция № 16

Программирование в MathCAD

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

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

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

Для вставки программного кода в документы MathCAD имеется специальная панель инструментов

.

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

Создание программного блока начинается с команды . Нажатие этой клавиши приведет к тому, что в рабочей области документа появится вертикальная черта, а справа от нее - два пустые поля ввода

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

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.