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

Εργασια με μεθοδο jacobi σε matlab!Υπαρχει προβλημα!


pigoy

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

Δημοσ.

παιδια γεια σας!θελω την βοηθεια σας!Εχω μια εργασια που πρεπει να την λυσω με την μεθοδο jacobi!οποιος σχετικος ας με βοηθησει οποιος σχετικος με το θεμα ευχαριστω`!

 

Η ασκηση λεει

function [x,iter]=jacobi(A,b,x0,eps)

ως εισοδο δινουμε τον πινακα Α,το διανυσμα β,μια αρχικη εκτιμηση της λυσης x0 και την επιθυμητη ακριβεια eps και θα μας επιστρεφει την λυση x και τον αριθμο των επαναληψεων που απαιτηθηκαν iter.

 

Εγω την ελυσα καπως ετσι:

>

function [x,iter]=jacobi(x0,A,b,eps)
[m,n]=size(A);
k=length(;
norm=1;
iter=0;
if m~=n
error('o pinakas den einai tetragonikos');
elseif k~=n
error('oi grammes ou b den einai idies me tis grammes tou A');
end
while norm>eps
for i=1:n
x(i)=b(i);
for j=1:i-1
x(i)=x(i)-A(i,j)*x0(j);
end
for j=i+1:n
x(i)=x(i)-A(i,j)*x0(j);
end
x(i)=x(i)*A(i,i);
end
norm=sqrt(sum((x-x0).^2));
iter=iter+1;
x0=x;
end

Και δεν μπορω να βρω ακρη!οποια βοηθεια δεκτη!

Δημοσ.
Τα for-loops δεν χρειάζονται, γράφεις MATLAB και οχι C. Τι εννοείς δεν βγάζεις άκρη; Που είναι το πρόβλημα σου; :-)

 

 

 

 

Χρειαζονται τα for-loops!Απλα οταν την τρεχω μου βγαζει λαθος το οποιο λεει:attempted to access x0(2);index out of bounds because nume1(x0)=1!

 

Εγω εδωσα διαφορες τιμες στο χ0 αλλα παλι τα ιδια!ΔΗλαδη πρεπει να την τρεξω καπως διαφορετικα?εγω την τρεχω ετσι: [x,iter]=jacobi(1,A,b,0.01) οπου Α,b τα εχω ορισει!

Δημοσ.
Χρειαζονται τα for-loops!Απλα οταν την τρεχω μου βγαζει λαθος το οποιο λεει:attempted to access x0(2);index out of bounds because nume1(x0)=1!

 

Εγω εδωσα διαφορες τιμες στο χ0 αλλα παλι τα ιδια!ΔΗλαδη πρεπει να την τρεξω καπως διαφορετικα?εγω την τρεχω ετσι: [x,iter]=jacobi(1,A,b,0.01) οπου Α,b τα εχω ορισει!

 

Ο κώδικας μπορεί να γραφεί χωρίς for-loops! Αν γράψεις MATLAB (και όχι σαν να γράφεις C) και κάνεις χρήση πινάκων δεν χρειάζονται τα for-loops! :-)

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

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

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