how to form tridiagonal matrix in matlab

1. 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? •

2. 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 •

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 •

4. 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. 5. 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(n) generate a nxn matrix with ones on its diagonal only.

Hope this helps.

Jack Originally Posted by jacobus 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(n) generate a nxn matrix with ones on its diagonal only.

Hope this helps.

leen87 •

6. Re: how to form tridiagonal matrix in matlab

Hi
You can use sparse matrix to assemble diagonal matrices

Hope this helps you
Rasha --[[ ]]--