Программа которая находит корни квадратного уравнения питон

Встроенный модуль math в Python предоставляет набор функций для выполнения математических, тригонометрических и логарифмических операций. Некоторые из основных функций модуля:

  • pow(num, power) : возведение числа num в степень power
  • sqrt(num) : квадратный корень числа num
  • ceil(num) : округление числа до ближайшего наибольшего целого
  • floor(num) : округление числа до ближайшего наименьшего целого
  • factorial(num) : факториал числа
  • degrees(rad) : перевод из радиан в градусы
  • radians(grad) : перевод из градусов в радианы
  • cos(rad) : косинус угла в радианах
  • sin(rad) : синус угла в радианах
  • tan(rad) : тангенс угла в радианах
  • acos(rad) : арккосинус угла в радианах
  • asin(rad) : арксинус угла в радианах
  • atan(rad) : арктангенс угла в радианах
  • log(n, base) : логарифм числа n по основанию base
  • log10(n) : десятичный логарифм числа n

Пример применения некоторых функций:

Программа на Python для вычисления корней квадратного уравнения , написана с помощью ООП


import math # возведение числа 2 в степень 3 n1 = math.pow(2, 3) print(n1) # 8 # ту же самую операцию можно выполнить так n2 = 2**3 print(n2) # квадратный корень числа print(math.sqrt(9)) # 3 # ближайшее наибольшее целое число print(math.ceil(4.56)) # 5 # ближайшее наименьшее целое число print(math.floor(4.56)) # 4 # перевод из радиан в градусы print(math.degrees(3.14159)) # 180 # перевод из градусов в радианы print(math.radians(180)) # 3.1415. # косинус print(math.cos(math.radians(60))) # 0.5 # cинус print(math.sin(math.radians(90))) # 1.0 # тангенс print(math.tan(math.radians(0))) # 0.0 print(math.log(8,2)) # 3.0 print(math.log10(100)) # 2.0

Также модуль math предоставляет ряд встроенных констант, такие как PI и E:

import math radius = 30 # площадь круга с радиусом 30 area = math.pi * math.pow(radius, 2) print(area) # натуральный логарифм числа 10 number = math.log(10, math.e) print(number)

Источник: metanit.com

Квадратный корень числа в Python

В Python есть много способов найти квадратный корень числа.

Читайте также:
Партнерская программа париматч как пользоваться

Использование экспонентного оператора для извлечения квадратного корня числа

num = input(«Please enter a number:n») sqrt = float(num) ** 0.5 print(f’ square root is ‘)
Please enter a number: 4.344 4.344 square root is 2.0842264752180846 Please enter a number: 10 10 square root is 3.1622776601683795

Я использую встроенную функцию float() для преобразования введенной пользователем строки в число с плавающей запятой.

Функция input() используется для получения пользовательского ввода из стандартного ввода.

Математическая функция sqrt()

Функция sqrt() математического модуля Python – это рекомендуемый подход для получения квадратного корня из числа.

import math num = 10 num_sqrt = math.sqrt(num) print(f’ square root is ‘)

Квадратный корень из числа в Python

13.6 Корни уравнения. «Поколение Python»: курс для начинающих. Курс Stepik

Математическая функция pow()

Это не рекомендуемый подход. Но квадратный корень из числа равен степени 0,5.

>>> import math >>> >>> math.pow(10, 0.5) 3.1622776601683795 >>>

Квадратный корень комплексного числа

Как я могу решить уравнения в Python?

Скажем, у меня есть уравнение: 2x + 6 = 12 С алгеброй видно, что x = 3 . Как я могу сделать программу на Python, которая может решить для x ? Я новичок в программировании, и я смотрел на eval() и exec() , но я не могу понять, как заставить их делать то, что я хочу. Я не хочу использовать внешние библиотеки (например, SAGE), я хочу сделать это в простом Python.

user1221937 08 май 2012, в 16:09
Поделиться

Я хочу автомобиль, который делает 0 до 60 за 4,5 секунды и получает 45 миль на галлон. Может быть, вы могли бы рассмотреть возможность удаления требования для простого Python и использовать внешние библиотеки

