Кубический корень в матлабе

Кубический корень в матлабе

3.1 Теория и исходные данные

Кубическое уравнение – это уравнение, общий вид которого выражается формулой (27).

(27)

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

Классический метод Ньютона или касательных заключается в том, что если xn – некоторое приближение к корню x уравнения (28), то следующее приближение определяется как корень касательной к функции , проведенной в точке xn.

(28)

Уравнение касательной к функции в точке xn имеет вид (29):

(29)

В уравнении касательной положим y=0 и x=xn+1.

Тогда алгоритм последовательных вычислений в методе Ньютона отражает формула (30):

(30)

Сходимость метода касательных квадратичная, порядок сходимости равен 2.

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

Исходные данные: a=1, b=1, c=5, d=6, f=433 [1].

3.2 Решение кубического уравнения с помощью MS Excel

Найдем приближенное значение корня нелинейного уравнения. Для этого построим его график, приведя уравнение к общему виду (26).

Поместим в ячейки А2:А18 значения x от 0 до 8 с шагом 0,5. В ячейках В2:В18 вычислим значения у, соответствующие каждому х. Для этого в ячейку В2 введем формулу (31) и растянем ее до ячейки B18 включительно.

По значениям A2:B18 построим график, используя точечную диаграмму. Снимем с графика начальное приближение к корню уравнения и запишем его в ячейку D18, в ячейке E18 рассчитаем значение y, соответствующее приближенному корню. Далее активируем ячейку Е18 и воспользуемся опцией «Подбор параметра», установив требуемое значение y равным нулю. Поиск решения осуществляется автоматическим изменением x.

Результаты решения уравнения представлены на рисунке 17.

Рисунок 17 – Решение кубического уравнения средствами MS Excel

3.3 Решение кубического уравнения в MathCad

Решение задачи средствами MathCad может быть осуществлено с помощью кода, представленного на рисунке 18.

Для решения задачи так же, как и в предыдущем пункте, строим график, «снимаем» с него приближенный корень и далее уточняем его. Уточнение корней в MathCad производится с помощью функции root. Первым аргументом данной функции является левая часть уравнения, второй аргумент – переменная, содержащая приближение к соответствующему корню.

Рисунок 18 – Решение кубического уравнения в MathCad

3.4 Решение кубического уравнения в VBA

Решение данной задачи осуществляется с помощью вызова формы UserForm, создания на ней 8 компонентов Text, 11 компонентов Label и двух командных кнопок для вывода решения и закрытия формы. Используем графики уравнения из предыдущего пункта для определения приближенного значения корня.

Программный код решения представлен на рисунке 19, результат выполнения программы – на рисунке 20.

Рисунок 19 – Текст программы для решения кубического уравнения

Рисунок 20 – Результат решения кубического уравнения

3.5 Решение кубического уравнения в MatLab

Функция для вычисления левой части уравнения представлена на рисунке 21. На рисунке 22 представлен m-файл для построения графика и уточнения корней. График, построенный с помощью MatLab отображен на рисунке 23, результат уточнения корней – на рисунке 24. Уточнение корней в MatLab производится с помощью функции fzero.

Рисунок 21 – вычисление левой части уравнения

Рисунок 22 – M-файл в MatLab

Рисунок 23 – График уравнения в MatLab

Рисунок 24 – Результат решения в MatLab

Результаты решения уравнения в разных программах представлены в таблице 5

Таблица 5 – Решение кубического уравнения

Программа MS Excel VBA MathCad MatLab
Корень уравнения 7,00 7,000

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

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

Существуют встроенные тригонометрические и гиперболические функции: sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), acot(x), sinh(x) и т.д. Аргументы этих функций (в следующих версиях, начиная с версии 7.0) могут задаваться в радианах и градусах. У функций в градусной мере после названия добавляется буква d. sin(x) – аргумент в радианах, а sind(x) – аргумент в градусах.

Некоторые часто используемые математические функции:

· exp(x)–экспонента числа x;

· log(x)– натуральный логарифм;

· log10(x)– десятичный логарифм;

· sqrt(x)– квадратный корень;

· abs(x)– абсолютное значение x;

· mod(x, y)– остаток от целочисленного деления с учетом знака;

· rem(x, y)– остаток от целочисленного деления без учета знака;

· real(z)– вещественная часть комплексного числа;

· imag(z)– мнимая часть комплексного числа;

· round(x)– округление до ближайшего целого.

Более полный список основных математических функций MatLab:

