Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 4
Регистрация: 07.01.2013
Сообщений: 35

Изменить работу с массивами (коэффициент корреляции, фазовые портреты)

28.03.2017, 16:07. Показов 956. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По заданию необходимо построить график для коэффициентов корреляции. Сами коэффициенты вычисляются на основе исходных массивов и массивов, у которых начальное значение отличается на 0,005 от исходных (рекурсивно от предыдущих).
График нужно построить по 10 значениям, т.е. грубо говоря, нужны 3 исходных массива и ещё 30 дополнительных.
Изначально переписывала код из Matlab в Python. Подскажите способ, как изменить код (на python), чтобы не заводить 30 массивов, или же как перевести из matlab в python код с упрощённой работой с массивами.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import sys
import math
import matplotlib.pyplot as plt
import array
import numpy as np
 
N=26000
dt = 0.01
al=7 
bet=9
gam=0
 
def h(x):
    m0 = -(8.0/7.0)
    m1 = -(5.0/7.0)
    return m1*x + 0.5*((m0-m1)*(abs(x+1) - abs(x-1))) 
 
x = [0]*N
y = [0]*N
z = [0]*N
t = [0]*N
xd = [0]*N
yd = [0]*N
zd = [0]*N
x2 = [0]*N
y2 = [0]*N
z2 = [0]*N
x3 = [0]*N
y3 = [0]*N
z3 = [0]*N
x4 = [0]*N
y4 = [0]*N
z4 = [0]*N
masx = []
x[0] = 0.01
y[0] = 0.02
z[0] = 0.15
 
for i in range(0,len(t)):
        t[i]=i*dt
 
for i in range(1,len(x)):
    x[i] = x[i-1] + al*dt*(y[i-1]-x[i-1]-h(x[i-1]))
    y[i] = y[i-1] + dt*(x[i-1]-y[i-1]+z[i-1])
        z[i] = z[i-1] + dt*(gam*z[i-1]-bet*y[i-1])
 
xd[0] = x[0]+0.005 
yd[0] = y[0]+0.005
zd[0] = z[0]+0.005
masx.append(xd[0])
 
for id in range(1,len(xd)):
    xd[id] = xd[id-1] + al*dt*(yd[id-1]-xd[id-1]-h(xd[id-1]))
    yd[id] = yd[id-1] + dt*(xd[id-1]-yd[id-1]+zd[id-1])
        zd[id] = zd[id-1] + dt*(gam*zd[id-1]-bet*yd[id-1])
 
x2[0] = xd[0]+0.005  
y2[0] = yd[0]+0.005
z2[0] = zd[0]+0.005
masx.append(x2[0])
 
for i2 in range(1,len(x2)):
        x2[i2] = x2[i2-1] + al*dt*(y2[i2-1]-x2[i2-1]-h(x2[i2-1]))
        y2[i2] = y2[i2-1] + dt*(x2[i2-1]-y2[i2-1]+z2[i2-1])
        z2[i2] = z2[i2-1] + dt*(gam*z2[i2-1]-bet*y2[i2-1])
 
x3[0] = x2[0]+0.005
y3[0] = y2[0]+0.005
z3[0] = z2[0]+0.005
masx.append(x3[0])
 
for i3 in range(1,len(x3)):
        x3[i3] = x3[i3-1] + al*dt*(y3[i3-1]-x3[i3-1]-h(x3[i3-1]))
        y3[i3] = y3[i3-1] + dt*(x3[i3-1]-y3[i3-1]+z3[i3-1])
        z3[i3] = z3[i3-1] + dt*(gam*z3[i3-1]-bet*y3[i3-1])
 
x4[0] = x3[0]+0.005
y4[0] = y3[0]+0.005
z4[0] = z3[0]+0.005
masx.append(x4[0])
 
