Анализ функции двух переменных

Автор работы: Пользователь скрыл имя, 20 Января 2015 в 14:31, курсовая работа

Описание работы

Любой графический объект имеет множество свойств. Для того чтобы ознакомится с ними необходимо использовать функцию get(), входным параметром которой будет искомый графический объект или его дескриптор. Что же такое дескриптор? Дескриптор – описатель с англ. однако это не его определение.

Содержание работы

ВВЕДЕНИЕ…………………………………………………………………….…..4
ЗАДАНИЕ.................................................................................................................6
АНАЛИЗ ЗАДАНИЯ и СЛОВЕСНЫЙ АЛГОРИТМ…………………...…..…..7
БЛОК-СХЕМА………………………………………………………………...…....8
ТЕКСТ ПРОГРАММЫ НА С++ , MATLAB………………………………….…10
СТРУКТУРА И РАБОТА ПРОГРАММЫ………………………………..……...12
РЕЗУЛЬТАТ ПРОГРАММЫ……………………………………………………..13
ГРАФИКИ……………………………………………………………………….....14
ЗАКЛЮЧЕНИЕ…………………..………………………………………………..16
БИБЛИОГРАФИЧЕСКИЙ СПИСОК…………………………………

Файлы: 1 файл

Курсовая работа финал.doc

— 547.00 Кб (Скачать файл)

 

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

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

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

ИНСТИТУТ ИНЖЕНЕРНОЙ ФИЗИКИ И РАДИОЭЛЕКТРОНИКИ

 

 

 

 

Кафедра «Радиоэлектронные системы»

 

 

 

Курсовая работа

информатика

Анализ функции двух переменных

 

 

 

                   

 

 

 

 

              Руководитель:        ____________________                       Петров Г.Н.

 

 

 

 

             Студент:                   ____________________                    

                                                                                                             Иванов И.Н

 

 

 

 

 

 

 

 

 

 

Изм

Лист

№ докум.

Подп.

Дата

СФУ

Разраб.

 И.Н

   

Анализ функции двух переменных

Курсовая

Лит.

Лист

Листов

Пров.

Г.Н.

     

6

17

       

 

Радиоэлектронные системы

Н. контр.

     

Утв.

     

ЗАДАНИЕ

Часть первая:

 

1. Выполняется на языке С++. Вычислить F(x,y)  как зависимость от x в диапазоне x от xb до xe   при   одном значении y. В диапазоне от xb до xe необходимо вычислить n значений F(x,y). Значения F(x,y)  и x записать в файл в формате  для чтения в системе Matlab.

2.

2.1 в системе Matlab прочитать файл и нарисовать зависимость F(x) по данным С++.

2.2 в системе Matlab вычислить функцию двух переменных F(x,y) для тех же значений x, y и нарисовать зависимость F(x).

Рисунки пунктов 2.1 и 2.2 разместить в одном графическом окне.

Часть вторая:

Выполняется в системе Matlab. Вычислить F(x,y)  функцию двух переменных F(x,y).

Нарисовать:

        1. Трехмерную  зависимость F(x,y);

        2. Зависимость F(x) при 2-х значениях y ( значения  y задать        

            самостоятельно из диапазона  изменений y);

        3. Зависимость F(y) при 2-х значениях x ( значения x задать        

            самостоятельно из диапазона  изменений x);

       4.  Зависимость F(x) при всех значениях y ;

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

V=3.8*exp-y+5.37*tg(x-y)

U=дробная часть V

G=25.78e-2*log10(x)-|cos(x)+cos(x2+y)|

F=√|(G2)*arcsin(U)+U2|


 

СОДЕРЖАНИЕ

 

РЕФЕРАТ…………………………………………………………………………..1

СОДЕРЖАНИЕ……………………………………………………………………2

ВВЕДЕНИЕ…………………………………………………………………….…..4

ЗАДАНИЕ.................................................................................................................6

