Thank you for your reply!

" I might be missing something, but how do you define the condition number
of a non-square matrix? "

In the matlab documentation is stated:
cond(J) is the 2-norm condition number for inversion,
equal to the ratio of the largest singular value of J to the smallest.

" The condition number of J is determined by your choice of parameters. If
I understand things right, your J^T J is 8x8,"

Correct, J^T J is 8x8.

" and if it is poorly
conditioned, you need to choose the 8 parameters differently, for
example (i) scaled in a different way, and (ii) as linear combinations
of what you use right now. "

I double-checked that my J has full rank.
If I interpret this correctly, there are no correlation between my
parameters
and what describe as your point (ii) is not neccessary in my case.

I definitely have to scale my paramters somehow.
Do you have a recommendation how to scale the parameters?


Best
Simon


Am Do., 13. Okt. 2022 um 18:38 Uhr schrieb Wolfgang Bangerth <
bange...@colostate.edu>:

> Hi Simon,
>
> > To this end, I am solving n linear systems, where n is the number of
> > parameters:
> > K * sensitivity[i] = rhs[i]    i=1,...,n
> > K is the (symmetric) tangent matrix which I already use to solve for the
> > solution of my pde, that is,
> > I just assemble the rhs vectors anew.
> > The result is the Jacobian matrix
> > J = [ sensitivity[1] ;...; sensitivity[n] )
> > which has as many rows as my pde has degrees of freedom.
> > J has dimensions 320x8, that is,
> > my pde has 320 dofs and I want to optimise 8 parameters.
> > The solution of my pde (the dofs) are in the interval [0 to 1] and the
> > parameters are in the interval [0 to 1e5] , i.e., the entries of J are
> > rather small per nature (1e-6 to 1e-10).
> > I evaluated the condition number of J in matlab: cond(J) = 1e13, which
> > is too large given that the optimization algorithm works on J^t*J.
>
> I might be missing something, but how do you define the condition number
> of a non-square matrix?
>
> Separately, though: what is the relationship between the condition
> number of J and solving linear systems with K? If I understand you right...
>
> > Currently, I solve the above n linear systems using the direct solver
> > UMFPACK. I know that there is no such thing like a preconditioner for
> > direct solvers.
> > Thus, I solved the linear systems using the iterative SolverCG with a
> > preconditioner:
> >          const int solver_its = 1000
> >          const double tol_sol = 1e-15
> >          SolverControl solver_control(solver_its, tol_sol);
> >          GrowingVectorMemory<Vector<double> > GVM;
> >          SolverCG<Vector<double> > solver_CG(solver_control, GVM);
> >          PreconditionSSOR<> preconditioner;
> >          preconditioner.initialize(tangent_matrix, 1.2);
> >          //solve the linear systems...
> > However, the condition number of J is still around 1e13.
>
>
> ...then this is the code you use to solve with K. K being whatever it
> is, the preconditioner you use only affects *how* you solve the linear
> systems with K, but it has no effect on the *solution* of the linear
> systems, and so this piece of code has no influence on J: J is what it
> is, and the condition number of J is what it is independent of the code
> you use to *solve for J*.
>
> > My idea was to push the condition number of J at least some order of
> > magnitudes when applying a preconditioner to my tangent matrix.
> > Is this consideration reasonable?
>
> The condition number of J is determined by your choice of parameters. If
> I understand things right, your J^T J is 8x8, and if it is poorly
> conditioned, you need to choose the 8 parameters differently, for
> example (i) scaled in a different way, and (ii) as linear combinations
> of what you use right now.
>
> Best
>   W.
>
> --
> ------------------------------------------------------------------------
> Wolfgang Bangerth          email:                 bange...@colostate.edu
>                             www: http://www.math.colostate.edu/~bangerth/
>
> --
> 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 a topic in the
> Google Groups "deal.II User Group" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/dealii/5ShTkx3dMCU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> dealii+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/dealii/998f5bc1-e755-282c-7eb6-504249f669b9%40colostate.edu
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/CAM50jEsHV-BW%2BDEQyf29kqMDNOCDjbLE_FOZLX%2Br3sGiKGXzOw%40mail.gmail.com.

Reply via email to