Инфоурок Информатика Научные работыПроект на тему "Построитель функций"

Проект на тему "Построитель функций"

Скачать материал

Выберите документ из архива для просмотра:

Выбранный для просмотра документ Построитель графиков функций.ppt

Скачать материал "Проект на тему "Построитель функций""

Получите профессию

Фитнес-тренер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Директор дома творчества

Описание презентации по отдельным слайдам:

  • Построитель графиков функцийАвторы: 
Бураков Андрей
Кузьмин Александр

Научны...

    1 слайд

    Построитель графиков функций
    Авторы:
    Бураков Андрей
    Кузьмин Александр

    Научный руководитель:
    Коханов Леонид Валерьевич

  • Цель работыНаписать программу на языке Паскаль, реализующую построение график...

    2 слайд

    Цель работы
    Написать программу на языке Паскаль, реализующую построение графика функции вида y=f(x), заданную на промежутке [a,b]

  • Способ построения графикаПостроение зависимости y=f(x)

    3 слайд

    Способ построения графика
    Построение зависимости y=f(x)

  • Обычная система координат (действительные числа)

    4 слайд

    Обычная система координат
    (действительные числа)

  • система координат VGA

    5 слайд

    система координат VGA

  • Реальный график функции

    6 слайд

    Реальный график функции

  • Полученный график функции

    7 слайд

    Полученный график функции

  • Требуемые преобразования:f1: [a,b] – [0,x1max]
f2: [ymin,ymax] – [0,y1max]

    8 слайд

    Требуемые преобразования:
    f1: [a,b] – [0,x1max]
    f2: [ymin,ymax] – [0,y1max]

  • f1: [a,b] – [0,x1max]

    9 слайд

    f1: [a,b] – [0,x1max]

  • f2: [ymin,ymax] – [0,y1max]

    10 слайд

    f2: [ymin,ymax] – [0,y1max]

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

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

МУНИЦИПАЛЬНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

«СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА №19»

ШКОЛЬНАЯ НАУЧНО-ПРАКТИЧЕСКАЯ КОНФЕРЕНЦИЯ

 

 

Построитель графиков функций

 

Авторы: Бураков Андрей

Кузьмин Александр

 

Научный руководитель:

Коханов Леонид Валерьевич

 

г.Новочебоксарск 2009 г.
СОДЕРЖАНИЕ

 

1. Цели и задачи  __________________________3

2. Математическая модель __________________4

3. Компьютерная реализация _______________11


1. Цели и задачи

 

При решении различных задач естественно-научного цикла (математика, физика, химия, биология, экономика) приходится часто строить графики различных функций. В школьном курсе это чаще всего это функции одной переменной, выраженной в виде y = f(x).

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

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

В таких случаях может помочь компьютерная программа – построитель графиков функций.

Главной целью данной работы является написание программы «Построитель графиков функций» на языке программирования Паскаль.

Для достижения этой цели возникают следующие задачи:

1.     Выбор способа построения графика функции

2.     Подбор математический аппарата для решения проблемы и построение математической модели

3.     Компьютерная реализация на языке Паскаль.


2. Математическая модель

 

Поскольку необходимо написать компьютерную программу, строящую график практически любой функции, заданной выражением y = f(x), прежде всего необходимо выбрать способ построения графика. Разнообразные аналитические методы, подвластные человеку, для компьютерной реализации слишком сложны, поэтому просто воспользуемся способом построения графика «по точкам».

При построении графика функции «по точкам» необходимо построить таблицу зависимости y=f(x), нанести точки с соответствующими координатами на координатную плоскость и постараться соединить эти точки плавной линией.

x

x1

x2

x3

 

 

 

 

 

xN

y

y1

y2

y3

 

 

 

 

 

yN

 

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

Обычная прямоугольная декартова система координат на плоскости выглядит так:

При этом координаты точки (x,y) выражаются действительными (вещественными) числами.

Графические возможности Паскаля гораздо более ограничены. Координатная плоскость компьютера представляет собой систему координат стандарта VGA 640x480 точек с 16-цветной палитрой.

При этом координаты точки (x,y) выражаются строго целыми числами в соответствующих диапазонах: от 0 до 639 по x и от 0 до 479 по y.

Очевидно, данных диапазонов совершенно недостаточно, и если мы построим график в этих координатах, он будет сильно ограничен, искажен и к тому же зеркально отображен относительно оси Ox.