АНАЛИЗ ЗАДАНИЯ  и СЛОВЕСНЫЙ АЛГОРИТМ…………………...…..…..7

БЛОК-СХЕМА………………………………………………………………...…....8

ТЕКСТ ПРОГРАММЫ НА С++ , MATLAB………………………………….…10

СТРУКТУРА И РАБОТА ПРОГРАММЫ………………………………..……...12

РЕЗУЛЬТАТ ПРОГРАММЫ……………………………………………………..13

ГРАФИКИ……………………………………………………………………….....14

ЗАКЛЮЧЕНИЕ…………………..………………………………………………..16

БИБЛИОГРАФИЧЕСКИЙ СПИСОК………………………………………….....17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

Операции с графическим объектом типа figure

 

Графические средства MATHLAB базируются на низкоуровневой графике, которая называется дескрипторной (описательной), или handle – графикой.

Центральное место в дескрипторной графике занимает графический объект.

В среде MATHLAB существуют следующие типы графических объектов:

  1. root – первичный объект, соответствующий экрану компьютера.
  2. figure – объект создания графического окна
  3. axes – оси, объект, задающий положение графика в объекте figure
  4. line – объект создания лини
  5. surface – объект создания поверхности
  6. text – объект создания  надписей
  7. light – объект создания освещенности

 

Темой моего реферата является описание свойств графического объекта figure, основные операции над объектом и как результат – применение этих знаний в процессе написания курсовой работы.

 

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

  1. figure – открыть чистое графическое окно
  2. gcf – получить дескриптор текущего графического окна
  3. clf – очистить графическое окно
  4. close – закрыть графическое окно
  5. refresh – обновить графическое окно

 

 

 

 

 

 

 

 

Любой графический объект имеет множество свойств. Для того чтобы ознакомится с ними необходимо использовать функцию get(), входным параметром которой будет искомый графический объект или его дескриптор. Что же такое дескриптор? Дескриптор – описатель с англ. однако это не его определение. По существу дескриптор – это некое число, своеобразный идентификатор («распознаватель») объектов. Дескриптор root всегда равен 0, а figure – это целое число, обозначающее номер графического окна. Дескрипторы других объектов – это числа с плавающими точками. По дескрипторам MATHLAB идентифицирует объекты, и применяет или запрещает применять изменения свойств таких объектов. Пример распознавания объекта будет представлен ниже. Дескриптор одного типа обекта это одно число, но если таких объектов несколько, то это несколько чисел (вектор). Перейдем к примерам.

 

До начала работы, как и описывалось выше, необходимо изучить свойства объекта. Пример такой программы представлен ниже:

 

figure(1) %создадим графическое окно 1

get(figure(1))% ознакомимся с его свойствами

 

Результатом работы такой программы станет вывод свойств объекта в рабочее поле MATHLAB, однако приводить его полностью не имеет смысла, так как он список свойств объекта порой доходит до 100. Приведем лишь некоторые основные хар – ки :

 

Color = [0.8 0.8 0.8]

Name =

NumberTitle = on

 

В дальнейшем мы будем работать вот с этими 3 характеристиками.

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

Проще всего разобрать это на примере. Воспользуемся программой первого примера:

 

figure(1) %создадим графическое окно 1

get(figure(1))% ознакомимся с его свойствами

set(figure(1),'Name','Курсовой проект')%изменим имя графического окна

 

 

 

 

 

 

 

 

 

 

 

Результатом стало изменение имени графического окна.

 

Если сейчас взять характеристики измененного окна, то в поле Name, мы увидим имя нашего окна:

Name = Курсовой проект

 

Некоторые характеристики окна интуитивно понятны, а некоторые подвластны лишь специалистам.

 

Теперь отключим отображение номера окна. Воспользуемся функцией set, и изменим параметр NumberTitle, характеристика которого по умолчанию on (включить).

figure(1) %создадим графическое окно 1

