Vold
Πολύ δραστήριο μέλος
Το ερώτημα μου είναι αν το ολοκλήρωμα του σταθερού όρου θα κάνει (πάντα) μηδέν ή ανάλογα με την περίσταση...
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
unπαικτable
Πολύ δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 209912
Επισκέπτης
Θέλω να αναπαραστήσω σε ένα πρόγραμμά μου την κίνηση ενός αντικειμένου που μοιάζει με το παραπάνω γράφημα. Γνωρίζει κάποιος αν υπάρχει κάποια μαθηματική τεχνική που να μου επιτρέπει να παράγω την αλγεβρική μορφή μιας συνάρτησης από τη γραφική παράστασή της?
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
unπαικτable
Πολύ δραστήριο μέλος
Το Α αμα θες αρκετες επαναληψεις, βαλτο κανα 0.05.
Παντως δε νομιζω να υπαρχει μεθοδος(ή καλυτερα εγω δε ξερω κατι τετοιο) ωστε απο γραφικη παρασταση να πας σε αναλυτικη εκφραση της συναρτησης.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 209912
Επισκέπτης
Η παρακατω συναρτηση νομιζω σε καλυπτει(ειναι και συνεχης, ειναι και παραγωγισιμη αμα το χρειαστεις).
Το Α αμα θες αρκετες επαναληψεις, βαλτο κανα 0.05.
Thanks. Θα το δοκιμάσω να δω πως συμπεριφέρεται. Εγώ σκέφτηκα να αναλύσω την συνάρτηση σε δύο υποσυναρτήσεις, καθώς ένα σημείο Π έχει δύο συντεταγμένες (x,y).
Έτσι πήρα την χ(t) = +-t και την y(t) = 1/χ * |ημt|. η πρώτη συνάρτηση θα μετακινεί το σημείο αριστερά ή δεξιά στον άξονα ενώ η δεύτερη θα το μετακινεί πάνω ή κάτω με φθίνον πλάτος. Έτσι όταν αυτές οι δύο κινήσεις συνδυαστούν θα παράγουν ημιτονοειδείς καμπύλες.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
unπαικτable
Πολύ δραστήριο μέλος
Thanks. Θα το δοκιμάσω να δω πως συμπεριφέρεται. Εγώ σκέφτηκα να αναλύσω την συνάρτηση σε δύο υποσυναρτήσεις, καθώς ένα σημείο Π έχει δύο συντεταγμένες (x,y).
Έτσι πήρα την χ(t) = +-t και την y(t) = 1/χ * |ημt|. η πρώτη συνάρτηση θα μετακινεί το σημείο αριστερά ή δεξιά στον άξονα ενώ η δεύτερη θα το μετακινεί πάνω ή κάτω με φθίνον πλάτος. Έτσι όταν αυτές οι δύο κινήσεις συνδυαστούν θα παράγουν ημιτονοειδείς καμπύλες.
Και εγω με τη λογικη της φθινουσας ταλαντωσης το πηγα απλα εβαλα και το τετραγωνο ωστε να εχω μονο θετικους αριθμους.
Οταν βγαλεις συμπερασμα πες απο περιεργια, τι εβγαλες.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
KeepDreaming!
Δραστήριο μέλος
Μας έβαλε ο καθηγητής κάτι ασκήσεις προς παράδοση και δεν ξέρω τι να κάνω...
Έχει κανείς ιδέα από στατιστική να βοηθήσει;
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
unπαικτable
Πολύ δραστήριο μέλος
Καλησπέρα, εχω μάθημα στατιστικής στη σχολή και το έχω παρατήσει λίγο οπότε δεν καταλαβαίνω και πολλά!
Μας έβαλε ο καθηγητής κάτι ασκήσεις προς παράδοση και δεν ξέρω τι να κάνω...
Έχει κανείς ιδέα από στατιστική να βοηθήσει;
Αμα ανεβασεις περιπου τι σας εχει βαλει ισως μπορεσω να βοηθησω.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
presvis
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
KeepDreaming!
Δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
presvis
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Ασκηση 1
! bgazei lathos limits ara lathos methodos
PROGRAM ask1
IMPLICIT NONE
DOUBLE PRECISION :: int, X, B
INTEGER :: n, k, ITER, EVAL
DOUBLE PRECISION, PARAMETER :: TOLER = 1D-7
INTERFACE
FUNCTION simpson( a, b, n)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: a, b
INTEGER, INTENT (in) :: n
DOUBLE PRECISION :: simpson
INTERFACE
FUNCTION f(x)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
END FUNCTION simpson
END INTERFACE
INTERFACE
SUBROUTINE BISECT(A, B, TOLER, X, ITER, EVAL)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: A, B ! Initial limits
DOUBLE PRECISION, INTENT (in) :: TOLER ! Tolerance
DOUBLE PRECISION, INTENT (out) :: X ! Final approximation
INTEGER, INTENT (out) :: ITER ! Number of iterations needed
INTEGER, INTENT (out) :: EVAL ! Number of function evaluations
INTERFACE
FUNCTION simpson( a, b, n)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: a, b
INTEGER, INTENT (in) :: n
DOUBLE PRECISION :: simpson
INTERFACE
FUNCTION f(x)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
END FUNCTION simpson
END INTERFACE
END SUBROUTINE BISECT
END INTERFACE
CALL BISECT(-2.0d0, 2.0d0, TOLER, X, ITER, EVAL)
PRINT *, "X is ", X, " by bisection method, in ", ITER, &
" iterations and ", EVAL, " function evaluations"
END PROGRAM ask1
FUNCTION simpson( a, b, n)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: a, b
INTEGER, INTENT (in) :: n
DOUBLE PRECISION :: simpson
INTERFACE
FUNCTION f(x)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
INTEGER :: i
DOUBLE PRECISION :: x, sum1, sum2, h, sum
h = (b-a) / n
sum1 = 0.0d0
DO i= 1,n-1,2
x = a + i * h
sum1 = sum1 + f(x)
ENDDO
sum2 = 0.0d0
DO i= 2,n-2,2
x = a + i * h
sum2 = sum2 + f(x)
ENDDO
sum = f(a) + f(b) + 4.0d0 * sum1 + 2.0d0 * sum2
simpson = sum * h / 3.0d0
END FUNCTION simpson
FUNCTION f(x)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x
DOUBLE PRECISION :: f
f = (COS(x)+SIN(X)) / SQRT(1 - (x**2 / 4))
END FUNCTION f
! Bisection method
SUBROUTINE BISECT(A, B, TOLER, X, ITER, EVAL)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: A, B ! Initial limits
DOUBLE PRECISION, INTENT (in) :: TOLER ! Tolerance
DOUBLE PRECISION, INTENT (out) :: X ! Final approximation
INTEGER, INTENT (out) :: ITER ! Number of iterations needed
INTEGER, INTENT (out) :: EVAL ! Number of function evaluations
DOUBLE PRECISION :: F
INTERFACE
FUNCTION simpson( a, b, n)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: a, b
INTEGER, INTENT (in) :: n
DOUBLE PRECISION :: simpson
INTERFACE
FUNCTION f(x)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
END FUNCTION simpson
END INTERFACE
DOUBLE PRECISION :: X1, X2, F1, F2, FX
X1 = A
X2 = B
EVAL = 2
F1 = simpson( 0.0d0, X1, 512)
F2 = simpson( 0.0d0, X2, 512)
!
IF (F1 * F2 >= 0.0D0) THEN
PRINT *, "Limits are wrong"
RETURN
ENDIF
ITER = 0
DO
X = (X1 + X2) / 2.0D0
FX = simpson( 0.0d0, X, 512)
EVAL = EVAL + 1
ITER = ITER + 1
! Check if root is found
IF (ABS(FX) < TOLER) EXIT
! new limits
IF (F1 * FX > 0.D0) THEN
X1 = X
F1 = FX
ELSE
X2 = X
F2 = FX
END IF
ENDDO
END SUBROUTINE BISECT
Ασκηση2
PROGRAM ask2
IMPLICIT NONE
DOUBLE PRECISION, PARAMETER :: xinit=0.0d0, xfin=72.0 * 4*atan(1.D0)/ 180d0, h = 0.002d0
DOUBLE PRECISION, PARAMETER :: yinit = (5.0d0)
DOUBLE PRECISION :: xold, yold, xnew, ynew
INTERFACE
FUNCTION f(x,y)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x, y
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
xold = xinit
yold = yinit
DO
CALL rk3(xold,yold,h,f,xnew,ynew)
xold = xnew
yold = ynew
IF (xnew >= xfin) EXIT
ENDDO
PRINT *, xnew, "rad/s"
END PROGRAM ask2
SUBROUTINE RK3(X, Y, H, F, XNEW, YNEW)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x, y, h
DOUBLE PRECISION, INTENT (out) :: xnew, ynew
INTERFACE
FUNCTION f(x,y)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x, y
DOUBLE PRECISION :: f
END FUNCTION f
END INTERFACE
DOUBLE PRECISION :: k1, k2, k3
k1 = h * f(x,y)
k2 = h * f(x+h/2.0d0, y+k1/2.0d0)
k3 = h * f(x+h,y-k1+2.0d0*k2)
ynew = y + (k1+4*k2+k3)/6.0d0
xnew = x + h
END SUBROUTINE rk3
FUNCTION f(x,y)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: x, y
DOUBLE PRECISION :: f
f = -SIN(y)
END FUNCTION f
Ασκηση3
!den prolava na midenisw tous paragegous
PROGRAM ask3
IMPLICIT NONE
DOUBLE PRECISION,ALLOCATABLE:: c(:,:),a(:),x(:),y(:),res(:)
DOUBLE PRECISION :: V
INTEGER,ALLOCATABLE:: tx(:)
INTEGER:: n=2.8,nn=10
INTEGER:: i,j,status
DOUBLE PRECISION:: sx,sx2,sx3,sx4,sy,sxy,sx2y,a0,a1,a2,xx(1),yy(1)
INTERFACE
SUBROUTINE TRIANG(A, B)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (inout) :: A(:,:), B(:)
END SUBROUTINE TRIANG
SUBROUTINE BACKSU(A, B, X)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: A(:,:), B(:)
DOUBLE PRECISION, INTENT (out) :: X(:)
END SUBROUTINE BACKSU
SUBROUTINE PRINT_MATRIX(A)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: A(:,:)
END SUBROUTINE PRINT_MATRIX
END INTERFACE
ALLOCATE(c(n,n+1),a(n),x(nn),y(nn),res(n))
! pinakas r
x=[2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6]
! pinakas V
y=[1.403,-1.188,-2.470,-2.633,-2.560,-2.304,-1.988,-1.668,-1.374,-1.117]
! Edw dinoume diafora simeia pou zitame ti timi tis V.
xx=[0.0]
sx=0
sx2=0
sx3=0
sx4=0
sy=0
sxy=0
sx2y=0
DO i=1,10
sx=sx+x(i)
sx2=sx2+x(i)**2
sx3=sx3+x(i)**3
sx4=sx4+x(i)**4
sy=sy+y(i)
sxy=sxy+x(i)*y(i)
sx2y=sx2y+(x(i)**2)*y(i)
END DO
c(1,1)=nn
c(1,2)=sx
c(1,3)=sx2
c(2,:)=[sx,sx2,sx3]
c(3,:)=[sx2,sx3,sx4]
a(1)=sy
a(2)=sxy
a(3)=sx2y
CALL TRIANG(C, A)
CALL BACKSU(C, A, RES)
V = RES(1) / x^12 - RES(2) / x^6
print*
print*," Oi suntelestes tou poluwnumou"
print*, "a=",RES(1),"b=",RES(2)
print *, V
print*
!Ypologismos tou poluwnumou sta zitoumena simeia
DO i=1,1
yy(i)=RES(1)+RES(2)*xx(i)+RES(3)*xx(i)**2
END DO
END PROGRAM ask3
SUBROUTINE TRIANG(A, B)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (inout) :: A(:,:), B(:)
INTEGER :: N, I, K
DOUBLE PRECISION :: G
N = SIZE(B)
DO K=1, N-1
DO I=K+1, N
G = -A(I,K) / A(K,K)
A(I,K:N) = A(I,K:N) + A(K,K:N) * G
B(I) = B(I) + B(K) * G
ENDDO
ENDDO
END SUBROUTINE TRIANG
SUBROUTINE BACKSU(A, B, X)
IMPLICIT NONE
DOUBLE PRECISION, INTENT (in) :: A(:,:), B(:)
DOUBLE PRECISION, INTENT (out) :: X(:)
INTEGER :: I, N
N = SIZE(B)
DO I = N,1,-1
X(I) = (B(I) - DOT_PRODUCT(A(I,I+1:N), X(I+1:N)) ) / A(I,I)
ENDDO
END SUBROUTINE BACKSU
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Συνημμένα
Guest 209912
Επισκέπτης
2) Να σε βοηθήσουμε με τι ακριβώς? Που είναι το λάθος στον κώδικα που θες βοήθεια?
3) Γιατί κάνετε Fortran lol.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Δεν βγαζει σωστα αποτελεσματα και αν μπορεις η εσυ η κανας αλλος να μου πει γιατι !!!
Τωρα γιατι κανουμε fortran αστο...Μεγαλη βλακεια
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 209912
Επισκέπτης
Χώρισε καταρχάς το τον κώδικά σου σε κομμάτια και κάνε εκτύπωση του αποτελέσματος μετά από κάθε κομμάτι. Δηλαδή στην πρώτη άσκηση που υπολογίζεις το ολοκλήρωμα μην κοιτάς απλά το τελικό αποτέλεσμα, αλλά δες αν γίνονται σωστά τα ενδιάμεσα στάδια και πήγαινε βήμα βήμα μέχρι να βρεις σε ποιο σημείο αρχίζει ο κώδικας να βγάζει λάθος output.
Βάλε επίσης και τον κώδικα των διαφορετικών ασκήσεων μέσα σε spoiler tags για να μπορώ να κλέινω την 2 και την 3 και να είναι έτσι πιο ευανάγνωστος ο κώδικας.
Αν μπορέσεις να περιορίσεις κάπως την πηγή του προβλήματος, δηλαδή να μου πεις πως το πρόβλημα είναι σε μια συγκεκριμένη υπορουτίνα θα το κοιτάξω περισσότερο.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
akikos
Επιφανές μέλος
https://www.tutorialspoint.com/compile_fortran_online.php
F1 = simpson( 0.0d0, X1, 512)
F2 = simpson( 0.0d0, X2, 512)
IF (F1 * F2 >= 0.0D0) THEN
PRINT *, "Limits are wrong"
RETURN
ENDIF
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Σπαω το κεφαλι μου να δω πως γινεται
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
unπαικτable
Πολύ δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Ευλιγιστούλης
Νεοφερμένος
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 209912
Επισκέπτης
Καλησπέρα σε όλους. Έχω μια απορια τα μαθηματικα και θα ευχαριστουσα οποιον βοηθουσε. Να υπολογιστει με ακριβεια 0,005 το αριθμητικο αποτελεσμα που αντιστοιχει στην σειρα Σ(ν=1 μεχρι απειρο) 1/ν^2
Υπολογίζεις τι 1 + 1/4 + 1/8 + 1/16 + .... μέχρι το άθροισμα αυτό να φτάσει π.χ. σε 1.405 αν φτάσεις στο 1.4054 έχεις ξεπεράσει την απαιτούμενη ακρίβεια.
Σημείωση: Το μήνυμα αυτό γράφτηκε 8 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Χρήστες Βρείτε παρόμοια
-
Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:Tα παρακάτω 4 μέλη διάβασαν αυτό το θέμα:
-
Φορτώνει...
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.