С другой стороны, поскольку вычислительные возможности компьютера огромны, можно строить зависимость x от y с любым шагом вычислений, ограничения будут только по времени вычислений.

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

Для этого нам потребуются некоторые сведения из области математики.

Договоримся вначале, что наша функция задана на некотором отрезке [a,b] и непрерывна на этом отрезке (например, случай деления на нуль приведет к ошибке). В этом случае известно, что функция на данном отрезке достигает своего минимального и максимального значений ymin и ymax.

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

В результате график функции будет ограничен неким прямоугольником: отрезком [a,b] по оси Ox и отрезком [ymin , ymax] по оси Oy.

 

 

Теперь наша задача заключается в отображении этого прямоугольника на прямоугольник экрана VGA 640x480 с перевертыванием по оси Oy.

Обозначим новые координаты соответственно через  x1 и y1, а ограничения через x1max=639 и y1max=479.

В результате мы должны получить аналогичную картинку в системе координат x1, y1:

Для данного построения требуется произвести преобразования отрезков:

f1: [a , b] – [0 , x1max]

f2: [ymin , ymax] – [0 , y1max]

 

Другими словами, требуется произвести растяжение (сжатие) по осям при помощи указанных преобразований. Для этого нужно воспользоваться сведениями из области аналитической геометрии, а именно, уравнением прямой, проходящей через две данные точки (x1,y1) , (x2,y2)

(в данном случае (x1,y1) , (x2,y2) - координаты двух точек в системе координат (x,y) )

Это уравнение нам потребуется для построения наших функций f1 и f2.

Построим аналитическое выражение для функции f1:

 

или после соответствующих преобразований:

 

 

Для нашей программы эта формула перепишется в формате Паскаля:

 

x1:=round(x1max*(x-a)/(b-a))

 

Аналогично построим аналитическое выражение для функции f2:

 

или после соответствующих преобразований:

 

 

Для нашей программы эта формула перепишется в формате Паскаля:

 

y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max)

 

Стандартная функция round используется для округления чисел до целого.

Для построения графика функции вначале переведем графический курсор в начальную точку, а затем воспользуемся циклом по x в пределах от a до b, каждый раз строя отрезок из последней точки до следующей шагом s при помощи оператора -line(x1,y1), где координаты x1 и y1 вычисляются при помощи указанных формул.

 

После построения самого графика функции необходимо построить реальные оси Ox и Oy.

Ось Ox переходит в ось Ox1, ее уравнение в реальных координатах имеет вид  y=0. Пересчитаем координату y в y1, а затем воспользуемся оператором

line(0,y1,x1max,y1)

Ось Oy переходит в ось Oy1, ее уравнение в реальных координатах имеет вид  x=0. Пересчитаем координату x в x1, а затем воспользуемся оператором

line(x1,0,x1,y1max)

 

Тем самым поставленная задача будет решена.


3. Компьютерная реализация

 

В качестве вводных данных в программе будут использованы начало и конец отрезка и шаг вычислений a, b, s.

Сама функция задается в разделе function.

После этого определяем минимальное и максимальное значение функции на этом отрезке ymin и ymax.

Затем происходит инициализация графики, определение цветов и собственно построение графика при помощи оператора -line(x1,y1).

В конце программы строятся реальные оси координат Ox и Oy.

Ниже приводится текст программы на языке Паскаль:


program grafic;

uses graph;

const x1max=639;

      y1max=479;

var gd,gm,x1,y1:integer;

    x,y,ymin,ymax,a,b,s:real;

 

function f(x:real):real;

begin

 f:=; {задание функции}

end;

 

begin

 write('a=');readln(a);

 write('b=');readln(b);

 write('s=');readln(s);

 ymin:=f(a);

 ymax:=f(a);

 x:=a;

 repeat

  y:=f(x);

  if y<ymin then ymin:=y;

  if y>ymax then ymax:=y;

  x:=x+s

 until x>b;

 gd:=detect;

 initgraph(gd,gm,'');

 setcolor(lightred);

 setbkcolor(black);

 x:=a;

 y:=f(x);

 x1:=0;

 y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max);

 moveto(x1,y1);

 repeat

  y:=f(x);

  x1:=round(x1max*(x-a)/(b-a));

  y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max);

  lineto(x1,y1);

  x:=x+s

 until x>b;

 setcolor(yellow);

 y1:=round(y1max*ymin/(ymax-ymin)+y1max);

 line(0,y1,x1max,y1);

 line(x1max,y1,x1max-10,y1-10);

 line(x1max,y1,x1max-10,y1+10);

 x1:=round(x1max*a/(a-b));

 line(x1,0,x1,y1max);

 line(x1,0,x1+10,10);

 line(x1,0,x1-10,10);

 readln;

 closegraph;