get(figure(1))% ознакомимся с его свойствами

set(figure(1),'NumberTitle','off','Name','Курсовой проект')%отключим отбражение номера окна и  изменим имя графического окна

 

Результат:

 

Наконец, изменим цвет графического окна. По – умолчанию он серый.

Параметр, отвечающий за цвет носит, название color=[], а значение параметра это цвета либо на англ, либо коэффициенты в RGB – модели. Покрасим наше окно в красный цвет:

 

figure(1)

get(figure(1))

set(figure(1),'NumberTitle','off','Name','Курсовой проект','color','red')

 

Результат:

 

Всеми эти приемами мы воспользуемся при написании курсовой работы.

 

 

 

 

АНАЛИЗ ЗАДАНИЯ

Данная курсовая работа предназначена для вычисления функции двух переменных F(x,y) с использованием средств C++ и Matlab.

 

СЛОВЕСНЫЙ АЛГОРИТМ

Main:

  1. Начало
  2. Ввод исходных данных : y,xb,xe,n
  3. Вычисление шага dx=(xe-xb)/n-1
  4. Вывод шапки таблицы
  5. Полагаем x=xb
  6. Обращение к функции  FF(x,y), где производится расчет математических выражений (V,U,G,F) и запись в файл значений(x, F)
  7. x=x+dx
  8. x<=xe,   да => пункт 6.

                            нет => пункт 9.

  1. Вывод x,F
  2. Подпись
  3. Конец

 

ПОЯСНЕНИЯ К БЛОК-СХЕМЕ

y –постоянное значение;

xb – начальное значение диапазона;

xe – конечное значение диапазона;

n –количество итераций;

dx –шаг;

x – переменная из значений диапазона;

F – значение функции;

 

 

 

 

 

 

 

 

БЛОК-СХЕМА

Функция main

 


 

 

 

 


 

 

 


 


 



 



 



 


 


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция FF(x,y)

 

double FF(double x,double y)


 


 



 



 



 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТЕКСТ ПРОГРАММЫ НА С++

#include "stdafx.h"

#include "conio.h"

#include "math.h"

FILE *fp;

double FF(double,double);

double FF(double x,double y)

 

{double V,F,G,U;

 

V=3.8*exp(-y)+5.37*tan(x-y);

U=V-floor(V);

G=25.78e-2*log10(x)-fabs(cos(x)+cos(pow(x,2)+y));

F=sqrt(fabs(pow(G,2)*asin(U)+pow(U,2)));

    printf("|  %le | %le  |\n",x,F);

fprintf(fp," %le  %le\n",x,F);

return F;

}

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

