mmcdara

6640 Reputation

18 Badges

8 years, 129 days

MaplePrimes Activity


These are answers submitted by mmcdara

Hi, 


I guess that R1 and R2 have bounded supports S1 and S2 (if not either the min or the max or both of them is infinite).
I also admit that the function f : (R1, R2) ---> X is everywhere defined over S1xS2 (wich is not the case if f(R1,R2)=R1/R2 and S2 contains {0}).

So, if I understand correctly your question,  there is no need to use random variables to find the min and the max of X.

Look to the package Tolerances, it should answer your question.

The case of "nom" (I guess "nominal") is more subtle. But if you do not rely "nominal" to some statististics of R1 and R2 ("nominal" is just some specific value, not a mean, median, mode, ...) then Tolerances is stiil the paxkage to use.

If "nominal" repesent mean values (for instance), the "nominal" value of X can be easily obtained by using the package ScientificErrorAnalysis.
Feel free to tell me if this didn't help

If you want to represent a univariate polynomial in some orthogonal polynomial expansion, this might interest you.

PS: the last command InsertContent(Worksheet(Group(Input( A ))));  can't be displayed here, just run the code to visualize it.

restart:

interface(version);

`Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895`

(1)

with(DocumentTools):
with(DocumentTools:-Layout):

OP := with(orthopoly)

[G, H, L, P, T, U]

(2)

F := proc(P, x, B)
  local d, C, Q, symb:

  if _npassed = 4 and _passed[3] <> G then
    error cat("A fourth argument (", _passed[4], ") is provided but the orth. poly is not of type G")
  end if;
  if _npassed = 3 and _passed[3] = G then
    error cat("Using type G orth. poly. needs to pass F a fourth argument, see orthopoly[G] help page")
  end if;
  d    := degree(P, x):
  symb := convert(cat("#mrow(mo(", B, "))"), name);
  if _passed[3] <> G then
    Q := add(a[n]*B(n, x), n=0..d):
    C := op(solve( [ coeffs( collect(expand(P-Q), x), x) ], [ seq(a[n], n=0..d) ] )):
    return add(rhs~(C) *~ [ seq(symb(n, x), n=0..d) ])
  else
    Q := add(a[n]*B(n, _passed[4], x), n=0..d):
    C := op(solve( [ coeffs( collect(expand(P-Q), x), x) ], [ seq(a[n], n=0..d) ] )):
    return add(rhs~(C) *~ [ seq(symb(n, _passed[4], x), n=0..d) ])
  end if:
end proc:

# Laguerre representation of polynom Pol
# (watchout : do not name P this polunomial to avoid conflicts with orthopoly P)
# note the character "L" that appears here is not the "L" which represents LaguerreL polynomials

Pol := randpoly(x, dense, degree = 4);

B   := L:
pol := F(Pol, x, B);
pol := F(Pol, x, B, 1);

print();
B   := G:
pol := F(Pol, x, B);
pol := F(Pol, x, B, 1);

-83*x^4+98*x^3-48*x^2-19*x+62

 

-1457*`#mrow(mo(L))`(0, x)+6415*`#mrow(mo(L))`(1, x)-10284*`#mrow(mo(L))`(2, x)+7380*`#mrow(mo(L))`(3, x)-1992*`#mrow(mo(L))`(4, x)

 

Error, (in F) A fourth argument (1) is provided but the orth. poly is not of type G

 

 

Error, (in F) Using type G orth. poly. needs to pass F a fourth argument, see orthopoly[G] help page

 

(317/8)*`#mrow(mo(G))`(0, 1, x)+15*`#mrow(mo(G))`(1, 1, x)-(441/16)*`#mrow(mo(G))`(2, 1, x)+(49/4)*`#mrow(mo(G))`(3, 1, x)-(83/16)*`#mrow(mo(G))`(4, 1, x)

(3)

 

# Extract the symbol used and replace it by B and verify the result is Pol

symb := op(0, indets(pol, function)[1]);
eval(pol, symb=B);
%-Pol

`#mrow(mo(G))`

 

-83*x^4+98*x^3-48*x^2-19*x+62

 

0

(4)

