# Thread: tridiagonal system

1. ## tridiagonal system

I need a method for solving a linear system (x1..xn) of type

x1*(k11+k12/(x1+x2+..xn)) x2*k13 x3*k14 ....
... x2*(k22+k23/(x1+x2+..xn)) x3*k24 ....
... ..... x3*(k34+k35/(x1+x2+..xn)) x4*k36

and so on, size about 400 x 400 elements,
I am unable to find a solution with Thomas or similar efficient methods
cause diagonal elements contains 1/(x1+x2+...+xn) which require separate processing,
what am I missing here ?
Is there a simple solution for these systems ?
Thanks for help.

2. ## Re: tridiagonal system

I am afraid that the question is not clear due to bad formatting so I'll to explain a bit better
(sorry for double post)

I need a method for solving a linear system (x1..xn) of type
A*x=B
where A is a tridiagonal matrix

x x
. x x x
. . x x x

with (generic) structure

first row
x1*(k11+k12/(x1+x2+..xn) x2*k13

second row
x2*k21 x3*(k22+k23/(x1+x2+..xn) x4*k24

and so on, size N about 400 x 400 (sparse),
I am unable to find a solution which allow to use Thomas or similar efficient methods
cause diagonal elements contains K/(x1+x2+...+xn) which require separate processing,
what am I missing here ?
Is there any simple solution for these systems ?
Thanks for help.

3. ## Re: tridiagonal system

you keep calling this a linear system. It is not.

4. ## Re: tridiagonal system

thanks for the comment, I appreciate any contribute,
actually I convert values to fractions (by preprocessing) and the solution is very slow,
a very efficient iterative system could be acceptable (or provide comparable timing)
how do you suggest to solve such system ?

5. ## Re: tridiagonal system

Toying with this it becomes clear that the whole thing is a quadratic form.

Have you tried rewriting the whole thing as a quadratic form and applying some algorithm for solving the quadratic system?

This paper for example

6. ## Re: tridiagonal system

thanks for the contribute,
a iterative procedure would appear interesting providing there is a efficient way to correct vector x1..xn at each step,
actually this is the area where my resources show the limits...