Timeline for How can I construct the derivative matrix for an irregular domain?
Current License: CC BY-SA 4.0
19 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jan 29 at 18:42 | comment | added | Ulrich Neumann | @xzczd Thank you very much ! Our discussion was very inspiring. Your campaign concerning the extra-bounty is unprecedented and has touched me. | |
| Jan 29 at 15:33 | history | bounty awarded | xzczd♦ | ||
| Jan 29 at 15:33 | comment | added | xzczd♦ | This answer is definitely underestimated at the moment, so here's a small gift, +11 :) . | |
| Jan 21 at 11:34 | comment | added | Ulrich Neumann | @xzczd Increasing the number of neighbors possibly decreases the approximation of boundary points | |
| Jan 21 at 9:47 | comment | added | Ulrich Neumann | @xzcd Thanks for reply. I'm unsure about using weights because the unknown grid values can't be separated | |
| Jan 21 at 9:21 | comment | added | xzczd♦ | Today I revisited related papers e.g. sciencedirect.com/science/article/pii/S0307904X0300091X , two small discoveries: 1. A larger neighbor size (e.g. 12+1 instead of 8+1) seems to improve the result significantly. 2. Use a weight function (define Block[{d,dm}, w = Function[{d, dm}, #] &[With[{x = d/dm},If[d <= dm,1 - 6 x^2 + 8 x^3-3 x^4,0]]//PiecewiseExpand//Simplify`PWToUnitStep]] then in pinv use w[Sqrt[(xi - xj)^2 + (yi - yj)^2], dm] {xj - xi, yj - yi, …}) also improve the result, but the papers don't seem to show a general way to set dm. | |
| Jan 18 at 14:42 | comment | added | Ulrich Neumann | I am looking forward to the answer | |
| Jan 18 at 11:34 | comment | added | xzczd♦ | This is surprising. I leaved a comment under that post, hopefully J.M. will finally have a look at this. (He seems to be busy these days… ) | |
| Jan 18 at 9:18 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 2 characters in body |
| Jan 18 at 8:59 | comment | added | Ulrich Neumann | @xzczd If of interest, here my testcode mat = RandomReal[{-1, 1}, {RandomInteger[{4, 20}], 8}]; rS = Table[u[i], {i, 1, Dimensions[mat][[1]]}]; erg1 = LeastSquares[mat, rS] // AbsoluteTiming; erg2 = PseudoInverse[mat] . rS // AbsoluteTiming; {Norm[erg1[[-1]] - erg2[[-1]]], erg1[[1]]/erg2[[1]]} | |
| Jan 18 at 8:37 | comment | added | Ulrich Neumann | @xzczd Thanks for your interesting reply. I checked LeastSquares and PseudoInverse for different numerical examples, all with a symbolic righthandside. Both commands gave the same result (not surprising) but in all examples PseudoInverse evaluated significantly faster (surprising for me) | |
| Jan 18 at 3:43 | comment | added | xzczd♦ | Interesting. Perhaps I should revisit those papers. Two quick suggestions: 1. LeastSquares may be a better choice compared with PseudoInverse: mathematica.stackexchange.com/questions/117979/… 2. The AxesLabel can be modified to e.g. HoldForm@D[f, x, y] // TraditionalForm. | |
| Jan 17 at 19:26 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 2771 characters in body |
| Jan 17 at 17:29 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 397 characters in body |
| Jan 17 at 16:53 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 51 characters in body |
| Jan 17 at 16:46 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 40 characters in body |
| Jan 17 at 16:41 | history | edited | Ulrich Neumann | CC BY-SA 4.0 | added 40 characters in body |
| Jan 17 at 16:35 | comment | added | Ulrich Neumann | @xzczd See my new answer, perhaps it shows an easy access to the the GFDM method you mentioned today. | |
| Jan 17 at 16:33 | history | answered | Ulrich Neumann | CC BY-SA 4.0 |