differential equations – Local Series solution at singular point for system of first order ODEs

I want to calculate Psi(z) in the equation

D(Psi(z), z) + A(z).Psi(z) == psi(z)

around a given point p, where A(z) is an $ntimes n$–matrix, psi(z) is an $n$–vector and hence Psi(z) also needs to be an $n$–vector. The matrix A(z) and vector phi(z) can both be singular at p, but neither has an essential singularity. Can you please help me solve this problem efficiently?

The goal is then to take Psi(z) and multiply it with some given phi(z), and then take the residue at p. Therefore ideally the outcome is a SeriesData object around p, or something similar to that. Note that p generally is a point on $CP^1$, so p can be ComplexInfinity.

I have tried a few things and some were succesfull in subcases, but while those often worked in reasonable time for $n=1$ they took unreasonably long for $n>4$ or had similar issues.

  • I generally wrote A(z) as a list of SeriesData objects with coefficients Psico(l, k) $(l in {1, dots, n})$ and expanded A(z) and psi(z) using Series and took the list of their coefficients Acoef and psiCoef, which reduces the equation to something of the form
(a+1) Psico(j, a+1) + Sum(Acoef(b)((j, k)) * Psico(k, a-b), {b, low, high}, {k, 1, n}) == psiCoef(j, a).
  • For A(z) non-singular in z, the equation becomes an easy recursive equation in the expansion coefficients of Psi(z). This can be solved either using recursive methods (such as RecurrenceTable or a For loop by hand) or by writing the equations as a triangular matrix and solving that (using e.g. LinearSolve). However, this ran into problems when A(z) is singular at p as in that case the matrix is no longer triangular and equivalently the recursive method requires coefficients which we do not yet know.
  • For $n$ small, the matrix could still forcefully be solved using LinearSolve, but for large $n$ that becomes incredibly slow. Perhaps that is because my code was too naive, and there are some tricks to convince LinearSolve that the matrix is nearly triangular?
  • I then tried using methods such as AsymptoticDSolveValue, but that persistently tried to approximate Psi(z) with a polynomial (not using singular terms). I am using Mathematica 12.0 Student Edition (where AsymptoticDSolveValue is Experimental); I have understood this method has been changed slightly in the newer version so perhaps this is now better but I have no acces to newer version of Mathematica.

Finally remark that there is of course not just a single solution, but your can generally add the solution to the homogeneous equation. This can be ignored, as it is mathematically expected that the homogeneous solution does not contribute to the later residue. Therefore not all solutions are needed, but just one solution should be sufficient. Of course, the homogeneous solution generally has an essential singularity, so that solution can typically be avoided somewhat by choosing some sufficiently low coefficient Psico(k, low) and fixing it to be 0 by hand.

Could you please help me? Thank you very much in advance!

A minimal example of A(z), psi(z) and p could be: (x is an external constant)

A(z_) = {{z, 1/z, 1/(z - 1)}, {z^2, x z, (1 - x) z}, {0, 1/(x z), z}};
psi(z_) = {1, 1/z, 1/(z-1)};

lightning network – What are the best practices to close and reopen channels in order to increase capacity

I am new in the lightning so I opened a small channel with 50k sats to get started. After some research and try-and-error I would like to increase the capacity of this channel. I know that this is not possible and the only way to do that is to close the channel and open a new one since having a double channel with the same node is not recommended.
In the meanwhile a payment has been routed with this channel, so my local balance is 10k sats and in the remote balance is 30k (10k sats are gone on fees). If I close the channel now I will only get 10k sats minus fees. I will lose more than 80% of my initial amount!

