Dear FU,

Yes, I think that the LinearOperator 
<https://dealii.org/9.0.0/doxygen/deal.II/classLinearOperator.html> class and 
family of helper functions 
<https://dealii.org/9.0.0/doxygen/deal.II/group__LAOperators.html> can help you 
here. This is because you never use the matrix “A” in isolation, but rather 
have it operating on the vector “T” (or some increment of “T” in your nonlinear 
solution algorithm). So you can use the LinearOperator class to create the 
composite operator “A”, which does not ever compute or hold the individual 
entries of “A” itself, but rather performs the action on a vector that is 
equivalent to what “A” would. You should have a look at the class documentation 
that I linked to earlier. The step-44 tutorial 
<https://dealii.org/9.0.0/doxygen/deal.II/step_44.html#Solidsolve_linear_system>
 also provides an example of its use.

I hope that this helps you move forward with your problem.
Best,
Jean-Paul

> On 16 Nov 2018, at 01:01, FU <fudanyang1...@gmail.com> wrote:
> 
> Hi,
> I want to solve AT+BFT^4=C          (1), 
> A, B, F are sparse matrix, T, T^4 are the solution vector.
> By Newton method, we need to (1) derivation.
> So I want to know how to get A.
> Or what do you think of solving this equation?
> 
> best,
> FU
> 
> 
> 在 2018年11月15日星期四 UTC+8下午10:45:24,Jean-Paul Pelteret写道:
> Hi,
> 
> In general there is, to the best of my knowledge, no easy answer to your 
> question. Can you explain what you intend to do with the matrix “A"? That 
> would help a great deal, as there may still be some functionality in the 
> library to help you. If you intend to perform some operations with “A” then 
> we have some wrapper classes called LinearOperators that can produce an 
> effective “A” (without computing it directly). But whether or not this makes 
> sense depends on the context in which you want to use “A”.
> 
> Best,
> Jean-Paul
> 
>> On 15 Nov 2018, at 15:28, FU <fudany...@ <>gmail.com <http://gmail.com/>> 
>> wrote:
>> 
>> Thank you very much for your reply.
>> 
>> I probably understand the methods you mentioned, but there is no 
>> multiplication vector behind the sparse matrix of the solution I asked for.
>> 
>> A=M- (N^T) (M^-1) N,
>> 
>> This is the construction equation of the original sparse matrix.
>> 
>> A is the sparse matrix that I want to get in the end, where N and M are 
>> sparse matrices.
>> 
>> What else can you do to solve this problem?
>> 
>> Thank you
>> 
>> FU在 2018年11月14日星期三 UTC+8下午2:32:03,Jean-Paul Pelteret写道:
>> Hi,
>> 
>> To compute the sparse matrix inverse M^{-1} you would have to use a direct 
>> solver such as SparseDirectUMFPACK 
>> <https://dealii.org/9.0.0/doxygen/deal.II/classSparseDirectUMFPACK.html>. If 
>> this operation (M^{-1})N appears in the context of matrix-vector products, 
>> i.e. you’re actually computing something like y = (M^{-1})Nx then you could 
>> use an iterative solver 
>> <https://dealii.org/9.0.0/doxygen/deal.II/classSolverSelector.html> to 
>> invert the system My = (Nx) = b. Here you could be computing the solution y 
>> = M^{-1}b using an iterative method.
>> 
>> I hope that this helps.
>> Best,
>> Jean-Paul
>> 
>>> On 14 Nov 2018, at 03:01, FU <fudany...@gmail.com <>> wrote:
>>> 
>>> (M^-1)N,
>>> M and N are sparse matrix,
>>> so how to get the inverse of a sparse matrix?
>>> 
>>> -- 
>>> The deal.II project is located at http://www.dealii.org/ 
>>> <http://www.dealii.org/>
>>> For mailing list/forum options, see 
>>> https://groups.google.com/d/forum/dealii?hl=en 
>>> <https://groups.google.com/d/forum/dealii?hl=en>
>>> --- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "deal.II User Group" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to dealii+un...@ <>googlegroups.com <http://googlegroups.com/>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> The deal.II project is located at http://www.dealii.org/ 
>> <http://www.dealii.org/>
>> For mailing list/forum options, see 
>> https://groups.google.com/d/forum/dealii?hl=en 
>> <https://groups.google.com/d/forum/dealii?hl=en>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "deal.II User Group" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to dealii+un...@googlegroups.com <>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> The deal.II project is located at http://www.dealii.org/ 
> <http://www.dealii.org/>
> For mailing list/forum options, see 
> https://groups.google.com/d/forum/dealii?hl=en 
> <https://groups.google.com/d/forum/dealii?hl=en>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to dealii+unsubscr...@googlegroups.com 
> <mailto:dealii+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to