end.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Проект на тему "Построитель функций""

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

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

МУНИЦИПАЛЬНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

«СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА №19»

ШКОЛЬНАЯ НАУЧНО-ПРАКТИЧЕСКАЯ КОНФЕРЕНЦИЯ

 

 

Построитель графиков функций

 

Авторы: Бураков Андрей

Кузьмин Александр

 

Научный руководитель:

Коханов Леонид Валерьевич

 

г.Новочебоксарск 2009 г.
СОДЕРЖАНИЕ

 

 


1. Цели и задачи

 

При решении различных задач естественно-научного цикла (математика, физика, химия, биология, экономика) приходится часто строить графики различных функций. В школьном курсе это чаще всего это функции одной переменной, выраженной в виде y = f(x).

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

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

В таких случаях может помочь компьютерная программа – построитель графиков функций.

Главной целью данной работы является написание программы «Построитель графиков функций» на языке программирования Паскаль.

Для достижения этой цели возникают следующие задачи:

1.     Выбор способа построения графика функции

2.     Подбор математический аппарата для решения проблемы и построение математической модели

3.     Компьютерная реализация на языке Паскаль.


2. Математическая модель

 

Поскольку необходимо написать компьютерную программу, строящую график практически любой функции, заданной выражением y = f(x), прежде всего необходимо выбрать способ построения графика. Разнообразные аналитические методы, подвластные человеку, для компьютерной реализации слишком сложны, поэтому просто воспользуемся способом построения графика «по точкам».

При построении графика функции «по точкам» необходимо построить таблицу зависимости y=f(x), нанести точки с соответствующими координатами на координатную плоскость и постараться соединить эти точки плавной линией.

x

x1

x2

x3

 

 

 

 

 

xN

y

y1

y2

y3

 

 

 

 

 

yN

 

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

Обычная прямоугольная декартова система координат на плоскости выглядит так:

При этом координаты точки (x,y) выражаются действительными (вещественными) числами.

Графические возможности Паскаля гораздо более ограничены. Координатная плоскость компьютера представляет собой систему координат стандарта VGA 640x480 точек с 16-цветной палитрой.

При этом координаты точки (x,y) выражаются строго целыми числами в соответствующих диапазонах: от 0 до 639 по x и от 0 до 479 по y.

Очевидно, данных диапазонов совершенно недостаточно, и если мы построим график в этих координатах, он будет сильно ограничен, искажен и к тому же зеркально отображен относительно оси Ox.

С другой стороны, поскольку вычислительные возможности компьютера огромны, можно строить зависимость x от y с любым шагом вычислений, ограничения будут только по времени вычислений.

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

Для этого нам потребуются некоторые сведения из области математики.

Договоримся вначале, что наша функция задана на некотором отрезке [a,b] и непрерывна на этом отрезке (например, случай деления на нуль приведет к ошибке). В этом случае известно, что функция на данном отрезке достигает своего минимального и максимального значений ymin и ymax.

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

В результате график функции будет ограничен неким прямоугольником: отрезком [a,b] по оси Ox и отрезком [ymin , ymax] по оси Oy.

 

 

Теперь наша задача заключается в отображении этого прямоугольника на прямоугольник экрана VGA 640x480 с перевертыванием по оси Oy.

Обозначим новые координаты соответственно через  x1 и y1, а ограничения через x1max=639 и y1max=479.

В результате мы должны получить аналогичную картинку в системе координат x1, y1:

Для данного построения требуется произвести преобразования отрезков:

f1: [a , b] – [0 , x1max]

f2: [ymin , ymax] – [0 , y1max]

 

Другими словами, требуется произвести растяжение (сжатие) по осям при помощи указанных преобразований. Для этого нужно воспользоваться сведениями из области аналитической геометрии, а именно, уравнением прямой, проходящей через две данные точки (x1,y1) , (x2,y2)

(в данном случае (x1,y1) , (x2,y2) - координаты двух точек в системе координат (x,y) )

Это уравнение нам потребуется для построения наших функций f1 и f2.