for i4 in range(1,len(x4)):
        x4[i4] = x4[i4-1] + al*dt*(y4[i4-1]-x4[i4-1]-h(x4[i4-1]))
        y4[i4] = y4[i4-1] + dt*(x4[i4-1]-y4[i4-1]+z4[i4-1])
        z4[i4] = z4[i4-1] + dt*(gam*z4[i4-1]-bet*y4[i4-1])
 
#plt.xlabel(r'$t$') 
#plt.ylabel(r'$x,y,z$') 
#plt.title(r'$x(t),y(t),z(t)$')
#plt.grid(True) 
#plt.plot(t,x,t,y,t,z)
#plt.plot(t,xd,t,yd,t,zd)
#plt.plot(x,y)
#plt.plot(t,x,t,xd)
#plt.show()
c = np.corrcoef(x,xd)
r=[]
r.append(round(c[0,1],5))
c1 = np.corrcoef(x,x2)
r.append(round(c1[0,1],5))
c2 = np.corrcoef(x,x3)
r.append(round(c2[0,1],5))
c3 = np.corrcoef(x,x4)
r.append(round(c3[0,1],5))
print r
print masx
plt.plot(masx,r)
plt.show()
Код из matlab, где решена проблема с массивами (не 30 штук...), но непонятно как перевести в python.
Matlab M
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
function korel
delt=0.01;
t=0:delt:100;
m=length(t);
ch(1)=1e-6;
[x,y,z] = generate(0.001, 0.001, 0.001, m);
first=x;
hwait = waitbar(0,'Please wait...'); 
M = 10;
for k=1 : M
waitbar(k/M, hwait)
pause(0.01)
ch(k)=ch(1)*k;
[x,y,z] = generate(0.001+ch(k), 0.001, 0.001, m);
cc = corrcoef(first,x);
r(k) = cc(1,2);
fprintf('%d\n',r(k))
end
close(hwait)
plot(ch,r,'r');
end
function [x,y,z] = generate(x0, y0, z0, mN)
x(1)=x0;
y(1)=y0;
z(1)=z0;
A=7;
B=10;
Y=0;
m0=-8/7;
m1=-5/7;
dt=0.01;
m=mN;
for i=2 : m
h=m1*x(i-1)+(1/2)*(m0-m1 )*(abs(x(i-1)+1)-abs(x(i-1)-1));
x(i)=x(i-1)+dt*(A*(y(i-1)-x(i-1)-h));
y(i)=y(i-1)+dt*(x(i-1)-y(i-1)+z(i-1));
z(i)=z(i-1)+dt*(-B*y(i-1)+Y*z(i-1)); 
end
end
Заранее спасибо за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2017, 16:07
Ответы с готовыми решениями:

Фазовые портреты
Добрый вечер! Подскажите пожалуйста. Как объединить несколько фазовых портретов в один?

Фазовые портреты
Нужна помощь в построении фазового портрета для функции: x=; y=exp(-x)-sin(x); и для системы (на фото) Помогите,...

Фазовые портреты в Matlab
1)В Справочном пособии М.Тынкевича www.exponenta.ru/educat/systemat/pimonov/matlab/syst/glava8.asp описан метод построения фазовых...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2017, 16:07
Помогаю со студенческими работами здесь

Нарисовать фазовые портреты в maple
Здравствуйте!помогите пожалуйста нарисовать фазовые портреты для решения системы из трех дифференциальных уравнений первого порядка.

Нарисуйте фазовые портреты дифференциального уравнения
Помогите пожалуйста я не знаю как выполнить 2. Пусть \frac{dx}{dt} = x({x}^{6} - 2{x}^{3} + r) дифференциальное уравнение,...

Построить переходные процессы и фазовые портреты u1 u2 u3
построить переходные процессы и фазовые портреты u1 u2 u3 я вроде почти сделал но я не могу вывести графики на экран их 6 должно быть....

Фазовые портреты в Mathcad или других программах
Здравствуйте. Пожалуйста, может кто выручить начертить фазовые портреты в программе, уже решенной системы. Ниже представляю решение...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru