Strona 1 z 1

Gdzie jest bład?(matlab)

: 15 kwie 2019, o 20:28
autor: aks123

Kod: Zaznacz cały

p0=(2*(10^(-5)))^2;
t0=1;
deltat=0.5;
A=[40.52
41.18
43.65
46.25
49
51.82
53.97
55.82
57.38
57.92
57.95
57.65
57.02
56.17
55.35
54.59
53.81
52.83
51.53
49.99
48.13
46.05
43.93
41.84
39.78
37.67
35.57
33.61
]
d=length(A);
k=A(1,:); %%wyswietla pierwsza wartosc z kolumny, czyli pierwszy wiersz
k2=A(2,:);%%wyswietla druga wartosc z kolumny, czyli drugi wiersz
Ea=((p0)*deltat*(10^(0.1*(k))));

for i=1:27
    km=A(i+1,:);
    disp(km);
    Ea=Ea+((p0)*deltat*(10^(0.1*(km))));    
   disp(Ea)
end

disp('Poziom ekspozycji wynosi: ');
disp(Ea)
Powyżej mój program, który napisałem. Program miał liczyć ekspozycja akustyczną. Wzór na daną ekspozycję to Ea=p0*t0*suma(10^(0,1*Lpa).
Wektor A zawiera wartości Lpa. Pierwszy element macierzy zapisałem jako k=A(1,:). Nastepnie napisałem wzór na Ea z użyciem pierwszego elementu. Zadaniem programu było sumowanie po kolei Ea z każdym elementem macierzy. Do tego celu zastosowałem pętle for od i=1:27. Nastepnie km=A(i+1,:). Ostateczny wzor na sume czyli Ea=Ea(wartosc poczatkowa z k)+((p0)*deltat*(10^(0,1*km))).
Program miał dodawać kolejne wartości. Moje pytanie jest następujące. Dlaczego program od 15 wiersza wyświetla tą samą wartość Ea. Na początku działa dobrze(sprawdzałem z kalkulatorem), ale potem się zawiesza. Czy ktoś wie jak to rozwiązać?