{

double y,x,dx,xe,xb,S,err;

int n;

    err=fopen_s(&fp,"tab.txt","w+");

printf("y=");

scanf_s("%le",&y);

printf("\nxb,xe,n (x>0)");

scanf_s("%le%le%i",&xb,&xe,&n);

dx=(xe-xb)/(n-1);

printf("y=%le \n",y);

printf("__________________________________\n");

printf("|      x        |        F        |\n");

printf("__________________________________\n");

for(x=xb;x<=xe;x=x+dx)

{

S=FF(x,y);

}

fclose(fp);

printf("kolomeec\n");

_getch();

return 0;

 

 

 

 

 

 

 

 

 

 

 

 

ТЕКСТ ПРОГРАММЫ НА MATLAB

function res()

load tab.txt

X=tab(:,1);

Y=tab(:,2);

y=input('y=');

xb=input('xb=');

xe=input('xe=');

n=input('n=');

dx=(xe-xb)/(n-1);

x=xb:dx:xe;

V=3.8*exp(-y)+5.37.*tan(x-y);

U=V-floor(V);

G=25.78e-2.*log10(x)-abs(cos(x)+cos(x.^2+y));

F=sqrt(abs(G.^2).*asin(U)+U.^2);

 

subplot(2,1,1)

plot(X,Y),xlabel('C++'),grid on

subplot(2,1,2)

plot(x,F),xlabel('Matlab'),grid

set(gcf,'NumberTitle','off','Name','Графики С++ и M','color',[0.2 0.8 0.7])

 

function res2()

set(gcf,'color',[0.5 0.4 0.4],'NumberTitle','off','Name','Табулирование в среде MATHLAB')

X=1:0.2:2;

Y=0:0.8:4;

[x,y]=meshgrid(X,Y);

F=Fun(x,y)

[n m]=size(F)

subplot(2,2,1)

mesh(x,y,F),xlabel('F(x,y)')

subplot(2,2,2)

plot(x(1,:),F(2,:),'r'),xlabel('F(x), при y=2(красный),y=4')

hold on

plot(x(1,:),F(4,:)),grid

subplot(2,2,3)

plot(y(:,1),F(:,2)),grid

hold on

plot(y(:,1),F(:,4),'r'),xlabel('F(y), при x=4(красный),x=2')

subplot(2,2,4)

plot(x(1,:),F(1:n-1,:),x(1,:),F(n,:)),xlabel('F(x),при всех y'),grid on

   

 

function F=Fun(x,y)

V=3.8*exp(-y)+5.37.*tan(x-y);

U=V-floor(V);

G=25.78e-2.*log10(x)-abs(cos(x)+cos(x.^2+y));

F=sqrt(abs(G.^2).*asin(U)+U.^2);

 

 

 

 

 

 

 

 

 

 

 

СТРУКТУРА И РАБОТА ПРОГРАММЫ

 

Программа на языке C ++ состоит из двух функции:

    1. main()
    2. FF()-Рассчитывает значения функции F при разных значениях х , запись в файл.

Работа программы начинается с функции main, в которой происходит ввод значений параметров: y,xb,xe,n;.

Вычисление шага dx;

Данная программа содержит оператор цикла for, в котором происходит обращение к функции, где производится расчет математических выражений (V,U,G,F) и запись в файл: tab.txt в виде двух столбцов (x,F), по мере выполнения программы.

 

РАБОТА В СИСТЕМЕ MATLAB

 

Программа в системе состоит из трех функций.

 

    1. function res() -- --  загрузка файла с данными из С++ “tab.txt”; расчет функции с использованием средств Matlab; построение графиков.
    2. function res2() --  расчет функции двух переменных; построение графиков.
    3. function F=Fun( x,y) – расчет математических выражений (V,U,G,F). Функция имеет два входных параметра и один выходной.

 

Работа начинается с запуска function res() , сначала, происходит чтение файла из С++ “tab.txt”.  Далее, ввод исходных данных (y, xb, xe, n), после чего, происходит обращение к функции F=R( x,y) и построение графиков.

При запуске function res2() происходит обращение к функции F=Fun( x,y) и построение графиков.

 

 

 

 

 

 

 

 

 

РЕЗУЛЬТАТ ПРОГРАММЫ

фрагмент файла из С++

первый столбец - x

второй столбец - F

1.000000e-001  4.637910e-001

1.800000e-001  8.553414e-001

2.600000e-001  1.187216e+000

3.400000e-001  6.937240e-001

4.200000e-001  1.083121e+000

5.000000e-001  8.490493e-001

5.800000e-001  1.935376e-001

6.600000e-001  6.647169e-001

7.400000e-001  8.048556e-001

8.200000e-001  5.071310e-001

9.000000e-001  1.036752e+000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ГРАФИКИ

 

Графики файла function res()

Графики файла function res2() 

АНАЛИЗ РЕЗУЛЬТАТОВ

 

При выполнении программы на С++, были получены значения виде двух столбцов, записанных в файл. На основе этих значений были построены графики. Эти графики совпадают с графиками, построенные на основе значений, полученных при выполнении программы на MATLAB.

Информация о работе Анализ функции двух переменных