Автор работы: Пользователь скрыл имя, 20 Января 2015 в 14:31, курсовая работа
Любой графический объект имеет множество свойств. Для того чтобы ознакомится с ними необходимо использовать функцию get(), входным параметром которой будет искомый графический объект или его дескриптор. Что же такое дескриптор? Дескриптор – описатель с англ. однако это не его определение.
ВВЕДЕНИЕ…………………………………………………………………….…..4
ЗАДАНИЕ.................................................................................................................6
АНАЛИЗ ЗАДАНИЯ и СЛОВЕСНЫЙ АЛГОРИТМ…………………...…..…..7
БЛОК-СХЕМА………………………………………………………………...…....8
ТЕКСТ ПРОГРАММЫ НА С++ , MATLAB………………………………….…10
СТРУКТУРА И РАБОТА ПРОГРАММЫ………………………………..……...12
РЕЗУЛЬТАТ ПРОГРАММЫ……………………………………………………..13
ГРАФИКИ……………………………………………………………………….....14
ЗАКЛЮЧЕНИЕ…………………..………………………………………………..16
БИБЛИОГРАФИЧЕСКИЙ СПИСОК…………………………………
Федеральное государственное образовательное
учреждение высшего профессионального образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ ИНЖЕНЕРНОЙ ФИЗИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра «Радиоэлектронные системы»
Курсовая работа
информатика
Анализ функции двух переменных
Руководитель:
____________________
Студент:
____________________
ЗАДАНИЕ Часть первая:
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)+ F=√|(G2)*arcsin(U)+U2| |
СОДЕРЖАНИЕ
РЕФЕРАТ……………………………………………………………
СОДЕРЖАНИЕ……………………………………………………
ВВЕДЕНИЕ…………………………………………………………
ЗАДАНИЕ.......................
АНАЛИЗ ЗАДАНИЯ и СЛОВЕСНЫЙ АЛГОРИТМ…………………...…..…..7
БЛОК-СХЕМА……………………………………………………
ТЕКСТ ПРОГРАММЫ НА С++ , MATLAB………………………………….…10
СТРУКТУРА И РАБОТА ПРОГРАММЫ………………………………..……...12
РЕЗУЛЬТАТ ПРОГРАММЫ…………………………………………………….
ГРАФИКИ……………………………………………………………
ЗАКЛЮЧЕНИЕ…………………..……………………………
БИБЛИОГРАФИЧЕСКИЙ СПИСОК………………………………………….....17
Операции с графическим объектом типа figure
Графические средства MATHLAB базируются на низкоуровневой графике, которая называется дескрипторной (описательной), или handle – графикой.
Центральное место в дескрипторной графике занимает графический объект.
В среде MATHLAB существуют следующие типы графических объектов:
Темой моего реферата является описание свойств графического объекта figure, основные операции над объектом и как результат – применение этих знаний в процессе написания курсовой работы.
Прежде чем рассматривать основы дескрипторной графики на примерах, необходимо отметить команды и функции, которые предназначены для открытия графических окон (figure) и управления ими:
Любой графический объект имеет множество свойств. Для того чтобы ознакомится с ними необходимо использовать функцию 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','
Результат:
Наконец, изменим цвет графического окна. По – умолчанию он серый.
Параметр, отвечающий за цвет носит, название color=[], а значение параметра это цвета либо на англ, либо коэффициенты в RGB – модели. Покрасим наше окно в красный цвет:
figure(1)
get(figure(1))
set(figure(1),'NumberTitle','
Результат:
Всеми эти приемами мы воспользуемся при написании курсовой работы.
АНАЛИЗ ЗАДАНИЯ
Данная курсовая работа предназначена для вычисления функции двух переменных F(x,y) с использованием средств C++ и Matlab.
Main:
нет => пункт 9.
ПОЯСНЕНИЯ К БЛОК-СХЕМЕ
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(
F=sqrt(fabs(pow(G,2)*asin(U)+
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("______________________
printf("| x | F |\n");
printf("______________________
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(
F=sqrt(abs(G.^2).*asin(U)+U.^
subplot(2,1,1)
plot(X,Y),xlabel('C++'),grid on
subplot(2,1,2)
plot(x,F),xlabel('Matlab'),
set(gcf,'NumberTitle','off','
function res2()
set(gcf,'color',[0.5 0.4 0.4],'NumberTitle','off','
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'),
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'),
subplot(2,2,4)
plot(x(1,:),F(1:n-1,:),x(1,:),
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(
F=sqrt(abs(G.^2).*asin(U)+U.^
СТРУКТУРА И РАБОТА ПРОГРАММЫ
Программа на языке C ++ состоит из двух функции:
Работа программы начинается с функции main, в которой происходит ввод значений параметров: y,xb,xe,n;.
Вычисление шага dx;
Данная программа содержит оператор цикла for, в котором происходит обращение к функции, где производится расчет математических выражений (V,U,G,F) и запись в файл: tab.txt в виде двух столбцов (x,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()
АНАЛИЗ РЕЗУЛЬТАТОВ
При выполнении программы на С++, были получены значения виде двух столбцов, записанных в файл. На основе этих значений были построены графики. Эти графики совпадают с графиками, построенные на основе значений, полученных при выполнении программы на MATLAB.