The only thing I can think of is doing a rebalance of the channel so the most of the capacity is on my side and then close the channel. But since it only has 50k sats I cannot do a loop in (minimum 250k sats), or balance of satoshi (minimum 50k sats). Circular rebalance fails all the time. As an alternative I can create an invoice and route it to my self as described here (https://github.com/lightningnetwork/lnd/pull/3736).

But is it ok what I am doing? Is there a cheaper (smarter) way?

Can’t find Payment Date in the Payment or Order class

I’m working to an extension that needs to push to an external service every order and refund that happens on the shop. One of the needed infos it needs to pass is the payment date – and for the life of me I can’t find it, neither in the payment class nor in the order class:

Does someone know how to retrieve this information?
Shippings and Orders have the getCreatedAt() method, but I don’t find it for Payments, nor do I find anything similar, though it occurs to me as a basic info that should be available.

Thanks everyone!

drush – “Drupal root not found. Pass –root or a @siteAlias in order to see Drupal-specific commands”

I have multiple sites inside the same htdocs directory. In one, I removed all the folders except vendor under Web. Now drush will not work (it worked before I moved the folders). But now, it cannot find the database, which is correctly defined in web/sites/default/settings.php

/srv/www/htdocs/jar/drupal # ./drush status
 PHP binary    : /usr/bin/php
 PHP config    : /srv/www/php.ini
 PHP OS        : Linux
 Drush script  : /srv/www/htdocs/jar/drupal/vendor/drush/drush/drush
 Drush version : 10.3.6
 Drush temp    : /tmp
 Drush configs : /srv/www/htdocs/jar/drupal/vendor/drush/drush/drush.yml
 Drupal root   : /srv/www/htdocs/jar/drupal

I am running Drupal 9.0.8 and drush 10.3.6 (in /srv/www/htdocs/jar/drupal). I have removed drush using composer (2.0.3) and reinstalled it (recreating vendor in the process).

/srv/www/htdocs/jar/drupal # ./drush -vvv cr
 (preflight) Config paths: /srv/www/htdocs/jar/drupal/vendor/drush/drush/drush.yml
 (preflight) Alias paths: /srv/www/htdocs/jar/drupal/drush/sites,/srv/www/htdocs/jar/drush/sites
 (preflight) Commandfile search paths: /srv/www/htdocs/jar/drupal/vendor/drush/drush/src
 (debug) Starting bootstrap to site (0.04 sec, 8.17 MB)

In BootstrapHook.php line 32:
  Bootstrap failed. Run your command with -vvv for more information.
Exception trace:
  at /srv/www/htdocs/jar/drupal/vendor/drush/drush/src/Boot/BootstrapHook.php:32
 DrushBootBootstrapHook->initialize() at /srv/www/htdocs/jar/drupal/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php:44
 ConsolidationAnnotatedCommandHooksDispatchersInitializeHookDispatcher->doInitializeHook() at /srv/www/htdocs/jar/drupal/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php:36
 ConsolidationAnnotatedCommandHooksDispatchersInitializeHookDispatcher->callInitializeHook() at /srv/www/htdocs/jar/drupal/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php:29
 ConsolidationAnnotatedCommandHooksDispatchersInitializeHookDispatcher->initialize() at /srv/www/htdocs/jar/drupal/vendor/consolidation/annotated-command/src/CommandProcessor.php:145
 ConsolidationAnnotatedCommandCommandProcessor->initializeHook() at /srv/www/htdocs/jar/drupal/vendor/consolidation/annotated-command/src/AnnotatedCommand.php:296
 ConsolidationAnnotatedCommandAnnotatedCommand->initialize() at /srv/www/htdocs/jar/drupal/vendor/symfony/console/Command/Command.php:221
 SymfonyComponentConsoleCommandCommand->run() at /srv/www/htdocs/jar/drupal/vendor/symfony/console/Application.php:1018
 SymfonyComponentConsoleApplication->doRunCommand() at /srv/www/htdocs/jar/drupal/vendor/symfony/console/Application.php:271
 SymfonyComponentConsoleApplication->doRun() at /srv/www/htdocs/jar/drupal/vendor/symfony/console/Application.php:147
 SymfonyComponentConsoleApplication->run() at /srv/www/htdocs/jar/drupal/vendor/drush/drush/src/Runtime/Runtime.php:118
 DrushRuntimeRuntime->doRun() at /srv/www/htdocs/jar/drupal/vendor/drush/drush/src/Runtime/Runtime.php:49
 DrushRuntimeRuntime->run() at /srv/www/htdocs/jar/drupal/vendor/drush/drush/drush.php:72
 require() at /srv/www/htdocs/jar/drupal/vendor/drush/drush/drush:4

I looked at all the above suggestions, but am stuck. Drush works perfectly on my other 5 sites…

dot – Order of nodes in graphviz

I am working on this graph:

digraph "example.gsn.yaml" {

  ## Elements
  "G1" [shape="box", label=<<B>G1</B><BR align="left"/>Goal 1>];
  "G2" [shape="box", label=<<B>G2</B><BR align="left"/>Goal 2>];
  "G4" [shape="box", label=<<B>G4</B><BR align="left"/>Goal 4>];
  "G3" [shape="box", label=<<B>G3</B><BR align="left"/>Goal 3>];
  "C1" [shape="box", style="rounded", label=<<B>C1</B><BR align="left"/>Context 1>];
  "S1" [shape="parallelogram", label=<<B>S1</B><BR align="left"/>Strategy 1>];
  "A1" [shape="oval", label=<<B>A1</B><BR align="left"/>Argument 1>];
  "A1":e -> "A1":e [headlabel=< <B>A</B> >, labeldistance=2.5, penwidth=0, arrowhead=none];
  "Sn1" [shape="circle", label=<<B>Sn1</B><BR align="left"/>Solution 1>];
  "Sn2" [shape="circle", label=<<B>Sn2</B><BR align="left"/>Solution 2>];
  "J1" [shape="oval", label=<<B>J1</B><BR align="left"/>Justification 1>];
  "J1":e -> "J1":e [headlabel=< <B>J</B> >, labeldistance=2.5, penwidth=0, arrowhead=none];

  ## Relations
  "G1" -> "G2";
  "G1" -> "G3";
  "G1" -> "G4";
  "G2" -> "S1";
  "G4" -> "Sn2";
  "G3" -> "Sn1";
  "G3" -> "C1" [arrowhead=empty];
  {rank = same; "G3"; "C1"; }
  "S1" -> "Sn1";
  "S1" -> "J1" [arrowhead=empty];
  "S1" -> "A1" [arrowhead=empty];
  {rank = same; "A1"; "S1"; }
  {rank = same; "S1"; "J1"; }

This is my current graph.
I would like to minimize crossings.
My preferred layout would be that A1, S1 and J1 are on the same rank in a left-to-right order.
However I cannot find out how to do this.

Can anybody help, please? Thanks in advance.