Читайте также:  Тула сго еду 71 сетевой город
sqrt(x) вычисление квадратного корня
exp(x) возведение в степень числа e
pow2(x) возведение в степень числа 2
log(x) вычисление натурального логарифма
log10(x) вычисление десятичного логарифма
log2(x) вычисление логарифма по основанию 2
sin(x) синус угла x, заданного в радианах
cos(x) косинус угла x, заданного в радианах
tan(x) тангенс угла x, заданного в радианах
cot(x) котангенс угла x, заданного в радианах
asin(x) арксинус
acos(x) арккосинус
atan(x) арктангенс
pi число пи
round(x) округление до ближайшего целого
fix(x) усечение дробной части числа
floor(x) округление до меньшего целого
ceil(x) округление до большего целого
mod(x,y) остаток от деления с учётом знака
sign(x) знак числа
factor(x) разложение числа на простые множители
isprime(x) истинно, если число простое
rand генерация псевдослучайного числа с равномерным законом распределения
randn генерация псевдослучайного числа с нормальным законом распределения
abs(x) вычисление модуля числа

С использованием вышеупомянутых функций, записать и сосчитать значение арифметического выражения:

Вычислить: res=

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

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

res=(3*cos(x^3)^2-sin(x-pi/3))/(log(abs(y))+exp (sqrt (x+1))/(2*x))*1E6

Для эффективной работы с большими наборами данных или при необходимости многократных вычислений рассмотренных средств недостаточно. В ML существует возможность записать последовательность команд в файл, сохранить его, дать ему имя и выполнить, набрав в командной строке имя файла. Это можно сделать во встроенном редакторе системы. Такие файлы называются файлами-сценариями или скрипт-файлами. При сохранении они автоматически получают расширение системы – m.

Файлы-программы (их называют скриптами или сценариями) являются самым простым типом m-файлов. Script-файл состоит из последовательности команд, не содержит заголовка, а также входных и выходных параметров. Все объекты, используемые внутри script-файла, считаются глобальными. Если в рабочем пространстве есть данные, то внутри script-файла их можно использовать, а по окончании его выполнения использовать данные, созданные с его помощью. Такие файлы используются для автоматизации выполнения большого набора инструкций. Их текст набирают в окне встроенного редактора ML.

Для выполнения файла-программы достаточно в командной строке указать имя этого скрипта. Перед запуском программы на выполнение необходимо установить нужный каталог в качестве текущего. Запуск файла на выполнение можно осуществить двумя способами: из окна редактора и из командного окна.

Для запуска программы на выполнение из окна редактора надо выбрать пункт меню Debug, Run или нажать функциональную клавишу F5, или выбрать соответствующую пиктограмму на панели инструментов. Выполнить программу, уже сохраненную на диске, можно из командного окна ML, просто набрав имя файла без расширения.

Дата добавления: 2016-04-02 ; просмотров: 1625 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

2.3 Математические операции в MatLAB

MatLAB позволяет производить следующие математические операции: + – сложение;

/ – деление слева направо; – деление справа налево; ^ – возведение в степень.

Эти операции справедливы не только для чисел, но и для векторов и матриц. Кроме того, в MatLAB существуют операции поэлементного преобразования матриц. Для поэлементного преобразования матриц необходимо перед знаком операции поставить ".". В MatLAB существуют следующие виды по-

./ – поэлементное деление слева направо;

. – поэлементное деление справа налево;

.^ – поэлементное возведение в степень.

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

При использовании переменных, знаков математических операций и математических функций, которые будут рассмотрены ниже, возможно составление формул различной сложности, причем формула вводится, как линейная комбинация вышеупомянутых элементов:

2.4 Математические функции стандартной библиотеки

MatLAB содержит достаточно большое количество математических функций. Дополнительные сведения об использовании каждой функции можно получить при использовании команды help .

В системе MatLAB доступны следующие ниже функции.

Тригонометрические и гиперболические: sin(z) – синус числа z;

sinh(z) – гиперболический синус;

asin(z) – арксинус (в диапазоне от -π/2 до +π/2);

asinh(z) – гиперболический арксинус; cos(z) – косинус числа z;

cosh(z) – гиперболический косинус;

acos(z) – арккосинус (в диапазоне от -π/2 до +π/2); acosh(z) – гиперболический арккосинус;

tan(z) – тангенс числа z;

tanh(z) – гиперболический тангенс;

