How do I generate a matrix based on a formula?

1 vue (au cours des 30 derniers jours)
Jonathon
Jonathon le 25 Avr 2011
Commenté : Sam Harris le 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 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

Sarah Wait Zaranek
Sarah Wait Zaranek le 25 Avr 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.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by