Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №4. Решение задач с функциями-параметрами в системе MATLABСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Теоретическая часть Назначение подпрограмм-параметров Использование параметра-подпрограммы необходимо, когда некоторый алгоритм, описанный как подпрограмма, применим к множеству алгоритмов, каждый из которых также задается подпрограммой. Классические примеры таких ситуаций дают численные методы. В подпрограммах численных методов (вычисления определенного интеграла, нахождения экстремумов и нулей функций, вывода графиков, линий уровня, таблиц функций) обрабатываемые функции задаются как параметры. Средства для использования параметров-подпрограмм имеются во всех алгоритмических языках, предназначенных для решения вычислительных задач. В Паскале для работы с подпрограммами-параметрами предназначен процедурный тип, в Фортране – инструкция EXTERNAL, в Си – указатель на функцию. Имеются подобные средства и в языке MATLAB. Манипулятор функции (Function Handle) Аналогом подпрограммы-параметра в языке MATLAB является манипулятор функции. Эта конструкция более всего напоминает указатель на функцию в Си. Для обозначения манипулятора перед именем функции ставится символ @. Например, оператор fhandle=@sin создает указатель на функцию sin и присваивает его значение переменной fhandle. Основное применение манипулятора функций – это использование его в качестве параметра другой функции. Использование манипулятора функции как формального параметра организуется с помощью функции feval. Пример 1. Функция plot_fhandle выводит график произвольной функции. Она имеет два параметра: fh – манипулятор функции (для которой строится график) и data – массив значений аргумента х точек графика. function x = plot_fhandle(fh, data) plot(data, feval(fh, data)) Следующие команды выводят графики функций sin и log: plot_fhandle(@sin, -pi:0.01:pi) plot_fhandle(@log, 0.1:0.01:3) Класс Function Functions Функции этого класса работают с нелинейными функциями скалярного аргумента как с подпрограммами-параметрами. предназначен для решения следующих задач: · нахождение нулей функций (решение уравнений); · оптимизация; · вычисление определенных интегралов; · обыкновенные дифференциальные уравнения. Рассмотрим некоторые функции класса: fminsearch(манипулятор_функции, начальное_приближение) вычисляет точку локального минимума функции; fzero(манипулятор_функции, начальное_приближение) вычисляет точку локальный нуль функции; quad(манипулятор_функции, нижняя_граница, верхняя_граница) вычисляет определенный интеграл по методу Симпсона, quadl вычисляет определенный интеграл по методу Лобатто. Пример 2. Рассмотрим функцию: function y = humps(x) y = 1./((x-.3).^2 +.01) + 1./((x-.9).^2 +.04) - 6;
График функции приведен на рис. 4.1. Результаты ее исследования с помощью выше перечисленных функций даны на рис. 4.2. 1.4. Пусть исследуемая нелинейная функция скалярного аргумента известна с точностью до параметра. Например, требуется с помощью функции с найти (относительно x) корень уравнения: x-p cosx=0 (1) Так как fzero может применяться только к функциям одного аргумента, параметр р необходимо передавать как глобальную переменную. Функция f, описывающая левую часть уравнения, имеет вид: function y=f(x) % p-глобальная переменная global p y=x-p.*cos(x); Вычисление корня уравнения (1) для значений р, изменяющихся от 0.3 до 0.6 с шагом 0.1, осуществляется с помощью команд: global p i=1; for p=0.3:0.1:0.6 z(i)=fzero(@f,0.5); i=i+1; end Задание 1. Для функций заданий [3] 1.7.N,N+1, [3] 1.8.N+1 с помощью методов класса Function Functions определить характерные точки. Результаты решения сравнить с полученными в лабораторной работе №3. 2. На языке MATLAB разработать подпрограмму решения уравнения методом деления отрезка пополам, вид уравнения задать с помощью манипулятора функции. Используя подпрограмму, решить два уравнения: [3] 1.7.N,N+1. Результаты решения сравнить с п.1 задания. 3. Включить в функцию F(x) задания [3] 1.7.N параметр р. Задавая значение р в командном окне MATLAB и передавая его F(x) как глобальную переменную, найти корень уравнения F(x)=0 для нескольких значений p.
|
||||||||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 859; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |