Guest User

Untitled

a guest
Jan 16th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. delta[x_, a_] := Block[{}, If[x == a, 1, 0]];
  2. mesh = Table[PDF[NormalDistribution[a, z], x]*
  3. PDF[NormalDistribution[b, z], y], {a, -1, 1, 0.1},
  4. {b, -1, 1, 0.1}];
  5. mesh = Flatten[mesh];
  6. cofs = Table[ToExpression[StringJoin[ToString[c],
  7. ToString[a], ToString[b]]], {a, 0, 20}, {b, 0, 20}];
  8. cofs = Flatten[cofs];
  9. weights = Table[delta[x, a]*delta[y, b], {a, -1, 1, 0.05},
  10. {b, -1, 1, 0.05}];
  11. weights = Flatten[weights];
  12. expr = cofs . mesh;
  13. residual = D[expr, x] - D[expr, y] - (x*Sin[x*y] -
  14. y*Sin[x*y]);
  15. integrated = residual*Plus @@ weights;
  16. toMinimize = Plus @@ Flatten[Table[integrated,
  17. {x, -1, 1, 0.1}, {y, -1, 1, 0.1}]];
  18. toMinimize = toMinimize^2;
  19. cofs = Append[cofs, z];
  20. conds = Abs[(expr /. {x -> 0, y -> 0}) - 1];
  21. opt = NMinimize[{toMinimize + conds}, cofs,
  22. Method -> {Automatic, PerformanceGoal -> "Speed"}];
  23. u = expr /. Last[opt];
  24. ListPlot3D[Table[u*Plus @@ weights /. {x -> a, y -> b},
  25. {a, -1, 1, 0.1}, {b, -1, 1, 0.1}]]
Add Comment
Please, Sign In to add comment