Continue to Site

# how to form tridiagonal matrix in matlab

Status
Not open for further replies.

#### ramani

##### Member level 4
tridiagonal matrix matlab

hi to all,

what is the syntax used in matlab to form tridiagonal matrix from the available lower,main and upper diagonal elements.

if i use T1=diag(md1)+diag(ld1,-1)+diag(ud1,1);,
it is not working for 2×2 tridiagonal matrix.
for 2×2 tridiagonal matrix all elements should present.

is there any matlab program available for this?

matlab tridiagonal matrix

I think that statement is OK, if our understanding is the same
example:
diag([1,2])+diag(1,-1)+diag(2,1)

ans =

1 2
1 2

?diag([1,2,3])+diag([1,2],-1)+diag([1,2],1)

ans =

1 1 0
1 2 2
0 2 3

matlab tridiagonal

but if i use the expression shown below it gives the wrong answer.

diag(1)+diag(1,-1)+diag(1,1)

ans =

1 2
2 1

tridiagonal matlab

hello
the first diag in your statement just generates a constant 1
which means, it just plus 1 to the sum(diag(1,-1), diag(1,1))
you may see it from the following:
diag(1)

ans =

1

?diag(1,-1)

ans =

0 0
1 0

?diag(1,1)

ans =

0 1
0 0

so you have to specify the all the diagnal elements in you matrix
just like this
diag([1,1])
or
diag([1,0])
then it will be OK.

Re: tridiagonal matlab

You may also use :

for k=1:20;

for i=2:n-1;
for j=1:n
if (j==i-1)
elseif (j==i)
elseif (j==i+1)
else
M(i,j)=0;
end
end
end

end

and Eye generate a nxn matrix with ones on its diagonal only.

Hope this helps.

Jack

hello
the first diag in your statement just generates a constant 1
which means, it just plus 1 to the sum(diag(1,-1), diag(1,1))
you may see it from the following:
diag(1)

ans =

1

?diag(1,-1)

ans =

0 0
1 0

?diag(1,1)

ans =

0 1
0 0

so you have to specify the all the diagnal elements in you matrix
just like this
diag([1,1])
or
diag([1,0])
then it will be OK.

- - - Updated - - -

From older post : on 10/05/2013, 01:30PM, leen87 posted :

You may also use :

for k=1:20;

for i=2:n-1;
for j=1:n
if (j==i-1)
elseif (j==i)
elseif (j==i+1)
else
M(i,j)=0;
end
end
end

end

and M=Eye generate a nxn matrix with ones on its diagonal only.

Hope this helps.

leen87

Hi
You can use sparse matrix to assemble diagonal matrices

Hope this helps you
Rasha

Status
Not open for further replies.