Я пытаюсь найти трапецеидальную интеграцию группы данных, но она все время говорит:
File "D:/uni work/Sci programming/aps3.py", line 25, in trapz
x2 = x[i+1]
IndexError: index 1 is out of bounds for axis 0 with size 1'
Я изменил диапазон (n) на диапазон (n-1), но я все еще получаю ту же ошибку .
import numpy as np
solarfile = open('solar.dat','r',)
x1=[]#wavelength
y1=[]#irradiance
for theline in solarfile:
num = theline.split()
x1.append(float(num[0]))
y1.append(float(num[1]))
x=np.array([x1])
y=np.array([y1])
a = int(input("Please Enter the lower bound: "))
b = int(input("Please enter the upper bound: "))
if (a<np.argmin(x)):
a =np.argmin(x)
if (b>np.argmax(x)):
b =np.argmax(x)
n = b - a
def trapz(x,y,a,b):
traparray=[]
for i in range(n-1):
x1 = x[i]
x2 = x[i+1]
dx = x2-x1
y1 = y[i]
y2 = y[i+1]
dy = y2-y1
trap = ((y1*dx)+(0.5*(dy*dx)))
d = traparray.append(trap)
return (s)
print (trapz(x,y,a,b))
solarfile.close()
Я продолжаю пробовать вещи, но они не работают.