8 years, 71 days

## Two ways...

What is the point in using local m?
Remove it and verify that

```for k from 1 to 4 do
A[k] := Matrix(k, k, (i, j) -> ifelse(i + j < k + 2, add(Y[i - m + j - 1]*binomial(i - 1, m)*(-1)^m, m = 0 .. i - 1), 0));
end do```

gives the expected result.

If you really want local m uses parenthesis:

```for k from 1 to 4 do
A[k] := Matrix(k, k, (i, j) -> (local m; ifelse(i + j < k + 2, add(Y[i - m + j - 1]*binomial(i - 1, m)*(-1)^m, m = 0 .. i - 1), 0)))
end do
```

## You have been misled by the display...

It is not because the display of den1 contains terms involving t that den1 INDEED depends on t.
This is a "side effect" of simplify.

```
Functions_of_t := print~(select(has, indets(simplify(eval(den1, para), size), function), t)):
exp(-I exp(I t))

exp(I t)

exp(I exp(I t))

/1   /   (1/2)  (1/2)             \\
exp|- I \x 3      4      - 4 exp(I t)/|
\4                                 /

/1   /   (1/2)  (1/2)             \\
exp|- I \x 3      4      + 4 exp(I t)/|
\4                                 /

Functions_of_t := select(has, indets(expand(eval(den1, para)), function), t);
{}
```

## Unfortunately a click on the button lab...

Unfortunately a click on the button labelled "PDF" returns an error.
For instance
PDF.js v2.6.347 (identifiant de compilation : 3be9c65f)
Message : The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.

Are these two PDF freely avaliable?

## You're right...

@Sotto

I was happy it worked but i was wrong, my approach is nor reliable.
Sorry for the inconvenience

## Optimisation of C__01, C__10, kappa....

@Ariathm  @dharr

Here is a very simple version (one might say naive) of a Genetic Algorithm (GA) aimed to find the global minimum of the functional (I use @dharr's p__eng1, procedure):

`Target := add((p__eng1~(C__10, C__01, kappa, X) - Y)^~2):`

Running this GA several times after executing randomize() give very close graphical results... but quite different parameter solutions.

My feeling is that the best fit is not a point in R3 but more likely a surface S, or a bounded part of it, on which the value of target is almost the same.
This would not be surprising and it is even a quite common situation when you fit nonlinear models (C__01, C__10 and kappa are linked though the brown command in theprocedure below

```p__eng1 := proc(C10, C01, k, lam)
local rval;
if map(type, {C10, C01, k, lam}, 'numeric') <> {true} then return 'procname'(_passed) end if;
rval := fsolve(p__3(C10,C01,k,J,lam),J=0..infinity);
eval(p, {rr=rval, C__01=C01, C__10=C10, kappa=k, lambda=lam})
end proc:
```

So I guess the last results @dharr got (kappa=1000) do not mean that kappa=1000, or is even larger, but more likely that the solution point he got belongs to the surface S.
The attached file contains two almost visually indistinguishable different solutions:

```C__10 = 1.30466308839906, C__01 = 3.64325033753373, kappa = 21.1929868963973

# and
C__10 = 1.16345754078787, C__01 =  3.53258657311166, kappa = 43.2896869568326})```

GA.mw

@dharr in myt last job I used to use the GlobalOptimization toolbox As it offers a geneticalgorithm I believe it would be interesting to apply it on @Ariathm's problem. Do you have it?

## Thanks for the explanation....

It is more or less what I suspected.

## @Scot Gould Thank you for your kind...

The main difficulty in writting a visuaization procedure is that you must take into account a lot of situations and likely different expectations from different users.

For the record
Unless you use a grammar of graphics this can be a really painstaking process.
To have a hint about what a grammar of graphics is you can look here ggplot.
Basically such a grammar enables building arbitrary complex graphics by assembling specialized layers each having its own corpus of commands.
Doing so is like playing Lego: for instance there is no ErrorPlot function, but elementary bricks anyone can easily assemble to get the rendering he/her wants. This is a completely different point of view than the more classical one which consists in  delivering ready-made procedures that globally satisfy everyone, but that no one will find completely satisfactory.

## ​​​​​​​You're absolutely right....

And I just realized that I hardly ever look at the "Product" field.
I will try to remember that in the future.

I have just read your answer to @Sotto, why is _EnvExplicit:=true given that the coefficients of G are floating-point numbers?

## What is your Maple Version?...

 > kernelopts(version)
 (1)
 > G :=  (-0.14*y^3 + 1.20000000000000*y^2 - 1.26000000000000*y + 0.200000000000000)*x^3 + (1.20*y^3 - 10.0800000000000*y^2 + 10.0800000000000*y - 1.20000000000000)*x^2 + (-8.82*y + 10.08*y^2 - 1.26*y^3)*x + 1. - 1.2*y^2 + 0.2*y^3
 (2)
 > minimize(G, x=0..1, y=0..1);
 (3)
 > minimize(G, x=0..1, y=0..1, location)
 (4)

## Yes...

@imparter

In my file I used a function which is not the one @Carl Love builds, but the purpose was only to show you how you can customize the graph Carl provides.

## @Carl Love  The first expression (...

@Carl Love

The first expression (ET in the sequel) of z(xi) (case a > 0) given in the paper does not verify the ode.
For a quick verification solve ode with b=c=0 to get these two solutions:

```z(xi) = exp(xi*a^(1/2))/exp(_C1*a^(1/2)),
z(xi) = exp(_C1*a^(1/2))/exp(xi*a^(1/2))```

On the other side substituting  ET into the ode shows it does not verify this latter.
Check_ET.mw

## Customized graphic only...

Maple can produce a graphic which is quite closeto the one you display.
But this takes time and it is really for the sake of art (IMO):

Customized_graphic.mw

## Maybe...

```rt
pattern := "%15s":

for i from 1 to 5 do
printf(cat(pattern\$i, "\n"), "Hello"\$i)
end do
Hello
Hello          Hello
Hello          Hello          Hello
Hello          Hello          Hello          Hello
Hello          Hello          Hello          Hello          Hello
```

## This is a very good point....

Here are two files:

• To_vv_1.mw
I compare the solutions pdsolve returns on your example and a modified one to the solutions I get with the simple approach (SA) I predented in my first reply to @emendes (the one which requires compatibility conditions).
SA does not provide a solution for your toy problem  (a <> -d as you noticed).
For the second toy problem the pdsolve and SA give the same fundamental solution U(x, y).
I name it  fundamental in the sense that any function of U(x, y) is also a solution.
• To_vv_2.mw
I compared the results from pdsolve to those from the Method Of Characteristics (MOC in the sequel) on your toy problem.
For a given value K of U(x, y) the level curves deduced from pdsolve or MOC solutions are the same, provided some care is taken (some level curves may not be real or a real level curve may have multiple branches).
I'm not familiar with pdsolve but I used to use MOC several years ago. Depending on the initial conditions two characteristic curves (the level curves) may intersect, generating shocks where the solution has multiple values (one for each intersecting characteristic).
I know how to handle these shocks with MOC but I don't know what kind of solution pdsolve builds: is it a regular solution or a generalized solution containing shocks?

Note that MOC does not contain any compatibility condition.
I have to think twice to the real reason which makes a compatibility condition to appear when I write

```(4*x+2*y)*diff(u(x, y), x) + (x+3*y)*diff(u(x, y), y) = 0:

diff(u(x, y), x) = -(x+3*y);
diff(u(x, y), y) = (4*x+2*y);
```

as there are none when I write

```diff(x(s), s) = 4*x(s)+2*y(s);
diff(y(s), s) = x(s)+3*y(s);```

I was taught of SA the first year after college, and of MOC a few years latter. I had forgotten the first one until I replied this question and mentioned SA because it was very simple. Until you pointed out this issue, I would have said that the two methods were equivalent for continuous solutions (ie shocks-free solutions).

 1 2 3 4 5 6 7 Last Page 1 of 135
﻿