У вас вопросы?
У нас ответы:) SamZan.net

а; Длина отрезка прямой в пределах заданного интервала; Точка пересечения прямой с ос

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 14.1.2025

Задача.

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

Y(X) = K*X + L

на заданном интервале

A < X < B

К этим характеристикам относятся:

  1.  Миниальное и максимальное значения функции (достигается на концаз интервала);

  1.  Длина отрезка прямой в пределах заданного интервала;

  1.  Точка пересечения прямой с осью ОХ;

  1.  Значение площади трапеци (или треугольников) ограниченных прямой и оординатами концов заданного промежутка

Порядок выполнения задания.

создать функции:

1)ввода с клавиатуры параметров прямой: пары чисел (K,L) (функция GetKL());

2)ввода значений интервала изучения функции: пары чисел (A,B) (GetAB());

3)вычисления области изменения функции на оси OY (Y(A),Y(B))(функция

 CalcYAB(). Какое-то из этих значений будет минимумом, тогда другое –

 Максисумом

4)вычисления расстояние между точками (A,Y(A)) и (B, Y(B))по формуле

 

5)вычисления точки пересечения прямой с осью OX (функция Zero());

6)вычисления первообразной для уравнения прямой для вычисления площадей.   Проинтегрировав уравнение прямой получим первообразную:

+ const

(функция Fint())

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

# вводим параметры прямой (K,L)

KL      = GetKL()

# вводим границы интервала (А, В)

AB    = GetAB()

# вычисляем область изменения функции (Y(A),Y(B)) (вход – параметры функции и границы интервала)

YAB    = CalcYAB(line,limitX)

# вычисляем длину участка прямой

D = LineLen(AB, YAB)

# в зависимости от попадания нуля функции в интервал области аргументов

Вычисляем либо одно значение площади, либо два суммируем

Текст программы

# -*- coding: utf-8 -*-

# строка выше допускает кирилличные символы

# будут нужны математичесие функции

from math import *

# вводем характеристики линии

def GetKL():

   print "Задайте характеристики линии y = k*x+l в форме: (k,l}"

   return [float(raw_input("inclination =")),float(raw_input("shift ="))]

   

# вводим границы интервала

def GetAB():

   print "Задайте промежуток в форме: (left,right}"

   

   A = float(raw_input("left ="))

   B= float(raw_input("right ="))

   print "left,right: = ",A,',', B

   

   return [A, B]

# вычисляем значения функции на границах интервала (два первых значения)

# и в точке пересечения с осью oX (третье значение)

def CalcYAB(KL,AB):

   return [KL[0]*AB[0]+KL[1],KL[0]*AB[1]+KL[1]]

# Вычисляем длину участка линии на заданном интервале

def LineLen(AB, YAB):

   return sqrt((AB[1]-AB[0])**2+(YAB[1]-YAB[0])**2)

# Вычисляем точку пересечения прямой с осью oX

def Zero(KL):

   if ((abs(KL[0]))<0.1e-8):

       print "прямая вероятно параллельна оси OX"

       return None

   else:

       return -KL[1]/KL[0]

   

# вычисляем первообразную от линейной функции  k*x+l  

def Fint(KL,x):

   return 0.5*KL[0]*x*x+KL[1]*x

#==================================================================

# тело программы

#==================================================================

# задаем параметры прямой

KL      = GetKL()

print "(K,L) = ", KL

# задаем границы интервала определения

AB    = GetAB()

# вычисляем область изменения функции

YAB    = CalcYAB(KL,AB)

# вычисляем длину участка прямой

print "Длина участка прямой = ", LineLen(KL, AB)

# определяем минимальное и максимальное значения (на границах интервала)

min = YAB[0]

max = YAB[1]

if (min > max):

   min,max = max,min

print "на участке исследования: max = ", max, ", min = ", min

# Вычисляем координату нуля функции

zero = Zero(line)

print "координата нуля функции Х =", zero

# в зависимости от положения нуля вычисляем значения площадей

if((AB[2]<zero) or (zero >AB[1])):

   print "Нуль функции находится вне рассматриваемого участка"

   S = abs(Fint(KL, AB[1]) - Fint(KL, AB[0]))

   print "Значение искомой площади = ", S

else:

   print "Нуль функции находится внутри рассматриваемого участка"

   firstInt  = abs(Fint(KL, zero) - Fint(KL, AB[0]))

   secondInt = abs(Fint(KL, AB) - Fint(KL, zero))

   S = firstInt + secondInt

   print "Значение искомой площади = ", S

То же самое – через классы

# -*- coding: utf-8 -*-

from math import *

class Passport():

   

   def __init__(self,F='name'):

       self.F = F

       self._GetKL()

       self._GetAB()

       self.zero = self._ZeroY()

       

   def _GetKL(self):

       print "Задайте характеристики линии y = k*x+l в форме: (k,l}"

       self.K = float(raw_input("inclination ="))

       self.L = float(raw_input("shift ="))

       

   def _GetAB(self):

       print "Задайте промежуток в форме: (left,right}"

       self.A  = float(raw_input("left ="))

       self.B  = float(raw_input("right ="))

       

   def CalcLY(self):

       self.FA = self.K*self.A + self.L

       self.FB = self.K*self.B + self.L

        

   def LineLen(self):

       return sqrt((self.B-self.A)**2+(self.FB-self.FA)**2)

   def _ZeroY(self):

       return -self.L/self.K

       

   def _Fint(self,x):

       return 0.5*self.K*x*x+self.L*x

   

   def MinMax(self):

       min = self.FA

       max = self.FB

       if (min > max):

           min, max = max, min

       return (min, max)

   

   def Square (self):

       zero = self._ZeroY()

       if ((zero < self.A) or (zero > self.B)):

           S = abs(self._Fint(self.FB) - self._Fint(self.FA))

       else:

           firstInt  = abs(self._Fint(zero) - self._Fint(self.FA))

           secondInt = abs(self._Fint(self.FB) - self._Fint(zero))

           S = firstInt + secondInt

       return S




1. Реферат- Кран РДК-25-2
2. ОПОРА России направила тревожное письмо в комитет Госдумы по экономполитике и намерена обратиться к прези
3. Энциклопедия и методология истории прочитал в стенах Берлинского университета И
4. Реферат- Методы и условия культивирования изолированных клеток и тканей растений
5. КОНТРОЛЬНАЯ РАБОТА по дисциплине Конституционное право России Вариант 1 Выполнила- Студе
6.  Особливості світорозуміння людини часів Київської Русі [3] 2
7. Философия в системе культуры
8. Бухгалтерский учет Дистанционное обучени
9. Перед проведенням інфільтраційної анестезії хворому проведено пробу на чутливість до новокаїну яка виявил
10. В ряде случаев желательно чтобы кандидаты приходили в отдел кадров или на место будущей работы
11. а визначаємо горизонтальне і вертикальне переміщення її вільного кінця
12. Информатика п~нін о~ытуды~ алатын орны ерекше
13.  2012 г РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ Эстетика
14. І.Романченко тощо
15. это загадка и в основном загадка для самого себя1
16. Реферат- Таможенная политика
17. Тема 1. Сущность цели и задачи финансового менеджмента на предприятии Место финансового менеджмента в у
18. Робочий проект впорядкування території багаторічних насаджень Плавнівської сільської ради Ренійського району Одеської області
19. Курсовая работа- Проектирование сада и агротехнический уход за плодовыми насаждениями
20. это отношения между людьми группами людей по поводу производства распределения и потребления материальны