Code of Iterative method's test

I wrote a code to solve a linear system using Successive Relaxation Iterative method
but I don't know how to add the test and write its code
can anyone help me

4 comentarios

Image Analyst
Image Analyst el 12 de Jul. de 2014
How can you know enough to write the code for "Successive Relaxation Iterative method" but not know enough to write code to call the function with some input variables? Calling the function should be the easier of the 2 m-files to write. If you can wrote the function, you can write a 2 line program to call the function.
Fatima Al Marzoqi
Fatima Al Marzoqi el 12 de Jul. de 2014
yes I wrote ! and I face difficulties in wrote the test !
what's the problem ?
Jan
Jan el 12 de Jul. de 2014
Editada: Jan el 12 de Jul. de 2014
Which "test" do you mean? Please explain all required details. We cannot guess them.
Matt J
Matt J el 12 de Jul. de 2014
When you call the function with some sample input, do you get the output you expect? If so, what more is there to do?

Iniciar sesión para comentar.

Respuestas (2)

Roger Stafford
Roger Stafford el 12 de Jul. de 2014
It looks as though you might be testing to see if the square matrix, R, fails to be "diagonally dominant". If so, here is a method:
Ra = abs(R);
if any(sum(Ra,2)>2*diag(Ra))
display ('Test Failed')
end

4 comentarios

Fatima Al Marzoqi
Fatima Al Marzoqi el 12 de Jul. de 2014
but why if the test failed it display an error !
Roger Stafford
Roger Stafford el 12 de Jul. de 2014
Your comment puzzles me greatly, Fatima! To show that R is not diagonally dominant is to show that in at least one row of R the absolute value of the diagonal element is less than the sum of the remaining row elements. That is what my code does and I am guessing that is what you intended your code to do (though it does not succeed in this.) My guess of diagonal dominance was based both on your statement " for each row the on diagonal element must be greater than the rest elements " and on your code attempt. If you are trying to test for some other property, please tell us what that is.
Fatima Al Marzoqi
Fatima Al Marzoqi el 12 de Jul. de 2014
yes that what I want .. but it doesn't work with my code !
check please , I attach my code
Roger Stafford
Roger Stafford el 12 de Jul. de 2014
I don't see anything like my code in your 'proj.m' code. Where are you doing a test remotely resembling "any(sum(Ra,2)>2*diag(Ra))"? Nowhere do you have an 'any' command nor do you ever multiply anything by 2. You don't even have a 'sum' command!
If you want effective help here it would be best to explain your problem much more clearly than you have so far done. What precisely is your test supposed to accomplish and in what way is it related to the matrix you called 'R'?

Iniciar sesión para comentar.

Fatima Al Marzoqi
Fatima Al Marzoqi el 12 de Jul. de 2014
it is a loop that we apply for each row the on diagonal element must be greater than the rest elements
%Test
for i=1:4
for j=4:-1:1
if j~=i
S=sum(abs(R(i,j)));
end
end
if abs(R(i,i))<S
display ('Test Failed');
fprintf(fid,'Test Failed')
break
end
end

Categorías

Preguntada:

el 12 de Jul. de 2014

Comentada:

el 12 de Jul. de 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by