How do I generate a matrix based on a formula?
1 view (last 30 days)
Show older comments
Jonathon
on 25 Apr 2011
Commented: Sam Harris
on 5 Oct 2019
I am currently trying to solve a system of equations and having a problem doing it with matlab. The most noteworthy problem is I don't want to enter the entire matrix manually as it would be massive. Could anyone tell me how to generate a matrix based on the formula?
The formula itself is as follows: -4T(i,j)+T(i+1,j)+T(i,j+1)+T(i-1,j)+T(i,j-1)= Known value
Effectively i and j are the points on a plain and the entire plain is 9x9.
A second question I have is how would I tell matlab that if i or j is 0 the value at that point is 0 as well as if i or j is 9 the value at that point is 0?
1 Comment
Accepted Answer
Sarah Wait Zaranek
on 25 Apr 2011
You can use backslash to solve this:
n = 9;
% Fill in the correct terms for your non-zeros values.
A =diag(-4*ones(n,1),0) + diag(ones(n-1,1),-1) + ...
diag(ones(n-1,1),1) + diag(ones(n-(sqrt(n)+1),1),sqrt(n)+1) +...
diag(ones(n-(sqrt(n)+1),1),-sqrt(n)-1) ;
b would be your known values in a 9x1 matrix. (List them by column all rows in a column and then move to the next column)
Solve by:
x=A\b
You need to worry about boundaries values when + or - j (or i) aren't defined. I ignored them here.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!