Mike Pennington 08 май 2012, в 13:51

Если вы хотите решить какое-либо уравнение, вам придется создать свою собственную библиотеку. Также 4,5 секунды недостаточно для этого примера: D

Читайте также:
Как увеличить размер видео на компьютере быстро без программ

jamylak 08 май 2012, в 13:52
Будут ли проблемы всегда выглядеть так: solve y = mx + c for x ?
Li-aung Yip 08 май 2012, в 13:53
Li-aung Yip 08 май 2012, в 13:54

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

Lostsoul 08 май 2012, в 13:55
Mike Pennington 08 май 2012, в 13:56
это домашнее задание? или почему вы не хотите использовать внешние библиотеки?
Niek de Klein 08 май 2012, в 14:02
Показать ещё 5 комментариев
Поделиться:
calculator

5 ответов

Как насчет SymPy? Их solver выглядит так, как вам нужно. Посмотрите их исходный код, если вы хотите сами построить библиотеку.

eumiro 08 май 2012, в 15:16
Поделиться

Забавно видеть ответ, подобный этому, через несколько минут после всех глупых комментариев по этому вопросу: D

naught101 30 янв. 2015, в 02:30

Существует два способа подхода к этой проблеме: численно и символически.

Чтобы решить его численно, вы должны сначала закодировать его как функцию «runnable» — вставьте значение в значение, получите значение. Например,

def my_function(x): return 2*x + 6

Весьма возможно проанализировать строку для автоматического создания такой функции; скажем, разберите 2x + 6 в список, [6, 2] (где индекс списка соответствует мощности x — так 6 * x ^ 0 + 2 * x ^ 1). Тогда:

def makePoly(arr): def fn(x): return sum(c*x**p for p,c in enumerate(arr)) return fn my_func = makePoly([6, 2]) my_func(3) # returns 12

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

def dx(fn, x, delta=0.001): return (fn(x+delta) — fn(x))/delta def solve(fn, value, x=0.5, maxtries=1000, maxerr=0.00001): for tries in xrange(maxtries): err = fn(x) — value if abs(err) < maxerr: return x slope = dx(fn, x) x -= err/slope raise ValueError(‘no solution found’)

Читайте также:
Какие программы могут входить в поставку операционной системы для обеспечения ее отказоустойчивости

Здесь есть много потенциальных проблем — найти хорошее начальное значение x, считая, что функция фактически имеет решение (т.е. нет никаких однозначных ответов на x ^ 2 + 2 = 0), попав в пределы точность вычислений и т.д. Но в этом случае функция минимизации ошибок подходит и получается хороший результат:

solve(my_func, 16) # returns (x =) 5.000000000000496

Обратите внимание, что это решение не совсем, точно верно. Если вам нужно, чтобы это было идеально, или если вы хотите аналитически анализировать решения уравнений, вам нужно обратиться к более сложному зверю: символическому решателю.

Символьный решатель, такой как Mathematica или Maple, представляет собой экспертную систему с множеством встроенных правил ( «знаний» ) об алгебре, исчислении и т.д.; он «знает», что производная от sin is cos, что производная от kx ^ p равна kpx ^ (p-1) и т.д. Когда вы даете ему уравнение, он пытается найти путь, набор правил-приложений, откуда он (уравнение), туда, где вы хотите быть (простейшая форма уравнения, которое, мы надеемся, является решением).

Ваше примерное уравнение довольно простое; символическое решение может выглядеть так:

=> LHS([6, 2]) RHS([16]) # rule: pull all coefficients into LHS LHS, RHS = [lh-rh for lh,rh in izip_longest(LHS, RHS, 0)], [0] => LHS([-10,2]) RHS([0]) # rule: solve first-degree poly if RHS==[0] and len(LHS)==2: LHS, RHS = [0,1], [-LHS[0]/LHS[1]] => LHS([0,1]) RHS([5])

и есть ваше решение: x = 5.

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

Источник: overcoder.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru