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 commentaire

Sam Harris
Sam Harris le 5 Oct 2019
I have a similar problem! Did you figure it out in the end?

Connectez-vous pour commenter.

 Réponse acceptée

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.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by