# Several orthogonal polynomials representations
# Watchout: Gegenbauer polynomials ar not handled
N := numelems(OP):
M := Matrix(N+1, 2):
M[1, 1] := 'canonical':
M[1, 2] := Pol:
k := 2:
for B in OP do
  M[k, 1] := B:
  M[k, 2] := `if`(B <> G, F(Pol, x, B), F(Pol, x, B, 1)); # for instance
  k := k+1:
end do:


A := Table(
            seq(Column(), k=1..12), widthmode=percentage, width=60, # width has to be adjusted for larger expressions
            seq(
                 Row(
                      Cell( Textfield( style=TwoDimOutput, Equation(M[k,1]) ), columnspan=2),
                      Cell( Textfield( style=TwoDimOutput, Equation(M[k, 2]) ), columnspan=10)
                 ),
                 k=1..N+1
            )
     ):
InsertContent(Worksheet(Group(Input( A ))));

  

 


 

Download OrthopolyRepresentation.mw


You will find below how to modify the structure plotted by DrawGraph in order that the thickness of the edges are proportional to their weights.
The code is not robust because it doesn't gandle situations where the weights are not integers nor situations where the range of the weight is very large (let's say 1..100 for instance).
I tried to be pedagocic by diplaying intermediate steps.

PS: I used MAPLE 2015... maybe more recent version have embedded features to do all thus stuff



 

restart:

interface(version);

`Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895`

(1)

with(GraphTheory):

G := Graph({[{1,2},2],[{2,3},1],[{1,3},3]});

GRAPHLN(undirected, weighted, [1, 2, 3], Array(%id = 18446744078219989110), `GRAPHLN/table/1`, Matrix(%id = 18446744078220584678))

(2)

p := DrawGraph(G):
plots:-display(p);

 

# What does p contain?

d := [op(p)]:
print~(d):

POLYGONS([[.5252013392, 1.025201339], [.5252013392, .9747986607], [.4747986606, .9747986607], [.4747986606, 1.025201339]], [[.9582140413, .2752013392], [.9582140413, .2247986606], [.9078113627, .2247986606], [.9078113627, .2752013392]], [[0.9218863736e-1, .2752013393], [0.9218863736e-1, .2247986607], [0.4178595884e-1, .2247986607], [0.4178595884e-1, .2752013393]], COLOR(RGB, 1, 1, .2, 1, 1, .2, 1, 1, .2), STYLE(PATCHNOGRID))

 

TEXT([.4999999999, 1.0], 1, FONT(HELVETICA, BOLD, 12))

 

TEXT([.9330127020, .2499999999], 2, FONT(HELVETICA, BOLD, 12))

 

TEXT([0.6698729810e-1, .2500000000], 3, FONT(HELVETICA, BOLD, 12))

 