Построим аналитическое выражение для функции f1:

 

или после соответствующих преобразований:

 

 

Для нашей программы эта формула перепишется в формате Паскаля:

 

x1:=round(x1max*(x-a)/(b-a))

 

Аналогично построим аналитическое выражение для функции f2:

 

или после соответствующих преобразований:

 

 

Для нашей программы эта формула перепишется в формате Паскаля:

 

y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max)

 

Стандартная функция round используется для округления чисел до целого.

Для построения графика функции вначале переведем графический курсор в начальную точку, а затем воспользуемся циклом по x в пределах от a до b, каждый раз строя отрезок из последней точки до следующей шагом s при помощи оператора -line(x1,y1), где координаты x1 и y1 вычисляются при помощи указанных формул.

 

После построения самого графика функции необходимо построить реальные оси Ox и Oy.

Ось Ox переходит в ось Ox1, ее уравнение в реальных координатах имеет вид  y=0. Пересчитаем координату y в y1, а затем воспользуемся оператором

line(0,y1,x1max,y1)

Ось Oy переходит в ось Oy1, ее уравнение в реальных координатах имеет вид  x=0. Пересчитаем координату x в x1, а затем воспользуемся оператором

line(x1,0,x1,y1max)

 

Тем самым поставленная задача будет решена.


3. Компьютерная реализация

 

В качестве вводных данных в программе будут использованы начало и конец отрезка и шаг вычислений a, b, s.

Сама функция задается в разделе function.

После этого определяем минимальное и максимальное значение функции на этом отрезке ymin и ymax.

Затем происходит инициализация графики, определение цветов и собственно построение графика при помощи оператора -line(x1,y1).

В конце программы строятся реальные оси координат Ox и Oy.

Ниже приводится текст программы на языке Паскаль:


program grafic;

uses graph;

const x1max=639;

      y1max=479;

var gd,gm,x1,y1:integer;

    x,y,ymin,ymax,a,b,s:real;

 

function f(x:real):real;

begin

 f:=; {задание функции}

end;

 

begin

 write('a=');readln(a);

 write('b=');readln(b);

 write('s=');readln(s);

 ymin:=f(a);

 ymax:=f(a);

 x:=a;

 repeat

  y:=f(x);

  if y<ymin then ymin:=y;

  if y>ymax then ymax:=y;

  x:=x+s

 until x>b;

 gd:=detect;

 initgraph(gd,gm,'');

 setcolor(lightred);

 setbkcolor(black);

 x:=a;

 y:=f(x);

 x1:=0;

 y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max);

 moveto(x1,y1);

 repeat

  y:=f(x);

  x1:=round(x1max*(x-a)/(b-a));

  y1:=round(y1max*(y-ymin)/(ymin-ymax)+y1max);

  lineto(x1,y1);

  x:=x+s

 until x>b;

 setcolor(yellow);

 y1:=round(y1max*ymin/(ymax-ymin)+y1max);

 line(0,y1,x1max,y1);

 line(x1max,y1,x1max-10,y1-10);

 line(x1max,y1,x1max-10,y1+10);

 x1:=round(x1max*a/(a-b));

 line(x1,0,x1,y1max);

 line(x1,0,x1+10,10);

 line(x1,0,x1-10,10);

 readln;

 closegraph;

end.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Проект на тему "Построитель функций""

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 661 040 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 15.10.2016 720
    • ZIP 159.3 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Коханов Леонид Валерьевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Коханов Леонид Валерьевич
    Коханов Леонид Валерьевич
    • На сайте: 8 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 11530
    • Всего материалов: 13

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Няня

Няня

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Разработка и сопровождение требований и технических заданий на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности

Системный аналитик

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Сейчас обучается 64 человека из 34 регионов
  • Этот курс уже прошли 83 человека

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Курс повышения квалификации

Применение компьютерных моделей при обучении математике и информатике в рамках ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 28 регионов
  • Этот курс уже прошли 177 человек

Мини-курс

Коррекция нарушений у детей: сна, питания и приучения к туалету

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Эффективное взаимодействие с детьми: стратегии общения и воспитания

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 662 человека из 74 регионов
  • Этот курс уже прошли 536 человек

Мини-курс

Преодоление внутренних барьеров: убеждения, зависимости, и самооценка

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 183 человека из 48 регионов
  • Этот курс уже прошли 38 человек