Matrix Population from formula

I have a i x j matrix that follows the formula....
[(u(i-1,j)-2*u(i,j)+u(i+1,j)/(.2^2)]-[(u(i,j)-u(i,j-1))/(.2)]=0
How do I populate a 6x6 matrix using this as the formula
I have the following boundary conditions: if i=1 u=0, if i=6 u=100, if j=1 u=0, if j=6 u=0.

3 comentarios

Torsten
Torsten el 20 de Nov. de 2024
Editada: Torsten el 20 de Nov. de 2024
If i goes from 1 to 6 and j goes from 1 to 6, the matrix will be 36 x 36 because you have 36 values u(i,j) to solve for.
The problem results in a linear system of equations of the form
A*U = b
with A being 36x36 and b being 36x1 that can be solved "in one go" using U = A\b.
You have to decide the order in which the U-vector is arranged (either you cycle through the i-j-grid row- or columnwise).
Since your equations show that you only have convection, but no diffusion in j-direction, you cannot impose a boundary condition for j = 6. The values for U at j = 6 emerge from the interior of the domain.
William Rose
William Rose el 20 de Nov. de 2024
The equation ofr u(i,j) looks like a second derivative with respect to i, minus a first derivative with respect to j, where the delta value equals 0.2 for the i and j directions.
Start with matrix u having the boundary conditons along the boundaries, and zero everywhere else. Or let the initial value be a linear gradienmt from 0 to 100 in the u direction. Then apply the equaitons for u(ij) inthe interior, once. See what you have. Then do it again, and again, and again. See if it is evloving twoard a constant value, or getting more oscillatory, or something else.
By the way, your boundary contions are problematic: Does u(6,6)=0 or 100?
Alexander
Alexander el 20 de Nov. de 2024
Editada: Alexander el 20 de Nov. de 2024
That is what this is. What would a code for this look like? u(6,6)= 100

Iniciar sesión para comentar.

Respuestas (1)

Saurabh
Saurabh el 20 de Nov. de 2024
Editada: Saurabh el 21 de Nov. de 2024

0 votos

I understand that you want to populate a 6x6 matrix using the given formula. In MATLAB, you can use the 'zeros' function to create a matrix of any size with initial values set to zero. You can then iterate over the matrix and apply the formula to each element.
And then explicitly assign the boundary condition later.
For more information on the 'zeros' function referred to the following documentation:
I hope this helps.

3 comentarios

Alexander
Alexander el 20 de Nov. de 2024
How do I apply that formual to each element? How do I make matlab recognize that i= rows and j= columns
John D'Errico
John D'Errico el 20 de Nov. de 2024
Editada: John D'Errico el 20 de Nov. de 2024
Just use a loop! Surely you can use a nested loops, over i and j? TRY IT! You will get better and more help if you make an effort.
Walter Roberson
Walter Roberson el 20 de Nov. de 2024
It seems to me that you would likely have to loop several times to get the matrix to settle down.
On the other hand, it looks like a matrix that is all zero satisfies the conditions.

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 20 de Nov. de 2024

Editada:

el 21 de Nov. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by