POLYGONS([[.9330127020, .2499999999], [.4999999999, 1.0]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

 

POLYGONS([[0.6698729810e-1, .2500000000], [.4999999999, 1.0]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

 

POLYGONS([[0.6698729810e-1, .2500000000], [.9330127020, .2499999999]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

 

TEXT([.7613076212, .5508660253], "2", ALIGNRIGHT, ALIGNABOVE, FONT(HELVETICA, 11))

 

TEXT([.2469423789, .5461028857], "3", ALIGNRIGHT, ALIGNBELOW, FONT(HELVETICA, 11))

 

TEXT([.4133974597, .2543301270], "1", ALIGNRIGHT, ALIGNABOVE, FONT(HELVETICA, 11))

 

SCALING(CONSTRAINED)

 

AXESSTYLE(NONE)

(3)

nv := numelems(Vertices(G));
ne := numelems(Edges(G));

3

 

3

(4)

# d[1]                   draws the nv yellow squares that represent the vertices
# d[2]...d[nv+1]         draw the labels of the vertices
# d[nv+2]..d[nv+2+ne-1]  draw the ne edges
# ...
#
# q contains the elements of d that we won't change
# r contains the elements of d that we are going to change

q := d[[$1..nv+1, $nv+2+ne..numelems(d)]]:
print~(q):

print():
r := d[[$nv+2..nv+2+ne-1]]:
print~(r):

POLYGONS([[.5252013392, 1.025201339], [.5252013392, .9747986607], [.4747986606, .9747986607], [.4747986606, 1.025201339]], [[.9582140413, .2752013392], [.9582140413, .2247986606], [.9078113627, .2247986606], [.9078113627, .2752013392]], [[0.9218863736e-1, .2752013393], [0.9218863736e-1, .2247986607], [0.4178595884e-1, .2247986607], [0.4178595884e-1, .2752013393]], COLOR(RGB, 1, 1, .2, 1, 1, .2, 1, 1, .2), STYLE(PATCHNOGRID))

 

TEXT([.4999999999, 1.0], 1, FONT(HELVETICA, BOLD, 12))

 

TEXT([.9330127020, .2499999999], 2, FONT(HELVETICA, BOLD, 12))

 

TEXT([0.6698729810e-1, .2500000000], 3, FONT(HELVETICA, BOLD, 12))

 

TEXT([.7613076212, .5508660253], "2", ALIGNRIGHT, ALIGNABOVE, FONT(HELVETICA, 11))

 

TEXT([.2469423789, .5461028857], "3", ALIGNRIGHT, ALIGNBELOW, FONT(HELVETICA, 11))

 

TEXT([.4133974597, .2543301270], "1", ALIGNRIGHT, ALIGNABOVE, FONT(HELVETICA, 11))

 

SCALING(CONSTRAINED)

 

AXESSTYLE(NONE)

 

 

POLYGONS([[.9330127020, .2499999999], [.4999999999, 1.0]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

 

POLYGONS([[0.6698729810e-1, .2500000000], [.4999999999, 1.0]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

 

POLYGONS([[0.6698729810e-1, .2500000000], [.9330127020, .2499999999]], COLOR(RGB, 0, 0, 1), THICKNESS(2), STYLE(LINE))

(5)

# verification
plots:-display(r);

 

# get tertex positions


v := GetVertexPositions(G);

[[.4999999999, 1.0], [.9330127020, .2499999999], [0.6698729810e-1, .2500000000]]

(6)

# change the default thickness by the weight of the edge(assuming it is a positive number)

W := WeightMatrix(G);
S := NULL:

for s in r do
  __edge      := op(1, s):                           # the edge "s"
  __from_to   := map(ListTools:-Search, __edge, v):  # starts at "from" and ends at "to"
  __thickness := W[op(__from_to)]:
  
  S := S, subs(THICKNESS(2) = THICKNESS(__thickness), s)
end do:

PLOT(S);

W := Matrix(3, 3, { sparse_data }, storage = sparse, shape = [symmetric])

 

 

# plot the sequence q, S

PLOT(q[], S)

 

 


 

Download WeightedEdges.mw

 

To complete Kitonum's and Rouben's replies, and if you have Maple 2018 or higher, you can also use the Kriging method (from memory look to the CurveFitting package ... If I'm mistaken please corrrect me).
Less immediate if you do not know the basis of Kriging, but this will give you a more flexible way to obtain a function which interpolates your unknown function from a set of X-Y couples.
For I only have Maple 2015 right now, I've written an extremely simple procedure to do "simple Kriging". Here is a few examples of interpolators you can build (the X-Y couples come from your plot)?
They differ by the value of a scalar parameter which controls the smoothness of the interpolation.

@tayyild 

Here is a solution which works for 2 or more polynomials of arbitrary number of monomials.
The procedure needs two lists P and V of equal lengths:

  • P[n] denotes the number of monomials of polynom n
  • V[n] denotes the symbol used to represent polynom n

Your first example is coded P := [2, 2], V=[x, y] and your second P := [3, 3], V=[x, y].

A_general_solution.mw

Hi, 

Maybe you could begin by looking at the functions these 3 different packages provide (the texts come from a copy-paste of the help pages). You will probably find a lot of useful informations.

  • The DynamicSystems package is a collection of procedures for creating, manipulating, simulating, and plotting linear systems models.
    In particular,
    •  The TransferFunction command creates a transfer function (TF) system object. The frequency-domain behavior of the object is modeled by rational functions (ratpoly) corresponding to transfer functions in the frequency domain.
       
  • The ExcelTools package is a collection of commands that allow access to data stored in Microsoft Excel format (XLSX and XLS).

  • Mayne this one can also be usefull: The SignalProcessing package provides commands for manipulating signals. Specifically, these commands work on samples of signals stored in Vectors with datatype float[8] or complex[8].


 

 

Maybe you could use FileTools[Binary][CountBytes](file) to check if the number of bytes has changed from the previous 
checking.

 

Hi, 

Weighted Least Squares are defined by (in your notation) wi*(yi_exp-yi_calc)^2.
So Maple should use this weighting... 
It's easy to check what Maple realy does if you compute the regression coefficients by hand.

Download Weighed_Least_Squares.mw

 

 

The answer is : Yes, Maple uses the formula wi*(yi_exp-yi_calc)^2

 

I understand that y is a function of t parameterized by K and M and I guess your experimental data are observations of Y for some values of t. Am I right?
If I am, then you will find a few elements in the attached file that could help you.
In a few words:

  • If the integral of f*g*p has a closed form expression (case 1 in the attached file), then you can (probably alwways) use NonlinearFit.
  • But given the error message you got, I assume it's not the case.
    Case 2 in the attached file mimics that situation where you cannot use NonlinearFit
  • I propose a workaround based on the minimization of an objective function defined as the sum of squares between y(t[n], K, M) and the observations of Y at "times" t[n].

In all the examples I generate pseudo observations this way:

  1. I fix K and M to a priori values (here 0.1 and 1)
  2. I compute y(t, K, M) for integer values of t from 0 to 10 included
  3. So the solution returned by any minimization algorithm must be K=0.1 and M=1
     

The two-steps definition of Y is not necessary: here I first define y(t) in a general way, next I specify Y by giving specific forms to f, g and p.
You can "muse" by changing these expressions to see what happens. Note that, for your real problem, the numerical integration method I use (_Qquad, see help(Int[evalf]) ) may not be the correct one to use.

Do not hesitate to contact me for more information.

 

restart:


Case 1: the product f.g.p is integrable

y := t -> M*int(f(x)*g(x, M)*p(x, t, M,K), x=a..b)

proc (t) options operator, arrow; M*(int(f(x)*g(x, M)*p(x, t, M, K), x = a .. b)) end proc

(1)

# Example:
# an arbitrary choice of f, g and p

Y := eval(y(t), [f=(x->x+1), g=((x,M)->x*M), p=((x,t,M,K)->exp(x*M+t*K))])

-(M^2*exp(K*t+M*a)*a^2-M^2*exp(K*t+M*b)*b^2+M^2*exp(K*t+M*a)*a-M^2*exp(K*t+M*b)*b-2*M*exp(K*t+M*a)*a+2*M*exp(K*t+M*b)*b-M*exp(K*t+M*a)+M*exp(K*t+M*b)+2*exp(K*t+M*a)-2*exp(K*t+M*b))/M

(2)

# Example continued:
# Taking a=0 and b=1, and assuming K=1/10 and M =1,
# generate 11 observations of Y for values of t from 0 to 10 by 1

Y__obs := evalf( [ seq(eval(Y, [M=1, K=1/10, a=0, b=1]), t =0..10) ] )

[1.718281828, 1.898995106, 2.098714165, 2.319437860, 2.563375269, 2.832967799, 3.130913624, 3.460194685, 3.824106536, 4.226291331, 4.670774271]

(3)

# Example still continues:
# How can we assess K and M by fitting the "model" Y on the observations?

Yab := eval(Y, [a=0, b=1]):

Statistics:-NonlinearFit(Yab, Vector([$0..10]), Vector(Y__obs), t, output=parametervalues)

[K = HFloat(0.10000000020542806), M = HFloat(0.9999999997494194)]

(4)

 

 

 

 

restart:


Case 2: the product f.g.p is not integrable

The error Maple returns is the one you mention in your post

y := t -> M*int(f(x)*g(x, M)*p(x, t, M,K), x=a..b)

proc (t) options operator, arrow; M*(int(f(x)*g(x, M)*p(x, t, M, K), x = a .. b)) end proc

(5)

# Example:
# an arbitrary choice of f, g and p

Y := eval(y(t), [f=(x->cos(x)), g=((x,M)->x*M), p=((x,t,M,K)->exp(x^3*M+t*K))])

M*(int(cos(x)*x*M*exp(M*x^3+K*t), x = a .. b))

(6)

# Example continued:
# Taking a=0 and b=1, and assuming K=1/10 and M =1,
# generate 11 observations of Y for values of t from 0 to 10 by 1


T__obs := [$0..10]:
Y__obs := evalf( [ seq(eval(Y, [M=1, K=1/10, a=0, b=1]), t in T__obs) ] )

[.5653284956, .6247846125, .6904937838, .7631136490, .8433710121, .9320691157, 1.030095680, 1.138431789, 1.258161705, 1.390483727, 1.536722177]

(7)

# Example still continues:
# How can we assess K and M by fitting the "model" Y on the observations?

Yab := eval(Y, [a=0, b=1]);

Statistics:-NonlinearFit(Yab, Vector(T__obs), Vector(Y__obs), t, output=parametervalues)

M*(int(cos(x)*x*M*exp(M*x^3+K*t), x = 0 .. 1))

 

Error, (in Statistics:-NonlinearFit) integration range or variable must be specified in the second argument, got HFloat(1.0) = 0 .. 1

 


a workaround on the same example

y := (t, K, M) ->
          evalf(
            M*Int(
                   eval( f(x)*g(x, M)*p(x, t, M,K), [f=(x->cos(x)), g=((x,M)->x*M), p=((x,t,M,K)->exp(x^3*M+t*K))] ),
                   x  = eval(a..b, [a=0, b=1]),
                   method = _Gquad
                 )
          ):


# examples :

y(t, K, M);

y(1, 1, 1)

M*(Int(cos(x)*x*M*exp(M*x^3+K*t), x = 0. .. 1.))

 

1.536722177

(8)

# Define the "objective function" as the residual sum of squares

obj := proc(K, M) add( ( y(T__obs[n], K, M) - Y__obs[n] )^2, n=1..numelems(T__obs) ) end proc:

# Use (for instance) Optimization:-NLPSolve to find the minimum of
# the objective function.
#
# Watchout: the ranges of K and M are of major importance.



Optimization:-NLPSolve(obj, 0.01..1, 0.01..2, maximize=false)

[1.48665091403573251*10^(-17), Vector(2, {(1) = .10000000038302202, (2) = .9999999991544702}, datatype = float[8])]

(9)

 


 

Download NonlinearFit.mw


 

Agree with Carl Love.
More of this the result will probably take an amazingly huge size unless you use a very small degree.

If you are really interested to use Spline you must correct the syntax of the Spline command.
Here is an example

 

Download Spline.mw

A few lines above the error you assigned C to the ExcelTools:-Import(...);
So, just befor PDE2 := ... unassign C by writting  C := 'C'

No justification for using the non linear least squares method as long as you are not working with samples.
No Statistics without samples: here the problem can be interpreted as a L2 projection of f1 on the space spanned by f2 :

 

restart

a, b:=0, 5:

f1:=x->(2*x)/(3+5*x):  

f2:=x->a1*(a3-exp(-a2*x)):

# choose a numerical range
# Watchout : f1 as a pole for x=-3/5, so it's better if this value is
# not in the integration range

J := int((f1(x)-f2(x))^2, x=0..2)

(1/3250)*(6500*a1^2*a3^2*a2*exp(4*a2)+1560*a1*a3*ln(13)*a2*exp(4*a2)-1560*exp(4*a2)*ln(3)*a1*a2*a3-1560*exp((23/5)*a2)*Ei(1, (3/5)*a2)*a1*a2-6500*exp(4*a2)*a1^2*a3-5200*a1*a3*a2*exp(4*a2)-624*ln(13)*a2*exp(4*a2)+624*exp(4*a2)*ln(3)*a2+1625*exp(4*a2)*a1^2+2600*exp(4*a2)*a1+1280*a2*exp(4*a2)+6500*a1^2*a3*exp(2*a2)+1560*a1*Ei(1, (13/5)*a2)*a2*exp((23/5)*a2)-2600*a1*exp(2*a2)-1625*a1^2)*exp(-4*a2)/a2

(1)

dJ := [ seq(diff(J, z), z in [a1, a2, a3]) ]:

fsolve(dJ)

{a1 = .2999350509, a2 = 1.601371534, a3 = 1.046500158}

(2)

plot([f1(x), eval(f2(x), %)], x=0..2, color=[blue, red])

 

 


 

Download L2_projection.mw

Since I've been talked of MathML and showed what we can do with it I'm having a lot of fun to use it.
Here is an example
(unfortunately limited to 2D plots for 3D plots generate this curious "Maple is unable to render 3D graphics" as soon as more than one tickmark is modified).

Download coding.mw

Reply to question 2 only

I don't know if Maple is capable to transform the Table of my previous post ???
What I use to do is to generate a LaTeX source file directly by writting LaTeX in Maple under text form and saving it to a text file with fprintf commands.
Of course that method needs you to know LaTeX.

PS : in your simple case you could write this directly in a LateX source file.

The only thing to know is that you must protect some special characters : \, {, —, &, and probably a few more.
To do this just type \\, \{, \}, \& ... instead.

Here is something that should do the job (if I didn't make typos).
Unfortunately I don't have any operational LaTeX installation toght now to verify this, but if you have one just copy the content of the file "LatexFile.txt" into your own LaTeX source and compile it.


 

restart:

file := cat(currentdir(), "/desktop/LatexFile.txt"):

fd := fopen(file, WRITE);

0

(1)

ToWrite := cat("\\begin\{tabular\}{|", seq("c|", k=1..7), "\}"):
fprintf(fd, "%s\n", ToWrite):

ToWrite := "\\hline":
fprintf(fd, "%s\n", ToWrite):

ToWrite := cat("x \& ", seq(cat("\\multicolumn\{2\}\{c|\}\{t_", k, " = ", evalf((2*k-1)/3), "\}\&"), k=1..3)):
fprintf(fd, "%s\n", cat(ToWrite[1..-2], "\\\\")):

ToWrite := "\\cline\{2-7}":
fprintf(fd, "%s\n", ToWrite):

ToWrite := cat(seq(cat(" f(x,t) \& g(x,t) \&"), k=1..3)):
fprintf(fd, "%s\n", cat(ToWrite[1..-2], "\\\\")):


for k from 1 to 3 do
   ToWrite := cat("x_", k, " = ", evalf((2*k-1)/3), seq(" \& ", j=1..5), "\\\\"):
   fprintf(fd, "%s\n", ToWrite):
   ToWrite := "\\hline":
   fprintf(fd, "%s\n", ToWrite):
end do:

ToWrite := "\\end\{tabular\}":
fprintf(fd, "%s\n", ToWrite):

 

fclose(file):
fd := fopen(file, READ);

line := readline(fd):
while line <> 0 do
   printf("%s\n", line):
   line := readline(file):
end do:

fclose(file);

0

 

\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
x & \multicolumn{2}{c|}{t_1 = .3333333333}&\multicolumn{2}{c|}{t_2 = 1.}&\multicolumn{2}{c|}{t_3 = 1.666666667}\\
\cline{2-7}
 f(x,t) & g(x,t) & f(x,t) & g(x,t) & f(x,t) & g(x,t) \\
x_1 = .3333333333 &  &  &  &  & \\
\hline
x_2 = 1. &  &  &  &  & \\
\hline
x_3 = 1.666666667 &  &  &  &  & \\
\hline
\end{tabular}

 

 


 

Download DocumentTools[Layout]_2_LaTeX.mw

Reply to question 1 only

Look to the attached file and customize it as you want (PS : the output of the last command cannot be loaded on this site)

 

restart:

with(DocumentTools):

with(DocumentTools[Layout]):

T := Table(
       seq(Column(), k=2..7), widthmode=percentage, width=60, alignment=center,
       Row(
            Cell("x", rowspan=2, padding=20),
            Cell(Textfield(style=TwoDimOutput, Equation(t[1]=evalf[5](1/3))), columnspan=2),
            Cell(Textfield(style=TwoDimOutput, Equation(t[2]=1)), columnspan=2),
            Cell(Textfield(style=TwoDimOutput, Equation(t[3]=evalf[5](5/3))), columnspan=2)
       ),
       Row(
            seq(
                 op([
                      Cell(Textfield(style=TwoDimOutput, Equation(f(x(t))))),
                      Cell(Textfield(style=TwoDimOutput, Equation(g(x(t)))))
                 ]),
                 k=1..3
            )
       ),
       seq(
         Row(
            Cell(Textfield(style=TwoDimOutput, Equation((t[1]=evalf[5](k/3))))),
            seq(Cell(" "), j=1..6)
         ), k in [1, 3, 5]
       )
     ):

InsertContent(Worksheet(Group(Input( T )))):

 


 

Download DocumentTools[Layout].mw

First 44 45 46 47 48 49 50 Last Page 46 of 57