atan(z) – арктангенс (в диапазоне от -π/2 до +π/2); atan2(x,y) – арктангенс (в диапазоне от -π до +π); atanh(z) – обратный гиперболический тангенс; cot(z) – котангенс числа z;

coth(z) – гиперболический котангенс;

acot(z) – арккотангенс (в диапазоне от -π/2 до +π/2); acoth(z) – обратный гиперболический котангенс.

Экспоненциальные функции: exp(z) – экспонента числа z;

log(z) – натуральный логарифм; log10(z) – десятичный логарифм; sqrt(z) – квадратный корень из числа z; abs(z) – модуль числа z;

fix(z) – округление до ближайшего целого в сторону 0; floor(z) – округление до ближайшего целого в сторону — ; ceil(z) – округление до ближайшего целого в сторону + ; round(z) – обычное округление до ближайшего целого; rem(x,y) – вычисление остатка от деления X на Y;

Читайте также:  В 203 ошибка принтера

sign(z) – сигнум-функция (0 при z=0, -1 при z 0).

Кроме элементарных система MatLAB содержит и массу специальных математических функций.

Функции преобразования координат: cart2sph – декартовых в сферические;

cart2pol – декартовых в полярные; pol2cart – полярных в декартовы; sph2cart – сферических в декартовы.

besselj – первого рода; bessely – второго рода;

besseli – модифицированная первого рода; besselk – модифицированная второго рода.

betainc – неполная бета функция; betaln – логарифм бета функции.

Гамма функции: gamma – гамма-функция;

gammainc – неполная гамма-функция; gammaln – логарифм гамма-функции.

Эллиптические функции и интегралы: ellipj – эллиптические функции Якоби;

ellipke – полный эллиптический интеграл; expint – функция экспоненциального интеграла.

erf – функция ошибок;

erfc – дополнительная функция ошибок;

erfcx – масштабированная дополнительная функция; erfinv – обратная.

Дополнительные функции: gcd – наибольший общий делитель;

lcm – наименьшее общее кратное; legendre – обобщенная функция Лежандра; log2 – логарифм по основанию 2;

pow2 – возведение 2 в указанную степень;

rat – представление числа в виде рациональной дроби; rats – представление чисел в виде рациональной дроби.

Функции комплексного аргумента real(z) – выделяет действительную часть числа; imag(z) – выделяет мнимую часть числа;

angle(z) – вычисляет значение аргумента числа (от -π до +π); conj(z) – определяет число, комплексно сопряженное z.

Функции формирования векторов и матриц: zeros(m, n) – создает матрицу m на n с нулевыми элементами; ones(m, n) – создает матрицу m на n с единичными элементами; eye(m, n) – формирует единичную матрицу;

rand(m, n) – формирует матрицу случайных чисел от 0 до 1; hadamard(n) – формирует матрицу Адамара размером n на n; hilb(n) – формирует матрицу Гильберта размером n на n; invhilb(n) – образует обратную матрицу Гильберта; pascal(n) – создает матрицу Паскаля;

hankel(v) – образует матрицу Ганкеля с первым заданным столбцом.

Функции формирования матриц на основе других матриц: fliplr(a) – отражает матрицу относительно вертикальной оси; flipud(a) – отражает относительно горизонтальной оси;

rot90(a) – поворот на 90 градусов против часовой стрелки;

rechape(a, m, n) – изменение размеров матрицы а, причем число элементов исходной матрицы должно быть равно числу элементов полученной (выборка элементов производится последовательно по столбцам);

tril(a) – обнуление элементов выше главной диагонали; triu(a) – обнуление элементов ниже главной диагонали;

