look what the StepMonitor and EvaluationMonitor option of NDSolve[] can do for you. Jens > Here is a simple question -- which probably has received an answer > earlier, but I couldn't spot it in the archive. > Is there a way, when solving ODEs with NDSolve, to extract from the > output the value of the solution *actually* computed by the algorithm at > each step of the iteration? > (I do not wish to use interpolated values from the InterpolationFunction > returned by NDSolve). ==== why do you not keep the connection alive ? Your process launch (as a child process) the Mathematica kernel, the most operating systems terminate child processes when the calling process terminates. To hinder this you must launch the child process in a operating system specific way -- not with LinkOpen(). If you have done that, your calling process can terminate but you have no way to tell the still runing Mathematica kernel that it should connect to an other process. The only exeception would be that the calling process launches a second child process and tell the Mathematica kernel that it should connect to that second process. So keep the connection to the kernel alive ... Jens > I would to call Mathematica from within a C program to evaluate a > lengthy function. (the reverse of the usual situation!) To do this I am using MathLink, and I have written a test program > that successfully establishes a link with the kernel, calls the > function, and returns the answer. When the program exits though, the > link to the kernel dies and the kernel quits. Is there any way to keep the kernel alive between MathLink > connections? This would be useful for storing persistent information, > and for avoiding reinitializing certain routines before each function > call. Possible (indirect) solutions: > kernel to switch between multiple links, but I would then need a way > to (1) detect when connections are broken and create a new link and > (2) tell my C program which port to connect under. > 2. I could set up a program that connects once to the Mathematica > kernel, then write another program that contacts the first via a > message queue and semaphores. There must be a simpler way though! > Julius ==== for a single scalar value the L+2 equations are overdetermined and you don't tell us how you wish to resolve that ... Jens Could you please give me the analytical answer of c directly? which is included in the following linear equations. sum_{i=0}^{L}{a_{ji}*x_i}+(-1)^j*c=y_j , j=1,...L+2 The above linear equations is written in latex style. ==== sample the function and use Fourier[] Jens I would like to know how to calculate the numerical Fourier transform > for a function of two variables. > For instance, the following one: > NFourierTransform[Exp[-(x^2+y^2)],{x,y}, {u,v}]. The FourierTransform works fine and returns the right result, for that > case. > Is it possible, in other general cases, to use the numerical > NFourierTransform on functions of two or more variables ? Are there packages solving this problem ? ==== I've got the following simple (well, IMO) boolean equations and can't believe that it takes more than 2 hours on an Intel(R) Xeon(TM) CPU 2.00GHz to evaluate the last output: foo[a1, a2, a3, a4, b1, b2, b3, b4] I'm using mathematica 4.1. Am I doing something wrong? cheers, Tom Here comes the code: o1[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := (a4 && b1 && b2 && b3 && b4) || (a1 && a4 && b2 && b3 && b4) || (a2 && a4 && b1 && b3 && b4) || (a1 && a2 && a4 && b3 && b4) || (a3 && a4 && b1 && b2 && b4) || (a1 && a3 && a4 && b2 && b4) || (a2 && a3 && a4 && b1 && b4) || (a1 && a2 && a3 && a4 && b4) || (a3 && b1 && b2 && b3) || (a1 && a3 && b2 && b3) || (a2 && a3 && b1 && b3) || (a1 && a2 && a3 && b3) || (a2 && b1 && b2) || (a1 && a2 && b2) || (a1 & & b1); o2[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := (a1 && !a4 && !b1 && !b2 && !b3) || (!a1 && !a4 && b1 && !b2 && !b3) || (a1 && !a2 && !a4 && !b1 && !b3) || (!a1 && !a2 && !a4 && b1 && !b3) || (a1 && !a3 && !a4 && !b1 && !b2) || (!a1 && !a3 && !a4 && b1 && !b2) || (a1 && !a2 && !a3 && !a4 && !b1) || (!a1 && !a2 && !a3 && !a4 && b1) || (a1 && !b1 && !b2 && !b3 && !b4) || (!a1 && b1 && !b2 && !b3 && !b4) || (a1 && !a2 && !b1 && !b3 && !b4) || (!a1 && !a2 && b1 && !b3 && !b4) || (a1 && !a3 && !b1 && !b2 && !b4) || (!a1 && !a3 && b1 && !b2 && !b4) || (a1 && !a2 && !a3 && !b1 && !b4) || (!a1 && !a2 & &!a3 && b1 && !b4) || (!a1 && a4 && !b1 && b2 && b3 && b4) || (!a1 && a2 && a4 && !b1 && b3 && b4) || (!a1 && a3 && a4 && !b1 && b2 && b4) || (!a1 && a2 && a3 && a4 && !b1 && b4) || (a1 && a4 && b1 && b2 && b3 && b4) || (a1 && a2 && a4 && b1 && b3 && b4) || (a1 && a3 && a4 && b1 && b2 && b4) || (a1 && a2 && a3 && a4 && b1 && b4) || (a1 && !a3 && !b1 && !b2 && !b3) || (!a1 && !a3 && b1 && !b2 && !b3) || (a1 && !a2 && !a3 && !b1 && !b3) || (!a1 && !a2 && !a3 && b1 && !b3) || (!a1 && a3 && !b1 && b2 && b3) || (!a1 && a2 && a3 && !b1 && b3) || (a1 && a3 && b1 && b2 && b3) || (a1 && a2 && a3 && b1 && b3) || (a1 && !a2 && !b1 && !b2) || (!a1 && !a2 && b1 && !b2) || (!a1 && a2 && !b1 && b2) || (a1 && a2 && b1 && b2); o3[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := (a2 && !a4 && !b2 && !b3) || (!a2 && !a4 && b2 && !b3) || (a2 && !a3 && !a4 && !b2) || (!a2 && !a3 && !a4 && b2) || (a2 && !b2 && !b3 && !b4) || (!a2 && b2 && !b3 && !b4) || (a2 && !a3 && !b2 && !b4) || (!a2 && !a3 && b2 && !b4) || (!a2 && a4 && !b2 && b3 & & b4) || (!a2 && a3 && a4 && !b2 && b4) || (a2 && a4 && b2 && b3 && b4) || (a2 && a3 && a4 && b2 && b4) || (a2 && !a3 && !b2 && !b3) || (!a2 && !a3 && b2 && !b3) || (!a2 && a3 && !b2 && b3) || (a2 && a3 && b2 && b3); o4[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := (!a3 && a4 && !b3 && b4) || (a3 && a4 && b3 && b4) || (a3 && !b3 && !b4) || (!a3 && b3 && !b4) || (a3 && !a4 && !b3) || (!a3 && !a4 && b3); o5[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := (a4 && !b4) || (!a4 && b4); oparity[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := Xor[o1[a1, a2, a3, a4, b1, b2, b3, b4], o2[a1, a2, a3, a4, b1, b2, b3, b4], o3[a1, a2, a3, a4, b1, b2, b3, b4], o4[a1, a2, a3, a4, b1, b2, b3, b4], o5[a1, a2, a3, a4, b1, b2, b3, b4]]; foo[a1_, a2_, a3_, a4_, b1_, b2_, b3_, b4_] := Simplify[Xor[oparity[a1, a2, a3, a4, b1, b2, b3, b4], !oparity[!a1, !a2, !a3, !a4, !b1, !b2, !b3, !b4]]]; foo[a1, a2, a3, a4, b1, b2, b3, b4] ==== Bonjour le groupe, Given this test (performed with Mathematica 4.1): In[1]:={Sqrt[s]EllipticTheta[3, 0, E^(-Pi s)], EllipticTheta[3, 0, E^(-Pi/s)]} /. s -> Infinity Out[1]={Infinity, EllipticTheta[3, 0, 1]} it seems to me that EllipticTheta[3, 0, 1] or at least Limit[EllipticTheta[3, 0, q], q -> 1, Direction -> 1] should return Infinity. Is it the same with Mathematica 5.0 ? --- jcp ==== > In other words, overall plot options are only picked up from the > first plot in the DisplayTogether statement. The solution is either put them > all in the first plot, or remove them from the individual plots and put them > at the end. Yes, I agree, and find this rather handy. You put into individual plot commands only those style or other options that apply to that plot uniquely, and put all the options that apply to the entire graphic (including Prolog and Epilog) after the individual plot commands in the DisplayTogether command. I guess it's always a matter of personal preferences, but I find this generally makes it easier to get that elusive match between do what I want and do what I say in the coding. Changing the order of the individual plot commands also makes it easy to control layering, i.e. which lines or points are displayed on top of or beneath other lines and points. > The only advantage of DrawGraphics is that instead of dealing with various > plots and worrying about what options are picked up, you draw the graphical > elements directly and always put the overall plot options at the end. Haven't had a chance to try your DrawGraphics package, but I should do so. ==== >-----Original Message----- >To: mathgroup@smc.vnet.net >I'll still assert that something like: Needs[Graphics`Graphics`]; > Needs[Graphics`Colors`]; > Needs[Graphics`FilledPlot`]; DisplayTogether[ > FilledPlot[{Sin[x], Sin[x]}, {x,2,8}], > Plot[Sin[x], {x,0,10}, PlotStyle->Red]]; is clear, simple, flexible, and readable -- and allows you to easily >modify the styles (linewidths, colors) of the different components of >the plot independently, as done here, and add additional stuff if you > Dear Professor Siegman, my principal objection is illustrated by the (exaggerated) example: DisplayTogether[ > FilledPlot[Sin[x], {x, 2, 8}, Fills -> {{{1, Axis}, Yellow}}, > PlotPoints -> 5, PlotDivision -> 2], > Plot[Sin[x], {x, 0, 10}, PlotStyle -> Red, PlotPoints -> 5, > PlotDivision -> 2]]; I take the point here -- but I think we'd both agree that PlotPoints->5 is indeed pretty exaggerated, and not a case that one would often employ. ==== > This integral below give 0 on Mathematica 5.0 > Integrate[Sqrt[R^2 - x^2], {x, -R, -R + d}, > Assumptions -> R > 0 && d > 0 && d < 2R] This is a mistake I think, isn't it? Certainly! (And please report this bug!) Here's my best suggestion for getting a correct answer from Mathematica: In[1]:= Integrate[Sqrt[R^2 - x^2], x] Out[1]= (1/2)*(x*Sqrt[R^2 - x^2] + R^2*ArcTan[x/Sqrt[R^2 - x^2]]) In[2]:= Limit[%, x -> -R] Out[2]= -((Pi*R^2)/4) In[3]:= Simplify[%% /. x -> -R + d] Out[3]= (1/2)*(Sqrt[(-d)*(d - 2*R)]*(d - R) + R^2*ArcTan[(d - R)/Sqrt[(-d)*(d - 2*R)]]) In[4]:= % - %% Out[4]= (Pi*R^2)/4 + (1/2)*(Sqrt[(-d)*(d - 2*R)]*(d - R) + R^2*ArcTan[(d - R)/Sqrt[(-d)*(d - 2*R)]]) I believe that is correct. Unfortunately though, I am unable to get FullSimplify to give me the simpler result (1/2)*(Sqrt[d*(2*R - d)]*(d - R) + R^2*ArcCos[1 - d/R]) But that may just be due to lack of cleverness on my part. David Cantrell ==== Very interesting question ! As Integrate[Sqrt[r^2 - x^2], x] = (1/2)*(x*Sqrt[r^2 - x^2] + r^2*ArcTan[x/Sqrt[r^2 - x^2]]) you will have to use complex numbers using Newton-Leibnitz's formula with R {d > 0, r > 0, d < r}] Out[34]= (1/4)*(2*Sqrt[(-d)*(d - 2*r)]*(d - r) + Pi*r^2 + 2*r^2*ArcSin[(d - r)/r]) So if d>R, just compute for x from 0 to d-R and add Pi r^2/4 ! Meilleures salutations Florian Jaccard -----Message d'origine----- Ë : mathgroup@smc.vnet.net Objet : Error? This integral below give 0 on Mathematica 5.0 Integrate[Sqrt[R^2 - x^2], {x, -R, -R + d}, Assumptions -> R > 0 && d > 0 && d < 2R] This is a mistake I think, isn't it? Baris Altunkaynak ==== I seem to have the same problem as Claudia [00278] I must log on a second PC (veneon) which has Mathematica installed dranse ~]$ ssh veneon On veneon I type veneon$ setenv DISPLAY dranse:0 veneon$ echo $DISPLAY dranse:0 veneon$ math Copyright 1988-2002 Wolfram Research, Inc. -- Motif graphics initialized -- In[1]:= Plot[Sin[x],{x,0,1}] _X11TransSocketINETConnect: Can't get address for dranse Error: Can't open display: - If I try gnuplot on veneon with exported display on dranse : no problem, works fine - ping works veneon$ ping dranse 64 bytes from dranse.ceng.cea.fr (192.168.1.17): icmp_seq=1 ttl=64 time=0.132 ms - If I try logging on veneon with telnet instead of ssh, same problem .. - I've correctly added veneon to the dranse access control list with dranse$ xhost + veneon So the fix proposed by Olaf [00336] does not work for me (Did it work for you Claudia ?) problem ? dranse kernel 2.4.18-14 veneon kernel 2.4.20-8 Can anyone help me out ? Serge -- *--------------------------------------------* | Serge Crouzy | | CEA Grenoble BMC/DRDC K 215 A | | 17 Avenue des Martyrs, | | 38054 GRENOBLE cedex 9 FRANCE | | E.Mail address : crouzy@dsvsud.cea.fr | *--------------------------------------------* ==== But I want to be able to close up the so-called Box grouping, so the reader can skip around it if he wishes. And I want any Text and Input cells after the Box to be back in the normal section grouping. David Park djmp@earthlink.net http://home.earthlink.net/~djmp/ > next text or Input cell you typed would be in the outer Section and NOT in > the Subsection. Perhaps Mathematica could detect this if the Subsection was > closed, or perhaps there could be an EndSubsection statement, or perhaps > there could be a new type grouping called a BoxGroup. This ability would be > very convenient for a smooth flow of presentation in a notebook. The box > groups might also contain code that goes with certain material but that > isn't essential for the reader to view on a first reading. Not sure if this is what you want but in AuthorTools there is the possibility of (automatic) grouping of MathCaption style cells (as used in the Help Browser) with Input/Output cells. Converting to two-column layout one gets an approximation to the style used in the Mathematica book. Paul -- The University of Western Australia (CRICOS Provider No 00126G) AUSTRALIA http://physics.uwa.edu.au/~paul ==== Here's a quadratic fit with the x y term: allpoints = {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34}, {0.19, 0.64, 0.31}, {0.19, 1.04, 0.29}, {0.19, 1.07, 0.31}, {0.2, 0.54, 0.39}, {0.2, 0.59, 0.35}, {0.2, 0.63, 0.32}, {0.2, 0.66, 0.3}, {0.2, 0.69, 0.28}, {0.2, 1, 0.28}, {0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09, 0.34}, {0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21, 0.62, 0.33}, {0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31}, {0.21, 1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4}, {0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29}, {0.22, 0.92, 0.28}, {0.22, 0.95, 0.29}}; ClearAll@f f[x_, y_] = Fit[allpoints, {1, x, y, x y, x^2, y^2}, {x, y}] tabdata = Table[f[x, y], {x, 0.25, 0.7, 0.05}, {y, 0.3, 1.1, 0.1}]; ListPlot3D[tabdata] Bobby I have a list of 3D data that is not uniformly spaced (obtained through > monte carlo sampling). Is it possible to interpolate a function across > the range of the sampled points and plot the interpolated 3d function? A sample of the data in the table (allpoints) looks like this: {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34}, {0.19, 0.64, 0.31}, {0.19, > 1.04, 0.29}, {0.19, 1.07, 0.31}, {0.2, 0.54, 0.39}, { > 0.2, 0.59, 0.35}, {0.2, 0.63, 0.32}, {0.2, 0.66, 0.3}, {0.2, 0.69, > 0.28}, {0.2, > 1, 0.28}, {0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09, > 0.34}, {0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21, > 0.62, 0.33}, {0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31}, > {0.21, > 1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4}, { > 0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29}, {0.22, > 0.92, 0.28}, {0.22, 0.95, 0.29} } I had something in mind like: f[x_, y_, z_] = Interpolation[Flatten[allpoints, 1]] > tabdata = Table[f[x, y, z ], {x, 0.25, 0.7, > 0.05}, {y, 0.3, 1.1, 0.1}, {z, 0.3, 1.1, 0.1}] > ListPlot3D[tabdata] but must be missing something important because I can't get a plot out > of Mathematica. Would someone please help me with the correct use of > interpolation for 3d data? Also, is another plot type more appropriate? Michael ==== I suspect somebody will have a better solution, but, assuming your data points are {x,y,f[x,y]} values, here's a cubic fit in both directions: allpoints = {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34}, {0.19, 0.64, 0.31}, {0.19, 1.04, 0.29}, {0.19, 1.07, 0.31}, {0.2, 0.54, 0.39}, {0.2, 0.59, 0.35}, {0.2, 0.63, 0.32}, {0.2, 0.66, 0.3}, {0.2, 0.69, 0.28}, {0.2, 1, 0.28}, {0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09, 0.34}, {0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21, 0.62, 0.33}, {0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31}, {0.21, 1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4}, {0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29}, {0.22, 0.92, 0.28}, {0.22, 0.95, 0.29}}; ClearAll@f f[x_, y_] = Fit[allpoints, {1, x, y, x^2, y^2, x^3, y^3}, {x, y}] tabdata = Table[f[x, y], {x, 0.25, 0.7, 0.05}, {y, 0.3, 1.1, 0.1}]; ListPlot3D[tabdata] Bobby I have a list of 3D data that is not uniformly spaced (obtained through > monte carlo sampling). Is it possible to interpolate a function across > the range of the sampled points and plot the interpolated 3d function? A sample of the data in the table (allpoints) looks like this: {{0.19, 0.54, 0.39}, {0.19, 0.6, 0.34}, {0.19, 0.64, 0.31}, {0.19, > 1.04, 0.29}, {0.19, 1.07, 0.31}, {0.2, 0.54, 0.39}, { > 0.2, 0.59, 0.35}, {0.2, 0.63, 0.32}, {0.2, 0.66, 0.3}, {0.2, 0.69, > 0.28}, {0.2, > 1, 0.28}, {0.2, 1.03, 0.3}, {0.2, 1.06, 0.32}, {0.2, 1.09, > 0.34}, {0.21, 0.47, 0.45}, {0.21, 0.54, 0.39}, {0.21, > 0.62, 0.33}, {0.21, 0.65, 0.31}, {0.21, 1, 0.3}, {0.21, 1.02, 0.31}, > {0.21, > 1.05, 0.33}, {0.21, 1.08, 0.35}, {0.22, 0.53, 0.4}, { > 0.22, 0.66, 0.31}, {0.22, 0.68, 0.3}, {0.22, 0.7, 0.29}, {0.22, > 0.92, 0.28}, {0.22, 0.95, 0.29} } I had something in mind like: f[x_, y_, z_] = Interpolation[Flatten[allpoints, 1]] > tabdata = Table[f[x, y, z ], {x, 0.25, 0.7, > 0.05}, {y, 0.3, 1.1, 0.1}, {z, 0.3, 1.1, 0.1}] > ListPlot3D[tabdata] but must be missing something important because I can't get a plot out > of Mathematica. Would someone please help me with the correct use of > interpolation for 3d data? Also, is another plot type more appropriate? Michael ==== Given a function x y + Sin[x] Cos[y] I need to convert it into the list {{x,y},{Sin[x],Cos[x]}} Generally, the purpose to convert a function Sum[p[i,x] q[i[y], {i,1,n}] into the list {{p[1,x],q[1,y]},...,{p[n,x],q[n,y]} How to do it using Mathematica? V.Z. ==== [...] > I would like to add from that my reason for asking the question were > simply curiosity if this concept really deserved to have a special name > and position within Mathematica (as an option in Integrate), since > mathematically it amounts to just simple taking of limits in a rather > obvious way. Since Alain convinced me that it has significant > applications my doubts have been resolved. Now that your doubts concerning usefulness of the concept have been resolved, I feel compelled to point out how limited Mathematica's implementation of PrincipalValue actually is. The primary statement in the documentation is PrincipalValue is an option for Integrate that specifies whether the Cauchy principal value should be found for a definite integral. Of course, if Mathematica did that, I would have no complaint. Let's look at some cases where PrincipalValue does not give the principal value. Integrate[1/x^3, {x, -1, 1}, PrincipalValue -> True] should give us 0, rather than merely the statement that Integrate[1/x^3, {x, -1, 1}] doesn't converge. (Of course, the latter is true. But it doesn't answer the question which was asked.) Later, the documentation states that Setting PrincipalValue->True gives finite answers for integrals that had single pole divergences with PrincipalValue->False. Well, the example above had a single pole (of order 3), so we might think that PrincipalValue should have worked there. But in fact, surely the documentation should have said simple pole, rather than single pole. (Or are simple and single considered interchangeable in this context? If so, I'm not aware of it.) Note that PrincipalValue can work correctly when there is more than one simple pole. For example, we have correctly In[1]:= Integrate[1/x + 1/(x - 1), {x, -1, 3}, PrincipalValue -> True] Out[1]= Log[3] Of course, rather than merely having the documentation changed to read simple instead of single, I'd far, far rather have PrincipalValue work for poles of any order, just as the primary statement would lead us to believe. The other issue is that of doubly infinite integrals, a very important class for which the principal value may be required. Mathematica should be able to give the principal value in such cases. This discussion of PrincipalValue started in the thread Improper integral when Jean-Claude asked about Integrate[x/(1+x^2),{x,-Infinity,Infinity},PrincipalValue->True]. In that thread, it was shown how the user can, easily enough, obtain the principal value by asking Mathematica for the obvious symmetric limit. But if that's so easy, then Mathematica should be able to do that itself when PrincipalValue is specified! FWIW, there's a different way to help Mathematica get that principal value -- using, of all things, PrincipalValue itself. Change the variable in Integrate[x/(1+x^2),{x,-Infinity,Infinity},PrincipalValue->True] by letting x = 1/y. In general, that change turns an integral of the form Integrate[f(x),{x,-Infinity,Infinity}] into one of the form Integrate[f(1/y)/y^2,{y,-Infinity,Infinity}]. We are very lucky in our case that the resulting integral happens to have just a _simple_ pole. In[2]:= Integrate[1/(y*(y^2 + 1)), {y, -Infinity, Infinity}, PrincipalValue -> True] Out[2]= 0 David Cantrell ==== Jens-Peter Kuska already gave you some good hints which I fully support. As a rather similar problem a was reading output of another mesh generator (EasyMesh) with Mathematica. Find the source on my web site http://www.hta-bi.bfh.ch/~sha/fem/Mathematica2D/ The code is rather simplistic. Very similar procedures will allow to read the output of triangle. If need arises i have a few typed up comments on the structure of the Andreas ==== I'd like to define an operator such as ... IntegrationOperator[f_] = Integrate[f, {t, 0, 1}] so that if ... g[x_, t_] = x t I could write something like ... h[x_] = IntegrationOperator[g][x] How does one accomplish this in Mathematica?