Форум программистов, компьютерный форум CyberForum.ru

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
селин
0 / 0 / 0
Регистрация: 22.09.2016
Сообщений: 11
#1

Решение уравнения и его график - Python

13.11.2016, 17:30. Просмотров 433. Ответов 1
Метки нет (Все метки)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from math import log
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
 
""" 
Дано диф.ур-е L"+2(L')^2=0
После замены L' на r: dr/dx=-2*(r)^2
Зададим вектор: c(L,r)
Получим систему уравнений
"""
def f(c,x) :
    L,r=c
    return [r,-2*(r**2)] 
    
""" Создаем массив точек интегрирования """    
i= np.arange (10,40,0.1) 
 
""" НУ(L(10)=1,L'(10)=1),выразим их через вектор """
c0 = [10,1] 
 
""" численное решение  """ 
sol = integrate.odeint(f,c0,i) 
 
""" Аналитическое решение L=(1/2)*ln(2x-19)+1 """
def f_an(x) :
    return 0.5*log(2*x-19)+1 
    
""" Аналитическое решение в массиве """    
an_sol = f_an(i) 
print(an_sol)
 
""" Добавляем в окно рисунок для числ. и ан.решений, и относ.погрешности""" 
my_fig = plt.figure() 
pic = my_fig.add_subplot(111) 
pic1 = my_fig.add_subplot(114)
 
""" Назовем рисунки """
pic.set_title("sol,an_sol")
pic1.set_title("Error")
 
""" Подписываем оси""" 
pic.set_xlabel("x", size=20)
pic.set_ylabel("y", size=20)
pic1.set_xlabel("x", size=20)
pic1.set_ylabel("y", size=20)
 
""" Рисуем графики """ 
p1,=pic.plot(i,sol,'r..o')
p2,=pic.plot(i,an_sol,'b--s')
p3,=pic1.plot(i, (sol-an_sol)/(an_sol))
 
""" Добавим легенду """
pic.legend([p1,p2],["sol","an_sol"],loc="upper left")
На выходе должны получиться 2 графика: на 1-м (числ.и анал.решения), а на 2-м относит.погрешность. Не могу понять, почему программа не выдает график??? Выдает ошибку TypeError: only length-1 arrays can be converted to Python scalars
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2016, 17:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение уравнения и его график (Python):

Решение квадратного уравнения - Python
Помогите найти ошибку import math a = int(input("Введите значение a= ")) b = int(input("Введите значение b= ")) c =...

Решение квадратного уравнения ах^2 + bx + c = 0 - Python
import math a = int(input("Введите значение a= ")) b = int(input("Введите значение b= ")) c = int(input("Введите значение c= ")) D...

Где-то ошибка, решение уравнения x^3+ax^2+bx+c = 0 - Python
Написал программу для вычисления корней x_{1}, x_{2}, x_{3} уравнения x^3+ax^2+bx+c = 0 По формуле тригонометрической Виета ...

Решение линейного уравнения с комплексными числами Python - Python
Здравствуйте, нужна помощь в написании функции для исчисления линейного уравнения ax^2+bx+c=0 Если дискриминант >=0 то проблем нет, а как...

решение заданного дифференциального уравнения,построить график полученного решения - MathCAD
решение заданного дифференциального уравнения, построить график полученного решения.

Найти решение заданного уравнения, построить график полученного решения - Matlab
Найти решение заданного уравнения, построить график полученного решения. Премного благодарен за помощь! Задание нужно сделать в MathCAD и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Лысанов Виталий
7 / 8 / 2
Регистрация: 24.01.2015
Сообщений: 78
Записей в блоге: 6
28.03.2017, 00:21 #2
Цитата Сообщение от селин Посмотреть сообщение
Выдает ошибку TypeError: only length-1 arrays can be converted to Python scalars
Ругается на log, хочет np.log

С графикой еще вопросы.
Код ниже начинает рисовать.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from math import log
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
 
""" 
Дано диф.ур-е L"+2(L')^2=0
После замены L' на r: dr/dx=-2*(r)^2
Зададим вектор: c(L,r)
Получим систему уравнений
"""
def f(c,x) :
    L,r=c
    return [r,-2*(r**2)] 
    
""" Создаем массив точек интегрирования """    
i= np.arange (10,40,0.1) 
 
""" НУ(L(10)=1,L'(10)=1),выразим их через вектор """
c0 = [10,1] 
 
""" численное решение  """ 
sol = integrate.odeint(f,c0,i) 
 
""" Аналитическое решение L=(1/2)*ln(2x-19)+1 """
def f_an(x) :
    return 0.5*np.log(2*x-19)+1 
    
""" Аналитическое решение в массиве """    
an_sol = f_an(i) 
 
plt.plot(i,sol)
plt.show()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2017, 00:21
Привет! Вот еще темы с ответами:

Найти решение заданного уравнения, построить график полученного решения - MathCAD
Найти решение заданного уравнения, построить график полученного решения. Заранее спасибо всем кто поможет.

Найти решение заданного дифференциального уравнения, построить график полученного решения - Matlab
Найти решение заданного дифференциального уравнения, построить график полученного решения. (dy/dx)+5*y=de/dx e(x)=exp(-x)-exp(-2*x) ...

Парсинг строки уравнения и его решение - Visual Basic
По заданию пользователь должен вводить любое линейное уравнение, а программа ее решать и выдавать ответ. Типо онлайн решения. С вводом...

Решение уравнения, нахождение середины его корней - Visual Basic .NET
Подскажите, есть задание (решить квадратное уравнение, найти середину отрезка между корнями, сгенерировать 20 чисел и выяснить какие числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru