98516

Построение семейства графиков функции с помощью MatLab

Курсовая

Информатика, кибернетика и программирование

Тригонометрические функции — элементарные функции, которые исторически возникли при рассмотрении прямоугольных треугольников и выражали зависимости сторон этих треугольников от острых углов при гипотенузе (или, что равнозначно, зависимость хорд и высот от центрального угла (дуги) в круге).

Русский

2015-11-04

2.31 MB

3 чел.

Федеральное государственное автономное

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

высшего профессионального образования

«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Институт инженерной физики и радиоэлектроники

Кафедра «Радиотехники»

    

  

КУРСОВАЯ РАБОТА

        Руководитель                                   ________            М.М.Валиханов

                                                                                 подпись, дата                 инициалы, фамилия 

        Студент  РФ13-42Б  051311003      ________            М.Ю.Чулкова

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

Красноярск 2015

РЕФЕРАТ

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

  1.  Построение графиков функций заданных экспонентой и косинусом;
  2.  Вычисление суммы функции;
  3.  Построение семейства графиков функции.

Курсовая работа состоит из 30 страниц, содержит 22 рисунка, 2 приложения. В приложениях представлены коды программ.

Задание

1. Сформировать функцию:

где  n(x)  –  для  каждого нового x случайное число  с равномерным законом

распределения  из интервала (-0.5, 0.5);  x  изменяется дискретно с шагом 1 в

интервале (0,N-1).

2. Записать в файл N отчетов f(x).

3. Сформировать функцию q(x) по закону:

4. Вычислить функцию h(x):

функцию f(x) вне интервала аргумента (0,N-1) считать равной нулю.

5. Построить семейство графиков f(x) и h(x) при следующих параметрах:

a1= 0.001, a2= 0.001, a3= 0.01,

b1= 0.01, b2= 0.05, b3= 0.1,

Значение N≥300.

СОДЕРЖАНИЕ

Введение 4

1 Графики тригонометрических и экспоненциальной функций 6

2 Реализация 8

2.1 Реализация в Matlab 8

2.2 Реализация в Microsoft Visual Studio 13

3 Результаты 16

3.1 Результаты в Matlab 16

3.2 Результаты в Microsoft Visual Studio 18

Заключение 21

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

Приложение А 23

Приложение Б 26

ВВЕДЕНИЕ

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

К тригонометрическим функциям относятся:

  1.  Прямые тригонометрические функции

синус (sin x), косинус (cos x)

  1.  Производные тригонометрические функции

тангенс (tg x), котангенс (ctg x)

  1.  Другие тригонометрические функции

секанс (sec x), косеканс (cosec x).

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

1.Графики тригонометрических и экспоненциальных функций.

Для определения точных значений строят различные графики.

  1.  График функции синус

y = sin x, область определения: x  R, область значений: −1≤sinx≤1  

Рисунок 1 – График функции синус

  1.  График функции косинус

y = cos x, область определения: x  R, область значений: −1 ≤ cos x ≤ 1

Рисунок 2 – График функции косинус

  1.  График функции секанс 

y=sec x, область определения: x R, x≠ (2k+1)π/2, область значений:   

sec x(−∞,−1][1,∞) 

Рисунок 3 – График функции секанс

  1.  График функции косеканс 

y=csc x, область определения: x R , x≠ kπ, область значений:  

csc x(−∞,−1][1,∞) 

Рисунок 4 – График функции косеканс

  1.  График функции тангенс 
    y=tan x, область определения: x
    R, x≠(2k+1)π/2, область значений: −∞<tan x<∞ 

Рисунок 5 – График функции тангенс

  1.  График функции котангенс 
    y=cot x, область определения: x
    R, x≠ kπ, область значений: 

−∞<cot x<∞ 

Рисунок 6 – График функции котангенс

  1.  График экспоненциальной функции.

Рисунок 7 – График экспоненциальной функции

2.Реализация.

2.1 Реализация в Matlab.

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

Разберем сначала, как получить график функции одной переменной, к примеру:   

 на отрезке [-2,2].

Первый шаг состоит в задании координат точек по оси абсцисс.

Заполнение вектора x элементами с постоянным шагом при помощи двоеточия позволяет просто решить эту задачу. Далее необходимо поэлементно вычислить значения f (x) для каждого элемента вектора x и записать результат в вектор f. Для построения графика функции осталось использовать какую-либо из графических функций MatLab.  Достаточно универсальной графической функцией является plot. В самом простом случае она вызывается с двумя входными аргументами — парой x и f (т. е. plot выводит зависимость элементов одного вектора от элементов другого).           Последовательность команд, записанная ниже, приводит к появлению графического окна Figure No.1 с графиком функции (рис. 4).

>> x=[-2:0.05:2];

>> f=exp(x).*sin(pi*x)+x.^2;

>> plot(x,f)

Рисунок 8 – График функции f.

Тип линии, цвет и маркеры определяются значением третьего дополнительного аргумента функции plot. Этот аргумент указывается в апострофах, например, вызов plot(x,f,'ro:') приводит к построению графика красной пунктирной линией, размеченной круглыми маркерами. Обратите внимание, что абсциссы маркеров определяются значениями элементов вектора x. Всего в дополнительном аргументе может быть заполнено три позиции, соответствующие цвету, типу маркеров и стилю линии. Обозначения для них приведены в табл. 4.1. Порядок позиций может быть произвольный, допустимо указывать только один или два параметра, например, цвет и тип маркеров. Посмотрите на результат выполнения следующих команд: plot(x,f,'g'), plot(x,f,'ko'), plot(x,f,':').

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

Пусть требуется вывести график не только f (x), но и на отрезке [-2,2]. Сначала необходимо вычислить значения g(x):

>> g=exp(-x.^2).*sin(5*pi*x);

а затем вызвать plot, указав через запятую пары x, f и x, g и, при желании, свойства каждой из линий:

>> plot(x,f,'ko-', x,g,'k:')

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

2.1.1

В данной программе использовались операторы:

plot – вывод графика на экран;

grid on – нанесение сетки на координатную ось;

title – подпись графика;

legend – подпись линий графиков;

xlabel, ylabel – подпись осей.

Рисунок 9 – Блок-схема

2.1.2.

Для реализации программы создаем файл-функцию S = Untitled8.m;

Задаем массив состоящий из нулей, используем цикл for для задания промежутков, формируем сумму ряда S(y). Вызываем функцию при помощи команды S= UntitledUl (a, b, N). При помощи команды plot строим графики этой функции.

Рисунок 10 – Блок-схема для файл-функции

2.1.3

Рисунок 11 – Блок-схема

2.2.Реализация в Microsoft Visual Studio

2.2.1

Рисунок 12 – Блок- схема

2.2.2.

Рисунок 13 – Блок-схема

2.2.3

Рисунок 14 – Блок-схема

3. Результаты

3.1 Результаты в Matlab.

3.1.1.

Рисунок 15 – Семейство кривых функции Y(x).

3.1.2.

Рисунок 16 – График кривой функции q(x)

3.1.3.

Рисунок 17 – Семейство кривых функции h(x) и f(x)

3.2.Результаты в Microsoft Visual Studio

3.2.1

Рисунок 18 – Значения функции Y(x).

 

 

3.2.2.

Рисунок 19 – Значения функции q(x).

3.2.3.

Рисунок 20 – Результат работы программы

для нахождения суммы ряда при a1=0,001 и b2=0,01

Рисунок 21 – Результат работы программы

для нахождения суммы ряда при a2=0,001 и b2=0,5

Рисунок 22 – Результат работы программы

для нахождения суммы ряда при a3=0,01 и b3=0,1

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1.  Ануфриев И. Е. Самоучитель MatLab 5.3/6.x. – СПб.: БХВ-Петербург, 2002. – 736 с.: ил.
  2.  Лаврентьев М. А., Шабат Б. В. Методы теории функций комплексного переменного.— М.:Наука, 1965, 716 с. 

http://www.apmath.spbu.ru/ru/staff/starkov/tfkp-part1.pdf

  1.  Определение и графики тригонометрических функций.

http://www.math24.ru/definition-of-trigonometric-functions.html

ПРИЛОЖЕНИЕ А

2.1.1.

a = 0.001;

b = 0.01;

N = 400;

x = [0:1:N];

n=rand(1)-0.5;

f1=exp(-a*x).*cos(b*x)+n

a = 0.001;

b = 0.05;

f2 =exp(-a*x).*cos(b*x)+n  

a = 0.01;

b = 0.1;

f3 = exp(-a*x).*cos(b*x)+n

f=fopen('Untitled6.txt','wb');

fprintf(f,'%f %f %f\n',f1,f2,f3)

plot(x, f1 ,'k-', x, f2, 'k:', x, f3, 'k--', 'LineWidth',3);

grid on;

title('График функции exp(-ax) cos(bx)+n');

xlabel('значения  x');

ylabel('значения  Y(x)');

legend('a = 0.001, b = 0.01', 'a = 0.001, b = 0.05', 'a = 0.001, b = 0.1');

2.1.2.

N = 300;

x = [1:1:N];

q = exp(-0.1*x);

plot(x, q ,'k-');

grid on;

title('График функции exp(-0.1x)');

xlabel('значения  x');

ylabel('значения  Y(x)');

2.1.3.

function S = myfun15(a, b, N)

S = zeros(1,N);

n=rand(1)-0.5;

 for y = 1:1:N

   for x = 1:1:N

       S(y)=S(y)+(exp(-0.1*y).*(exp(-a*(x-y).*cos(b*(x-y))+n)));

   end

 end

end

Вызов функции

N=400;

a = 0.001;

b = 0.01;

S = myfun15(a, b, N);

S_y1=S

 

a = 0.001;

b = 0.05;

S = myfun15(a, b, N);

S_y2=S

 

a = 0.01;

b = 0.1;

S = myfun15(a, b, N);

S_y3=S

plot(S,S_y1,'b.',S,S_y3,'b-',S,S_y3,'b*')

grid on

title('График функции exp(-0.1*y).*(exp(-a*(x-y).*cos(b*(x-y))+n))');

ПРИЛОЖЕНИЕ Б

