Προς το περιεχόμενο

Project στο Unix


a35_13588

Προτεινόμενες αναρτήσεις

6. Επίλυση συστήματος ΝχΝ γραμμικών εξισώσεων με την μέθοδο του αντίστροφου πίνακα

Το Project αυτό συνίσταται στην κατασκευή ενός προγράμματος σεναρίου κελύφους, για την

επίλυση συστημάτων 3 γραμμικών εξισώσεων με 3 αγνώστους. Η γενικευμένη μορφή του

συστήματος εξισώσεων είναι :

A x X = B

όπου Α είναι η μήτρα (πίνακας) συντελεστών των αγνώστων διαστάσεων 3x3, Χ είναι η μήτρα

των αγνώστων διαστάσεων 1x3 και Β είναι η μήτρα των σταθερών όρων διαστάσεων 3x1.

Το σύστημα αυτό των γραμμικών εξισώσεων να επιλυθεί με τη μέθοδο :

1. Μέθοδος της αντίστροφης μήτρας

A x X = B ⇒ Χ = Α-1 x B

Η αντίστροφη μήτρα βρίσκεται με την μέθοδο Gauss-Jordan ή με τον παρακάτω τρόπο:

Αν |Α| ≠0, τότε A-1=

   

   

13 23 33

12 22 32

11 21 31

1

Α Α Α

Α Α Α

Α Α Α

Α

, όπου π.χ. Α21 είναι η ελάσσονα ορίζουσα της 2ης

γραμμής και της 1ης στήλης του πίνακα Α.

Η εφαρμογή θα πρέπει να επιτρέπει στον χρήστη να εισάγει τους συντελεστές των εξισώσεων

(μήτρες Α και Β).

Επίσης η εφαρμογή θα πρέπει να ελέγχει στην πορεία του αλγορίθμου για το κατά πόσο το

σύστημα των εξισώσεων είναι συμβιβαστό, δηλαδή έχει μία λύση, ή το άν έχει απειρία λύσεων.

 

Αυτό είναι το Project για το οποίο χρειάζομαι βοήθεια. Πρέπει να χρησιμοποιήσω awk αλλά τα βιβλία που διάβασα δε με βοήθησαν καθόλου. Αν μπορεί κάποιος να μου πει τα βασικά για να κάνω πράξεις ή να μου υποδείξει κάποιο link για να δω παρόμοιο script. Ευχαριστώ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχικά πρέπει να ρίξεις μια ματιά στα εξής:

 

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

http://tldp.org/LDP/abs/html/

 

για να δεις περίπου τι μπορείς να κάνεις από άποψη, μεταβλητών, loop, ελέγχων κτλ. Σε αυτά τα howto θα βρεις επίσης και βοήθεια για τη σύνταξη της awk καθώς και παραδείγματα.

Επειδή Unix έχω χρησιμοποιήσει 1-2 φορές, κρατώ μια επιφύλαξη για το αν ισχύουν τα παραπάνω howtos και σε sh shell που φαντάζομαι θα θες να το γράψεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τα έχω βρει αυτά αλλά δε βοηθήθηκα. Θέλω απλά να μάθω πως μπορώ να κάνω έστω ένα απλό script που να διαβάζει πχ 2 αριθμούς και να τους διαιρεί. Αν καταλάβω αυτό μετά θα πάρω μπρος. Ευχαριστώ πάντως για τη βοήθεια.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τα έχω βρει αυτά αλλά δε βοηθήθηκα. Θέλω απλά να μάθω πως μπορώ να κάνω έστω ένα απλό script που να διαβάζει πχ 2 αριθμούς και να τους διαιρεί. Αν καταλάβω αυτό μετά θα πάρω μπρος. Ευχαριστώ πάντως για τη βοήθεια.

 

Ορίστε:

 

>#!/bin/sh

echo Enter first number:
read FIRST
echo Enter second number:
read SECOND

echo Result is:
echo $FIRST / $SECOND | bc -l

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μάλλον θες awk script, γιατί αν δεν κανω λαθος σε shell script δε μπορεις να διαχειριστείς μεταβλητές πέρα από ακέραιους και χαρακτήρων. Για ρίξε μια ματιά σε αυτό που έφτιαξα:

>
#!/bin/awk -f
BEGIN {
  print "Type first row (numbers seperated by space)";
}
{
   print "The division of the first two numbers", $1,$2 " is ", $1/$2;
   print "Enter next row.... (Press CTRL+D when done)"
}
END {
   print "Done";
}

 

 

 

http://www.grymoire.com/Unix/Awk.html

http://www.vectorsite.net/tsawk.html

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δοκίμασα το πρώτο που μου είπες και δούλεψε. Το πρόβλημα είναι ότι το αποτέλεσμα δεν μπορεί να αποδωθεί σε κάποια μεταβλητή. Όσο για το δεύτερο θα πρέπει απ'οτι κατάλαβα να πληκτρολογώ εγώ κέθε φορά την ακολουθία αριθμών και τελεστών και δε νομίζω ότι μου κάνει. Έχω βάλει από την αρχή να διαβάζει τους αριθμούς και κατευθείαν να βγάζει το αποτέλεσμα χωρις καμία άλλη παρέμβαση του χρήστη πχ να μην χρειάζεται να δίνει κάτι άλλο πέρα από τους αρχικούς τελεστές. Ευχαριστώ πολύ πάντως για τον κόπο σου!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...