diag(x) – выделяет главную диагональ матрицы в виде вектора-столбца, в случае, если х — вектор, то формирует квадратную матрицу с элементами заданного вектора в главной диагонали и нулевыми остальными элементами (в случае применения diag(x, n) – возможно смещение вектора относительно главной диагонали вверх (n>0) или вниз (n a’ – транспонирование матрицы a;

inv(a) – вычисление матрицы, обратной а;

cross(v1, v2) – вычисление векторного произведения векторов (только для трехкомпонентных векторов).

Матричные функции: expm(A) – вычисление матричной экспоненты (еА);

expm1(A) – вычисление матричной экспоненты с использованием разложения Паде;

expm2(A) – вычисление матричной экспоненты с использованием разложения Тейлора;

expm3(A) – вычисление матричной экспоненты с использованием спектрального разложения матрицы А;

logm(a) – логарифмирование матрицы по натуральному основанию; sqrtm(a) – вычисляет такую матрицу y, что y × y=a.

Операции с полиномами: conv(p1,p2) – умножение двух полиномов;

deconv(p1,p2) – деление полинома p1 на полином p2, причем при применении в виде [q, r]=deconv(p1,p2) в векторе q сохраняется полученный полином, а в векторе r — остаток от деления такой, что p1=conv(p2, q)+r ;

roots(p) – вычисляет корни полинома;

poly(r) – построение полинома по вектору его корней, причем старший коэффициент полагается равным 1 и не включается в вектор (если в качестве переменной r используется матрица, то происходит вычисление характеристического полинома матрицы);

polyval(p, x) – вычисление значения полинома при известном значении его аргумента;

polyder(p) – вычисление производной полинома, при использовании polyder(p1,p2) полиномы перемножаются, а затем от них берется производная, если же функция используется в виде [q,p]=polyder(p1,p2) , то производится вычисление производной от отношения полиномов p1 и p2 и выдается результат в виде отношения полиномов q и p.

Функции обработки данных измерений: size(a) – вычисляет число строк и столбцов матрицы; max(v) – значение максимального элемента вектора; min(v) – значение минимального элемента вектора; mean(v) – определяет среднее значение элементов; std(v) – определяет среднеквадратичное отклонение; sort(v) – сортирует вектор по возрастанию;

sum(v) – вычисляет сумму элементов вектора; prod(v) – произведение всех элементов;

cumsum(v) – формирует вектор того же типа и размера, каждый элемент которого является суммой предыдущих значений исходного вектора;

cumprod(v) – формирует вектор того же типа и размера, каждый элемент

которого является произведением предыдущих значений исходного вектора; diff(v) – вычисляет вектор разностей соседних значений;

trapz(x,y) – интегрирование методом трапеций функции y(x); cov(a) – вычисляет матрицу ковариаций измерений; corrcoeff(a) – вычисляет матрицу коэффициентов корреляции.

Функции линейной алгебры:

cond(a) – вычисляет число обусловленности матрицы по отношению к операции обращения;

rank(a) – вычисляет ранг матрицы; det(a) – определитель матрицы; trace(a) – вычисляет след матрицы;

rref(a) – приводит матрицу к треугольному виду по методу Гаусса;

Читайте также:  В скайпе не отображается статус контактов

lu(a) – осуществляет LU – разложение матрицы, причем при применении в качестве параметров [L,U,P] – производится вывод матриц L, U и матрицы перестановок P;

poly(a) – определение характеристического полинома матрицы; svd(a) – сингулярное разложение матрицы.

Аппроксимация и интерполяция данных:

polyfit(x,y,n) – вычисляет коэффициенты аппроксимирующего полинома n-й степени для зависимости y(x) ;

spline(x,y,xi) – определяет значение интерполирующей кубическими сплайнами функции при значениях аргумента, заданных в векторе xi;

interp1(x,y,xi,’метод’) – производит одномерную табличную интерполяцию по заданному методу ( linear – линейная, cubic – кубическая, spline – кубическими сплайнами);

fft(x) – разложение вектора в ряд Фурье; ifft(y) – обратное преобразование Фурье.

2.5 Построение графиков

Для построения графиков в MatLAB существует масса функций, базовой из которых является функция plot . Функция имеет следующий синтаксис:

plot(x1, y1, s1, . , xn, yn, sn) ,

где x – аргумент; y – функция;

s – символьная переменная, которая отражает тип линии.

Длины векторов аргументов и функций должны совпадать. S имеет сле-

дующий формат – " цвет_стиль_маркер ".

При отображении графиков используются следующие цвета: ‘c’ – голубой;

‘m’ – малиновый; ‘y’ – желтый;

‘r’ – красный; ‘g’ – зеленый; ‘b’ – синий; ‘w’ – белый; ‘k’ – черный.

Стили линий могут быть следующими: ‘-’ – сплошная линия; ‘- -’ – разрывная линия; ‘:’ – пунктирная линия;

‘-.’ – штрих пунктирная линия; ‘none’ – отсутствие линий.

Для выделения заданных точек существуют маркеры. Наиболее распространенные маркеры следующие ‘ + ’, ‘ o ’, ‘ * ’, ‘ x ’. В принципе, маркером могут быть различные символы, главным требованием должно быть соответствие графиков стандартам.

Если переменная s не указана, то порядок следования цветов такой: синий, зеленый, красный, голубой, фиолетовый, желтый, черный, белый.

Функция plot производит вывод в графическое окно, открываемое при выводе. Для управления графическими окнами существуют следующие функции:

figure – формирует новое графическое окно;

figure(n) – делает n-е окно текущим, если же окна с таким номером не существовало, то открывает его;

subplot(m,n,p) – разбивает графическое окно на m подокон по горизонтали и n по вертикали, причем подокно p делает текущим (нумерация подокон осуществляется справа налево и сверху вниз);

hold on – включает режим добавления графиков в окно;

hold off – отключает режим добавления графиков в окно, при этом более новый график затирает более старый.

Функции управления осями:

axis([xmin, xmax, ymin, ymax]) – устанавливает жесткие границы поля графика в единицах величин, откладываемых по осям;

axis(‘square’) – создает оси x и y равной длины;

axis(‘equal’) – обеспечивает одинаковый масштаб по осям x и y;

axis(‘ij’) – перемещает начало отсчета в левый верхний угол (матричная система координат);

axis(‘xy’) – возвращает Декартову систему координат.

bar(x,y) – представление графика в виде столбчатой диаграммы; stem(x,y) – представление графика в виде отдельных линий;

hist(y,x) – построение графика (гистограммы) распределения вектора y в диапазоне вектора х;

comet(x,y) – строит график последовательно в виде траектории кометы; loglog(x,y) – построение графиков в логарифмическом масштабе по двум осям; semilogx(x,y) – построение графиков в логарифмическом масштабе по оси x; semilogy(x,y) – построение графиков в логарифмическом масштабе по оси y.

Вывод подписей к графикам: title(‘текст’) – название графического окна либо подокна; xlabel(‘текст’) – название оси x;

ylabel(‘текст’) – название оси у; zlabel(‘текст’) – название оси z;

text(x,y,‘текст’) – выводит текст в точку с координатами x,y; gtext(‘текст’) – позволяет вывести текст в любую точку графика с ис-

пользованием мыши или клавиатуры.

Функции построения трехмерных графиков: mesh(x,y,z) – строит контур поверхности из векторов x,y,z; surface(x,y,z) – отображение поверхности.

3 ЭЛЕМЕНТАРНЫЕ РАСЧЕТЫ В MATLAB

Цель работы: Изучить интерфейс командного окна и элементарные математические функции MatLAB.

1. Загрузить MatLAB.

2. В соответствии с вариантом произвести расчет значений функции в заданном диапазоне x с шагом h при заданном y .

3. Вычислить коэффициенты полинома 6-го порядка, аппроксимирующего вычисленные значения относительно аргумента функции.

4. Вычислить значения полинома в заданном диапазоне аргумента.

5. Найти точку локального минимума полинома методом высших производных в заданном диапазоне (путем определения корней второй производной полученного полинома).

6. Вычислить значение полинома в точке минимума.

7. Вычислить площадь фигуры, ограниченной графиком функции и осью абсцисс в заданном диапазоне аргумента.

8. Сформировать отчет о проделанной работе с использованием MS Excel. Отчет должен содержать:

∙ название и номер лабораторной работы;

∙ фамилию, имя, отчество, группу;

∙ функцию в записи MatLAB и аппроксимирующий ее полином в математической форме записи;

∙ все вводимые команды;

∙ таблицу аргумента, соответствующих ему значений функции и поли-

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

∙ график функции и полинома по табличным значениям.

Примечание: все элементы таблиц создаются путем копирования из командного окна MatLAB. Варианты заданий приведены в приложении А.

Пример оформления лабораторной работы приводится ниже.

Лабораторная работа MatLAB-1

Будков Сергей Юрьевич

p=x^6*0,0049+x^5*0,041+x^4*(-0,0973)+x^3*(- 0,3552)+x^2*1,2451+x*1,4832 +3,1368

Ссылка на основную публикацию
Крепление для эхолота garmin striker
Доброго времени суток ! Готовимся к летней рыбалки. Может кому пригодится данная запись. После приобретения эхолота модели Garmin Striker 4...
Команды циско пакет трейсер
Packet Tracer является не только замечательным инструментом для тренировки своих навыков настройки оборудования через терминал, но и полезным средством при...
Компрессор для заправки метана в домашних условиях
Ниже представлены домашние газовые заправки российского, итальянского и французского производства. В сравнительной таблице приведены основные технические характеристики и цены на...
Кубический корень в матлабе
3.1 Теория и исходные данные Кубическое уравнение – это уравнение, общий вид которого выражается формулой (27). (27) Численное решение нелинейных...
Adblock detector