2.2.1.

#include "stdafx.h"

#define _USE_MATH_DEFINES

#include <math.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])

{

double Y1, Y2, Y3, a1, a2, a3, b1, b2, b3, n, f;

f=rand();

a1=0.001;

a2=0.001;

a3=0.01;

b1=0.01;

b2=0.5;

b3=0.1;

for(double x=0; x<400; x=x+5)

{

n=((double)f/32767)-0.5;

Y1=exp(-a1*x)*cos(b1*x)+n;

Y2=exp(-a2*x)*cos(b2*x)+n;

Y3=exp(-a3*x)*cos(b3*x)+n;

printf("%0.0f\t Y1=%f\t Y2=%f\t Y3=%f\t\n",x,Y1,Y2,Y3);

}

getch();

return 0;

}

2.2.2.

#include "stdafx.h"

#define _USE_MATH_DEFINES

#include <math.h>

#include <conio.h>

#include <string.h>

int _tmain(int argc, _TCHAR* argv[])

{

float Y ;

for(double x=0; x<300; x=x++)

{

Y=exp(-0.1*x);

printf("%0.0f\t Y=%.9f\t\n",x,Y );

}

getch();

return 0;

}

2.2.3.

#include "stdafx.h"

#include <conio.h>

#include <math.h>

#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])

{

 double f, x, a, b, N, y, Sk, S, PSk, n;

N=400;Sk=1;PSk=1;S=Sk;

f=rand();

printf("Enter a:");

scanf("%lf", &a);

printf("Enter b:");

scanf("%lf", &b);

 for(x=0; x<=N; x++)

{

 for(y=0; y<=N; y++)

 {

  n=((double)f/32767)-0.5;

  Sk=exp(-0.1*y);

  f=exp(-a*(x-y))*cos(b*(x-y))+n;

  PSk=f*Sk;

  S=S+PSk;

 }

}

printf("S=%.9lf\t\n", S);

 getch();

 return 0;

}


 

А также другие работы, которые могут Вас заинтересовать

69677. ІНСТРУКЦІЯ SWITCH-CASE (КОНСТРУКЦІЯ ВИБОРУ) 52 KB
  Нами залишилася непоміченій дуже важлива конструкція — switch-case. Дана конструкція призначена для вибору дій, залежно від значення вказаного виразу. Конструкція switch-case чимось нагадує оператора if-else, який, по суті, є її аналогом.
69678. ОБРОБКА ПОМИЛОК 24 KB
  Інтерпретатор PHP дозволяє програмістові визначити, які повідомлення про помилки потрібно виводити, а які — ні. Поки ви відладжуєте програму, я рекомендую виводити всі повідомлення про помилки і всі попередження, а потім, коли програма нормально працює, виводити тільки повідомлення про помилки.
69679. ГІПЕРТЕКСТОВІ ПОСИЛАННЯ 119 KB
  Гіпертекстове посилання складається з двох частин: вказівника і адресної частини (URL). Вказівник - текст (або графічне зображення), на якому користувач повинен клацнути для того, щоб перейти в інше місце. URL - вказує адресу, з якої броузер буде завантажувати документ...
69680. ТЕГ TEXTAREA 113 KB
  Ми переходимо до розгляду багаторядкового поля введення. У HTML ця можливість реалізується за допомогою тега TEXTAREA. Поле, що створюється цим тегом, дозволяє вводити і відправляти не один рядок, а відразу декілька.
69681. Графіка Web-сторінок 101.5 KB
  Графіка Web-сторінок може містити як прості зображення, так і складні. Важливим у використанні графіки є не міра її складності, а ефективність у питаннях передавання тієї інформації, яку необхідно надати користувачам.
69682. ОСНОВНІ ПОНЯТТЯ МОВИ HTML 33.5 KB
  HTML (Hypertext Markup Language — Мова гіпертекстової розмітки) — це мова опису структури сторінок документів, яка дозволяє звичайний текст форматувати в абзаци, заголовки, списки та інші структури, створювати посилання на інші сторінки.
69683. РНР-СЦЕНАРІЇ В ТІЛІ HTML-ДОКУМЕНТІВ 28.5 KB
  Ми тільки що розглянули структуру РНР-програми, і можна було б перейти до розгляду змінних. Проте РНР-сценарії можна записувати і по-іншому. Щоб ви зайвий раз не перегортали книгу, нагадаю текст сценарію first.php:...
69684. КОНСТАНТИ 36 KB
  Константи містять постійні значення. На відміну від змінних, ви не можете змінити значення константи, яке було їй привласнено при її оголошенні. Константи зручно використовувати для зберігання значень, які не повинні змінювати під час роботи програми, наприклад, ім’я розробника програми.
69685. ТЕХНОЛОГІЯ СТВОРЕННЯ HTML-ДОКУМЕНТА 49.5 KB
  Створення HTML-документа відбувається розташуванням тегів (tags) мови HTML всередині звичайного неформатованого тексту. Теги HTML — це послідовності символів, які починаються знаком «менше» і закінчуються знаком «більше». Теги можуть мати атрибути, які, в свою чергу, можуть приймати певні значення.