Mercurial > repos > public > sbplib
annotate subsSymfun.m @ 1037:2d7ba44340d0 feature/burgers1d
Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 18 Jan 2019 09:02:02 +0100 |
parents | 489bea7fc33f |
children |
rev | line source |
---|---|
599
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 % Subs for a symfun |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 % f remains a symbolic function. If any of it's arguments is eliminated |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 % it is removed from the argument list while preserving the order of the |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 % other arguments |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 function f = subsSymfun(f, old, new) |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 args = argnames(f); |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 newExpr = subs(f, old, new); |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 vars = symvar(subs(args, old, new)); |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 newArgs = args(ismember(args,vars)); |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 f = symfun(newExpr, newArgs); |
489bea7fc33f
Add some functions to make symbolic life easier
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 end |