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 Comments

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.
yes I wrote ! and I face difficulties in wrote the test !
what's the problem ?
Jan
Jan on 12 Jul 2014
Edited: Jan on 12 Jul 2014
Which "test" do you mean? Please explain all required details. We cannot guess them.
When you call the function with some sample input, do you get the output you expect? If so, what more is there to do?

Sign in to comment.

Answers (2)

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 Comments

but why if the test failed it display an error !
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.
yes that what I want .. but it doesn't work with my code !
check please , I attach my code
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'?

Sign in to comment.

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

Categories

Asked:

on 12 Jul 2014

Commented:

on 12 Jul 2014

Community Treasure Hunt

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

Start Hunting!