text:
You are currently browsing the monthly archive for September 2018.

We now begin the rigorous theory of the incompressible Navier-Stokes equations

$\displaystyle \partial_t u + (u \cdot \nabla) u = \nu \Delta u - \nabla p \ \ \ \ \ (1)$

$\displaystyle \nabla \cdot u = 0,$

where ${\nu>0}$ is a given constant (the kinematic viscosity, or viscosity for short), ${u: I \times {\bf R}^d \rightarrow {\bf R}^d}$ is an unknown vector field (the velocity field), and ${p: I \times {\bf R}^d \rightarrow {\bf R}}$ is an unknown scalar field (the pressure field). Here ${I}$ is a time interval, usually of the form ${[0,T]}$ or ${[0,T)}$. We will either be interested in spatially decaying situations, in which ${u(t,x)}$ decays to zero as ${x \rightarrow \infty}$, or ${{\bf Z}^d}$-periodic (or periodic for short) settings, in which one has ${u(t, x+n) = u(t,x)}$ for all ${n \in {\bf Z}^d}$. (One can also require the pressure ${p}$ to be periodic as well; this brings up a small subtlety in the uniqueness theory for these equations, which we will address later in this set of notes.) As is usual, we abuse notation by identifying a ${{\bf Z}^d}$-periodic function on ${{\bf R}^d}$ with a function on the torus ${{\bf R}^d/{\bf Z}^d}$.

In order for the system (1) to even make sense, one requires some level of regularity on the unknown fields ${u,p}$; this turns out to be a relatively important technical issue that will require some attention later in this set of notes, and we will end up transforming (1) into other forms that are more suitable for lower regularity candidate solution. Our focus here will be on local existence of these solutions in a short time interval ${[0,T]}$ or ${[0,T)}$, for some ${T>0}$. (One could in principle also consider solutions that extend to negative times, but it turns out that the equations are not time-reversible, and the forward evolution is significantly more natural to study than the backwards one.) The study of Euler equations, in which ${\nu=0}$, will be deferred to subsequent lecture notes.

As the unknown fields involve a time parameter ${t}$, and the first equation of (1) involves time derivatives of ${u}$, the system (1) should be viewed as describing an evolution for the velocity field ${u}$. (As we shall see later, the pressure ${p}$ is not really an independent dynamical field, as it can essentially be expressed in terms of the velocity field without requiring any differentiation or integration in time.) As such, the natural question to study for this system is the initial value problem, in which an initial velocity field ${u_0: {\bf R}^d \rightarrow {\bf R}^d}$ is specified, and one wishes to locate a solution ${(u,p)}$ to the system (1) with initial condition

$\displaystyle u(0,x) = u_0(x) \ \ \ \ \ (2)$

for ${x \in {\bf R}^d}$. Of course, in order for this initial condition to be compatible with the second equation in (1), we need the compatibility condition

$\displaystyle \nabla \cdot u_0 = 0 \ \ \ \ \ (3)$

and one should also impose some regularity, decay, and/or periodicity hypotheses on ${u_0}$ in order to be compatible with corresponding level of regularity etc. on the solution ${u}$.

The fundamental questions in the local theory of an evolution equation are that of existence, uniqueness, and continuous dependence. In the context of the Navier-Stokes equations, these questions can be phrased (somewhat broadly) as follows:

• (a) (Local existence) Given suitable initial data ${u_0}$, does there exist a solution ${(u,p)}$ to the above initial value problem that exists for some time ${T>0}$? What can one say about the time ${T}$ of existence? How regular is the solution?
• (b) (Uniqueness) Is it possible to have two solutions ${(u,p), (u',p')}$ of a certain regularity class to the same initial value problem on a common time interval ${[0,T)}$? To what extent does the answer to this question depend on the regularity assumed on one or both of the solutions? Does one need to normalise the solutions beforehand in order to obtain uniqueness?
• (c) (Continuous dependence on data) If one perturbs the initial conditions ${u_0}$ by a small amount, what happens to the solution ${(u,p)}$ and on the time of existence ${T}$? (This question tends to only be sensible once one has a reasonable uniqueness theory.)

The answers to these questions tend to be more complicated than a simple “Yes” or “No”, for instance they can depend on the precise regularity hypotheses one wishes to impose on the data and on the solution, and even on exactly how one interprets the concept of a “solution”. However, once one settles on such a set of hypotheses, it generally happens that one either gets a “strong” theory (in which one has existence, uniqueness, and continuous dependence on the data), a “weak” theory (in which one has existence of somewhat low-quality solutions, but with only limited uniqueness results (or even some spectacular failures of uniqueness) and almost no continuous dependence on data), or no satsfactory theory whatsoever. In the former case, we say (roughly speaking) that the initial value problem is locally well-posed, and one can then try to build upon the theory to explore more interesting topics such as global existence and asymptotics, classifying potential blowup, rigorous justification of conservation laws, and so forth. With a weak local theory, it becomes much more difficult to address these latter sorts of questions, and there are serious analytic pitfalls that one could fall into if one tries too strenuously to treat weak solutions as if they were strong. (For instance, conservation laws that are rigorously justified for strong, high-regularity solutions may well fail for weak, low-regularity ones.) Also, even if one is primarily interested in solutions at one level of regularity, the well-posedness theory at another level of regularity can be very helpful; for instance, if one is interested in smooth solutions in ${{\bf R}^d}$, it turns out that the well-posedness theory at the critical regularity of ${\dot H^{\frac{d}{2}-1}({\bf R}^d)}$ can be used to establish globally smooth solutions from small initial data. As such, it can become quite important to know what kind of local theory one can obtain for a given equation.

This set of notes will focus on the “strong” theory, in which a substantial amount of regularity is assumed in the initial data and solution, giving a satisfactory (albeit largely local-in-time) well-posedness theory. “Weak” solutions will be considered in later notes.

The Navier-Stokes equations are not the simplest of partial differential equations to study, in part because they are an amalgam of three more basic equations, which behave rather differently from each other (for instance the first equation is nonlinear, while the latter two are linear):

• (a) Transport equations such as ${\partial_t u + (u \cdot \nabla) u = 0}$.
• (b) Diffusion equations (or heat equations) such as ${\partial_t u = \nu \Delta u}$.
• (c) Systems such as ${v = F - \nabla p}$, ${\nabla \cdot v = 0}$, which (for want of a better name) we will call Leray systems.

Accordingly, we will devote some time to getting some preliminary understanding of the linear diffusion and Leray systems before returning to the theory for the Navier-Stokes equation. Transport systems will be discussed further in subsequent notes; in this set of notes, we will instead focus on a more basic example of nonlinear equations, namely the first-order ordinary differential equation

$\displaystyle \partial_t u = F(u) \ \ \ \ \ (4)$

where ${u: I \rightarrow V}$ takes values in some finite-dimensional (real or complex) vector space ${V}$ on some time interval ${I}$, and ${F: V \rightarrow V}$ is a given linear or nonlinear function. (Here, we use “interval” to denote a connected non-empty subset of ${{\bf R}}$; in particular, we allow intervals to be half-infinite or infinite, or to be open, closed, or half-open.) Fundamental results in this area include the Picard existence and uniqueness theorem, the Duhamel formula, and Grönwall’s inequality; they will serve as motivation for the approach to local well-posedness that we will adopt in this set of notes. (There are other ways to construct strong or weak solutions for Navier-Stokes and Euler equations, which we will discuss in later notes.)

A key role in our treatment here will be played by the fundamental theorem of calculus (in various forms and variations). Roughly speaking, this theorem, and its variants, allow us to recast differential equations (such as (1) or (4)) as integral equations. Such integral equations are less tractable algebraically than their differential counterparts (for instance, they are not ideal for verifying conservation laws), but are significantly more convenient for well-posedness theory, basically because integration tends to increase the regularity of a function, while differentiation reduces it. (Indeed, the problem of “losing derivatives”, or more precisely “losing regularity”, is a key obstacle that one often has to address when trying to establish well-posedness for PDE, particularly those that are quite nonlinear and with rough initial data, though for nonlinear parabolic equations such as Navier-Stokes the obstacle is not as serious as it is for some other PDE, due to the smoothing effects of the heat equation.)

One weakness of the methods deployed here are that the quantitative bounds produced deteriorate to the point of uselessness in the inviscid limit ${\nu \rightarrow 0}$, rendering these techniques unsuitable for analysing the Euler equations in which ${\nu=0}$. However, some of the methods developed in later notes have bounds that remain uniform in the ${\nu \rightarrow 0}$ limit, allowing one to also treat the Euler equations.

In this and subsequent set of notes, we use the following asymptotic notation (a variant of Vinogradov notation that is commonly used in PDE and harmonic analysis). The statement ${X \lesssim Y}$, ${Y \gtrsim X}$, or ${X = O(Y)}$ will be used to denote an estimate of the form ${|X| \leq CY}$ (or equivalently ${Y \geq C^{-1} |X|}$) for some constant ${C}$, and ${X \sim Y}$ will be used to denote the estimates ${X \lesssim Y \lesssim X}$. If the constant ${C}$ depends on other parameters (such as the dimension ${d}$), this will be indicated by subscripts, thus for instance ${X \lesssim_d Y}$ denotes the estimate ${|X| \leq C_d Y}$ for some ${C_d}$ depending on ${d}$.

In the last week or so there has been some discussion on the internet about a paper (initially authored by Hill and Tabachnikov) that was initially accepted for publication in the Mathematical Intelligencer, but with the editor-in-chief of that journal later deciding against publication; the paper, in significantly revised form (and now authored solely by Hill), was then quickly accepted by one of the editors in the New York Journal of Mathematics, but then was removed from publication after objections from several members on the editorial board of NYJM that the paper had not been properly refereed or was within the scope of the journal; see this statement by Benson Farb, who at the time was on that board, for more details.  Some further discussion of this incident may be found on Tim Gowers’ blog; the most recent version of the paper, as well as a number of prior revisions, are still available on the arXiv here.

For whatever reason, some of the discussion online has focused on the role of Amie Wilkinson, a mathematician from the University of Chicago (and who, incidentally, was a recent speaker here at UCLA in our Distinguished Lecture Series), who wrote an email to the editor-in-chief of the Intelligencer raising some concerns about the content of the paper and suggesting that it be published alongside commentary from other experts in the field.  (This, by the way, is not uncommon practice when dealing with a potentially provocative publication in one field by authors coming from a different field; for instance, when Emmanuel Candès and I published a paper in the Annals of Statistics introducing what we called the “Dantzig selector”, the Annals solicited a number of articles discussing the selector from prominent statisticians, and then invited us to submit a rejoinder.)    It seems that the editors of the Intelligencer decided instead to reject the paper.  The paper then had a complicated interaction with NYJM, but, as stated by Wilkinson in her recent statement on this matter as well as by Farb, this was done without any involvement from Wilkinson.  (It is true that Farb happens to also be Wilkinson’s husband, but I see no reason to doubt their statements on this matter.)

I have not interacted much with the Intelligencer, but I have published a few papers with NYJM over the years; it is an early example of a quality “diamond open access” mathematics journal.  It seems that this incident may have uncovered some issues with their editorial procedure for reviewing and accepting papers, but I am hopeful that they can be addressed to avoid this sort of event occurring again.

Joni Teräväinen and I have just uploaded to the arXiv our paper “The structure of correlations of multiplicative functions at almost all scales, with applications to the Chowla and Elliott conjectures“. This is a sequel to our previous paper that studied logarithmic correlations of the form

$\displaystyle f(a) := \lim^*_{x \rightarrow \infty} \frac{1}{\log \omega(x)} \sum_{x/\omega(x) \leq n \leq x} \frac{g_1(n+ah_1) \dots g_k(n+ah_k)}{n},$

where ${g_1,\dots,g_k}$ were bounded multiplicative functions, ${h_1,\dots,h_k \rightarrow \infty}$ were fixed shifts, ${1 \leq \omega(x) \leq x}$ was a quantity going off to infinity, and ${\lim^*}$ was a generalised limit functional. Our main technical result asserted that these correlations were necessarily the uniform limit of periodic functions ${f_i}$. Furthermore, if ${g_1 \dots g_k}$ (weakly) pretended to be a Dirichlet character ${\chi}$, then the ${f_i}$ could be chosen to be ${\chi}$isotypic in the sense that ${f_i(ab) = f_i(a) \chi(b)}$ whenever ${a,b}$ are integers with ${b}$ coprime to the periods of ${\chi}$ and ${f_i}$; otherwise, if ${g_1 \dots g_k}$ did not weakly pretend to be any Dirichlet character ${\chi}$, then ${f}$ vanished completely. This was then used to verify several cases of the logarithmically averaged Elliott and Chowla conjectures.

The purpose of this paper was to investigate the extent to which the methods could be extended to non-logarithmically averaged settings. For our main technical result, we now considered the unweighted averages

$\displaystyle f_d(a) := \lim^*_{x \rightarrow \infty} \frac{1}{x/d} \sum_{n \leq x/d} g_1(n+ah_1) \dots g_k(n+ah_k),$

where ${d>1}$ is an additional parameter. Our main result was now as follows. If ${g_1 \dots g_k}$ did not weakly pretend to be a twisted Dirichlet character ${n \mapsto \chi(n) n^{it}}$, then ${f_d(a)}$ converged to zero on (doubly logarithmic) average as ${d \rightarrow \infty}$. If instead ${g_1 \dots g_k}$ did pretend to be such a twisted Dirichlet character, then ${f_d(a) d^{it}}$ converged on (doubly logarithmic) average to a limit ${f(a)}$ of ${\chi}$-isotypic functions ${f_i}$. Thus, roughly speaking, one has the approximation

$\displaystyle \lim^*_{x \rightarrow \infty} \frac{1}{x/d} \sum_{n \leq x/d} g_1(n+ah_1) \dots g_k(n+ah_k) \approx f(a) d^{-it}$

for most ${d}$.

Informally, this says that at almost all scales ${x}$ (where “almost all” means “outside of a set of logarithmic density zero”), the non-logarithmic averages behave much like their logarithmic counterparts except for a possible additional twisting by an Archimedean character ${d \mapsto d^{it}}$ (which interacts with the Archimedean parameter ${d}$ in much the same way that the Dirichlet character ${\chi}$ interacts with the non-Archimedean parameter ${a}$). One consequence of this is that most of the recent results on the logarithmically averaged Chowla and Elliott conjectures can now be extended to their non-logarithmically averaged counterparts, so long as one excludes a set of exceptional scales ${x}$ of logarithmic density zero. For instance, the Chowla conjecture

$\displaystyle \lim_{x \rightarrow\infty} \frac{1}{x} \sum_{n \leq x} \lambda(n+h_1) \dots \lambda(n+h_k) = 0$

is now established for ${k}$ either odd or equal to ${2}$, so long as one excludes an exceptional set of scales.

In the logarithmically averaged setup, the main idea was to combine two very different pieces of information on ${f(a)}$. The first, coming from recent results in ergodic theory, was to show that ${f(a)}$ was well approximated in some sense by a nilsequence. The second was to use the “entropy decrement argument” to obtain an approximate isotopy property of the form

$\displaystyle f(a) g_1 \dots g_k(p)\approx f(ap)$

for “most” primes ${p}$ and integers ${a}$. Combining the two facts, one eventually finds that only the almost periodic components of the nilsequence are relevant.

In the current situation, each ${a \mapsto f_d(a)}$ is approximated by a nilsequence, but the nilsequence can vary with ${d}$ (although there is some useful “Lipschitz continuity” of this nilsequence with respect to the ${d}$ parameter). Meanwhile, the entropy decrement argument gives an approximation basically of the form

$\displaystyle f_{dp}(a) g_1 \dots g_k(p)\approx f_d(ap)$

for “most” ${d,p,a}$. The arguments then proceed largely as in the logarithmically averaged case. A key lemma to handle the dependence on the new parameter ${d}$ is the following cohomological statement: if one has a map ${\alpha: (0,+\infty) \rightarrow S^1}$ that was a quasimorphism in the sense that ${\alpha(xy) = \alpha(x) \alpha(y) + O(\varepsilon)}$ for all ${x,y \in (0,+\infty)}$ and some small ${\varepsilon}$, then there exists a real number ${t}$ such that ${\alpha(x) = x^{it} + O(\varepsilon)}$ for all small ${\varepsilon}$. This is achieved by applying a standard “cocycle averaging argument” to the cocycle ${(x,y) \mapsto \alpha(xy) \alpha(x)^{-1} \alpha(y)^{-1}}$.

It would of course be desirable to not have the set of exceptional scales. We only know of one (implausible) scenario in which we can do this, namely when one has far fewer (in particular, subexponentially many) sign patterns for (say) the Liouville function than predicted by the Chowla conjecture. In this scenario (roughly analogous to the “Siegel zero” scenario in multiplicative number theory), the entropy of the Liouville sign patterns is so small that the entropy decrement argument becomes powerful enough to control all scales rather than almost all scales. On the other hand, this scenario seems to be self-defeating, in that it allows one to establish a large number of cases of the Chowla conjecture, and the full Chowla conjecture is inconsistent with having unusually few sign patterns. Still it hints that future work in this direction may need to split into “low entropy” and “high entropy” cases, in analogy to how many arguments in multiplicative number theory have to split into the “Siegel zero” and “no Siegel zero” cases.

This is the tenth “research” thread of the Polymath15 project to upper bound the de Bruijn-Newman constant ${\Lambda}$, continuing this post. Discussion of the project of a non-research nature can continue for now in the existing proposal thread. Progress will be summarised at this Polymath wiki page.

Most of the progress since the last thread has been on the numerical side, in which the various techniques to numerically establish zero-free regions to the equation $H_t(x+iy)=0$ have been streamlined, made faster, and extended to larger heights than were previously possible.  The best bound for $\Lambda$ now depends on the height to which one is willing to assume the Riemann hypothesis.  Using the conservative verification up to height (slightly larger than) $3 \times 10^{10}$, which has been confirmed by independent work of Platt et al. and Gourdon-Demichel, the best bound remains at $\Lambda \leq 0.22$.  Using the verification up to height $2.5 \times 10^{12}$ claimed by Gourdon-Demichel, this improves slightly to $\Lambda \leq 0.19$, and if one assumes the Riemann hypothesis up to height $5 \times 10^{19}$ the bound improves to $\Lambda \leq 0.11$, contingent on a numerical computation that is still underway.   (See the table below the fold for more data of this form.)  This is broadly consistent with the expectation that the bound on $\Lambda$ should be inversely proportional to the logarithm of the height at which the Riemann hypothesis is verified.

As progress seems to have stabilised, it may be time to transition to the writing phase of the Polymath15 project.  (There are still some interesting research questions to pursue, such as numerically investigating the zeroes of $H_t$ for negative values of $t$, but the writeup does not necessarily have to contain every single direction pursued in the project. If enough additional interesting findings are unearthed then one could always consider writing a second paper, for instance.

Below the fold is the detailed progress report on the numerics by Rudolph Dwars and Kalpesh Muchhal.

This coming fall quarter, I am teaching a class on topics in the mathematical theory of incompressible fluid equations, focusing particularly on the incompressible Euler and Navier-Stokes equations. These two equations are by no means the only equations used to model fluids, but I will focus on these two equations in this course to narrow the focus down to something manageable. I have not fully decided on the choice of topics to cover in this course, but I would probably begin with some core topics such as local well-posedness theory and blowup criteria, conservation laws, and construction of weak solutions, then move on to some topics such as boundary layers and the Prandtl equations, the Euler-Poincare-Arnold interpretation of the Euler equations as an infinite dimensional geodesic flow, and some discussion of the Onsager conjecture. I will probably also continue to more advanced and recent topics in the winter quarter.

In this initial set of notes, we begin by reviewing the physical derivation of the Euler and Navier-Stokes equations from the first principles of Newtonian mechanics, and specifically from Newton’s famous three laws of motion. Strictly speaking, this derivation is not needed for the mathematical analysis of these equations, which can be viewed if one wishes as an arbitrarily chosen system of partial differential equations without any physical motivation; however, I feel that the derivation sheds some insight and intuition on these equations, and is also worth knowing on purely intellectual grounds regardless of its mathematical consequences. I also find it instructive to actually see the journey from Newton’s law

$\displaystyle F = ma$

to the seemingly rather different-looking law

$\displaystyle \partial_t u + (u \cdot \nabla) u = -\nabla p + \nu \Delta u$

$\displaystyle \nabla \cdot u = 0$

for incompressible Navier-Stokes (or, if one drops the viscosity term ${\nu \Delta u}$, the Euler equations).

Our discussion in this set of notes is physical rather than mathematical, and so we will not be working at mathematical levels of rigour and precision. In particular we will be fairly casual about interchanging summations, limits, and integrals, we will manipulate approximate identities ${X \approx Y}$ as if they were exact identities (e.g., by differentiating both sides of the approximate identity), and we will not attempt to verify any regularity or convergence hypotheses in the expressions being manipulated. (The same holds for the exercises in this text, which also do not need to be justified at mathematical levels of rigour.) Of course, once we resume the mathematical portion of this course in subsequent notes, such issues will be an important focus of careful attention. This is a basic division of labour in mathematical modeling: non-rigorous heuristic reasoning is used to derive a mathematical model from physical (or other “real-life”) principles, but once a precise model is obtained, the analysis of that model should be completely rigorous if at all possible (even if this requires applying the model to regimes which do not correspond to the original physical motivation of that model). See the discussion by John Ball quoted at the end of these slides of Gero Friesecke for an expansion of these points.

Note: our treatment here will differ slightly from that presented in many fluid mechanics texts, in that it will emphasise first-principles derivations from many-particle systems, rather than relying on bulk laws of physics, such as the laws of thermodynamics, which we will not cover here. (However, the derivations from bulk laws tend to be more robust, in that they are not as reliant on assumptions about the particular interactions between particles. In particular, the physical hypotheses we assume in this post are probably quite a bit stronger than the minimal assumptions needed to justify the Euler or Navier-Stokes equations, which can hold even in situations in which one or more of the hypotheses assumed here break down.)


text:
# A tale of two languages

Written by Piers Cawley on

While I was at OSCON I found myself chatting with various non-perl and ex-perl folks and many of them had the same impression of Perl as a great language for hacking out short scripts to get stuff done, right now and possibly under severe time pressure. For these people, those scripts would very rapidly become unmaintainable. And it’s easy to see why they came to that conclusion. Perl was originally designed and implemented by a systems administrator as a tool to make his every day tasks easier so there are a bunch of shortcuts and defaults that do exactly that - make Larry’s life in 1987 easier. Which is great when you’re whipping up a script to meet an immediate demand, but horrendously cryptic when you look at it later.

This is a perfectly valid way of looking at a language that I’ll call ‘desperate perl’. Desperate Perl scripts tend to be written by folks who don’t necessarily know all of Perl and who certainly don’t know all of its ecosystem. The scripts are often written to a tight deadline and to handle a specific task. They certainly weren’t written with even half an eye to maintenance. And they live on. Boy, do they live on. There are CGI scripts written in 1995 that are still in every day use, never mind that they’re buggy, insecure and well nigh impossible to maintain, still these zombies shamble on, colouring the opinion of everyone who ever has to deal with them.

If there’s one thing we’ve learned from this, it’s that code is forever. When we were young, we did stupid things, but we grew up and everyone but our nearest and dearest (who have the good grace never to mention it) forgets that, once upon a time, we set fire to the living room rug while playing with matches/ate cornflakes with HP sauce/had a brief flirtation with the young Conservatives/had a brief flirtation with a young Conservative. We are forgiven.

Not Perl.

Perl’s reputation as a language that’s fine for writing short scripts, but which rapidly becomes unmaintainable once you try and write larger systems is bestowed upon it by people who looked at formmail.pl once and ran screaming into the night (a not unreasonable response).

But Desperate Perl isn’t the only language in the binary. Large scale programming with Perl uses, or should use, a different subset of the language. A key indicator that you’re looking at large scale Perl is when the script or library starts with something along the lines of:

\#!/usr/bin/perl
use strict;
use warnings;

or, if it’s a library:

package Whatever;
use Moose;

There are other signifiers, but the important thing is that the code is written in strict compliant Perl. use strict crops up so often that the recent crop of modern (or enlightened if you prefer) perl modules, like Moose, turn it on by default. Indeed, if you’re using Perl 5, version 12 and you begin your code with use 5.12.0, Perl turns on strictures as well as enabling all the new features of the language.

We’ve had strict and warnings since forever and they’ve been strongly recommended for everything longer than about two lines since forever too. Those of us who program in Perl for a living get rather annoyed by the ‘Desperate Perl’ blinkers worn, however unwittingly, by so many outside our community. We write our code in a subtly different language. We write tests first, we have done for years. We write clean, maintainable, object oriented code. Nowadays we use Moose to help us with that; Perl’s out of the box OO features are, let us say, idiosyncratic - Moose makes our lives better.

Large Scale Perl is about more than just what’s in the distribution. Large Scale Perl has a wider culture than just the contents of the distribution. It’s about learning to use the CPAN and the CPAN toolchain. When I start to work on anything perl related that I expect to live for more than I couple of minutes, I start by doing:

$mkdir ProjectName$ cd ProjectName
$mkdir t lib$ \$EDITOR t/initial.t

Because I’m writing large scale perl, my modules go under lib, my tests go under t, any scripts I expect to install in my path go in script and they don’t have a .pl suffix. I lay my code out this way because, well, that’s just how it’s done. I run my tests from the project directory by doing prove -l ./t and, when I realise I have something that’s worth distributing (or deploying to the staging server), I add a Module::Install based Makefile.PL that lists my prerequisites, the scripts to install and various bits of metadata. By now, this is second nature - many clever people over the years have come to a collective decision about what a good Perl project looks like and they’ve written a fabulous toolchain for me as well.

If I distribute my work through the CPAN, there’s a large community of CPANTesters who will attempt to build my module and run its tests on a bewildering variety of platforms, and they’ll send me bug reports when those tests fail (bug reports which I can opt out of as well). Any documentation I write will be nicely formatted and accessible through search.cpan.org along with links to sites that’ll draw me a tree of all the modules mine depends on and, if it becomes adopted by the community, nice lists of all the modules that depend on mine as well. My module will get its own section in rt.cpan.org so there’s a standard place for people to report bugs.

Large Scale Perl comes with an entourage. Tools like Perl::Critic can check my code for bad style, Try::Tiny helps me get exception handling (which is annoyingly tricky when you attempt to get it right barehanded) right, Devel::NYTProf helps me work out why it’s running slower than I expected. The list goes on.

But, all the world sees is Desperate Perl. Search for “Perl Tutorial” on google and the first few hits are horrendously out of date - when I checked, the number one hit was all about perl 4. Apparently, O’Reilly’s biggest selling Perl title is the new edition of Learning Perl, which was published in 2008 and is a cracking tutorial. But the second biggest Perl title is Programming Perl which is ten years old this month. It covers Perl 5 version 6.0. I’m not even sure you can still build perl 5.6.2 - released more than 6 years ago - on modern systems. I certainly can’t imagine why you might want to. Programming Perl is a great book, but there are things it discusses that aren’t just deprecated, they’ve been recognized for the clusterfuck they were and excised from the language with extreme prejudice. As a community, we could really use a new edition. It would seem to make sense for someone to take the job on. A computer book that’s still selling 10 years after its first publication, 8 years after the language it documents, 5.6 was superceded by 5.8 looks like an ideal candidate for a new edition to me.

But then, a glance at the release dates of major Perl versions shows us why O’Reilly might hesitate to revise the book. 5.6 got released in March 2000, 5.8 in July 2002, 5.10 in… December 2007, 5.10.1 (which might have been better named as 5.12.0, given how much got changed/fixed) in August 2009, 5.12 in April 2010. That 5 year gap is the sort of thing that might give any publisher pause. Still, the new strategy of releasing regularly and often is starting to bed in. It’s getting easier to write perldelta.pod for each release and Jesse Vincent seems to be doing an excellent job of getting new release managers trained up and generally destressing the business of releasing a new perl. Who knows, by this time next year the perl release process may be no more difficult than releasing a module to CPAN. We do write good tools after all.

Reliable, regular releases with no big surprises are the sort of thing that gives programmers and organizations confidence that we’re here for the long haul. We perl programmers know that all sorts of good things were happening on the CPAN in the long gap between 5.8 and 5.10, but as good as it is, CPAN’s not as visible as the version number on the binary.

Hmm… I appear to have rambled some way from my starting point. Which probably means its time to stop. If I’m spared, I might manage to rustle up some kind of conclusion in a later post. Just remember, there are at least two perls: Desperate Perl, and Large Scale Perl. Both are excellent languages in their spaces, but you can’t (or shouldn’t) draw conclusions about one based on observations of the other.

format: plain


text:
# mgcluster

The mgcluster command .…

For this tutorial you should download the Example Files file and decompress it.

## Default settings

The blast parameter is required...

mgcluster(blast=bap.100.blast)

## Options

### name

mgcluster(blast=bap.100.blast, name=bap.100.names)

### count

The count file is similar to the name file in that it is used to represent the number of duplicate sequences for a given representative sequence. mothur will use this information to form the correct OTU’s. Unlike, when you use a name file the list file generated will contain only the unique names, so be sure to include the count file in downstream analysis with the list file.

mothur > make.table(name=bap.100.names)
mothur > mgcluster(blast=bap.100.blast, count=bap.100.count_table)

### method

• Nearest_neighbor (nearest): Each of the sequences within an OTU are at most X% distant from the most similar sequence in the OTU.
• Furthest_neighbor (furthest): All of the sequences within an OTU are at most X% distant from all of the other sequences within the OTU.
• Average_neighbor (average): This method is a middle ground between the other two algorithms.
• OptiClust (opti, the default): OTUs are assembled using metrics to determine the quality of clustering.

### metric

The metric parameter allows to select the metric in the opticluster method. Options are Matthews correlation coefficient (mcc), sensitivity (sens), specificity (spec), true positives + true negatives (tptn), false positives + false negatives (fpfn), true positives (tp), true negative (tn), false positive (fp), false negative (fn), f1score (f1score), accuracy (accuracy), positive predictive value (ppv), negative predictive value (npv), false discovery rate (fdr). Default=mcc.

### initialize

The initialize parameter allows to select the initial randomization for the opticluster method. Options are singleton, meaning each sequence is randomly assigned to its own OTU, or oneotu meaning all sequences are assigned to one otu. We have found initialize=singleton to produce better clustering in less time. Default=singleton.

### delta

The delta parameter allows to set the stable value for the metric in the opticluster method Default delta=0.0001. To reach a full convergence, set delta=0.

### iters

The iters parameter allow you to set the maxiters for the opticluster method. Default=100.

### cutoff

default = 0.70
mgcluster(blast=bap.100.blast, cutoff=1.0)

default = 100

### merge

Default = true, meaning merge after clustering mgcluster(blast=bap.100.blast, merge=f)

### min

default = true, meaning use minimum blast score ratio
mgcluster(blast=bap.100.blast, min=f)

### length

default = 5, minimum overlap

mgcluster(blast=bap.100.blast, length=10)

### penalty

default = 0.10

mgcluster(blast=bap.100.blast, penalty=0.15)

## Revisions

• 1.28.0 - Added the count parameter
• 1.40.0 - Adds opti method
• 1.40.4 - Bug Fix: Cluster commands printing of list file. #454


text:
1. Write solutons of problems down carefully

When you’re doing a problem or filling in a proof, you should write the solution down very carefully. For example, with a proof, it would be better to slowly write down each step in complete sentences rather than scrawling a bunch of shorthand and symbols. By doing this, you automatically check every step mentally, because the extra time to put down a statement or reasoning step in full sentences will force you to do so.

Sometimes, it’s possible to get through advanced material, especially papers, without knowing the basic foundations. And eventually, you will have to take some mathematics by faith because it’s simply impossible to know every detail.

However, by spending as much time as possible on foundational material, you will have a deeper understanding of more advanced material when you read it. Things that appear out of nowhere will suddenly make sense. A classic sign that you don’t know enough foundations is always looking up the same facts again and again while trying to understand something.

For example, if your research area is commutative algebra, it would be a really good idea to go over at least one book on commutative algebra line by line, working out every proof and exercise. That type of foundational reading will pay off continuously every time you need to do research.
…read the rest of this post!

Fifteen awesome cross-platform math apps

So much of my learning mathematics happened by tinkering around with mathematics software. Here are fifteen applications I think are really cool, with eleven of them being free.

1. SageMath

Free: Yes
Platforms: Windows, MacOS, Linux
Website: https://www.sagemath.org/

Top on our list is Sage. Sage is a command line and Jupyter notebook based mathematics system that includes an enormous number of features. It has number theory, calculus, linear algebra, combinatorics, group theory, and ring-theory libraries. For the pure mathematician looking for a little computational algebra, Sage is one of the easiest to start using. The only difficulty with Sage may be that because it includes SO much stuff, the installation size is huge. The install size of 9.2 (the most recent version at the time of this writing) on my computer is 13.1GB.

Sage is usually run in the browser via a Jupyter notebook

I highly recommend Sage. Some of the computations I have done in Sage have led to published results such as my paper on separable polynomials.

2. GAP

Free: Yes
Platforms: Windows, MacOS, Linux
Website: https://www.gap-system.org

GAP stands for Groups, Algorithms, Programming. It’s basically an awesome command-line tool for group theory computations. Construct finitely presented groups, take quotients, and have a whole lot of group theory fun.

GAP, running in a terminal on Linux

GAP is also included with Sage, but it is a lot smaller, so it’s a better choice if all you need are the group theory features of GAP. GAP is also extensible through packages, and users have contributed a variety of additional features such as group cohomology and Gröbner basis calculations.

…read the rest of this post!

Five LaTeX editors for Linux in 2021

Today, we are going to learn about five different solutions for LaTeX editing on Linux (though many of the solutions below are actually cross-platform). What are the solutions available to us in this fine year of 2021? Let’s take a look:

1. LaTeX Workshop plugin for Visual Studio Code

For a long time, I used Vim with the VIM-LaTeX plugin (more on that below). But recently, I’ve switched to Visual Studio Code with James Yu’s LaTeX Workshop plugin. This plugin has many outstanding features like snippets, custom compilation, SyncTeX and reverse search, and PDF viewing. You also get all the power of Visual Studio Code’s excellent text manipulation facilities.
…read the rest of this post!

Projective modules: the dual basis formulation

There are so many equivalent definitions of projective module, that it’s hard to know which is the “right” definition. What about this: an $R$ module $M$ is projective if the functor ${\rm Hom}_R(M,-)$ is an exact functor. This one makes the most sense to me, of course there are others: $M$ is projective if and only if it is the direct summand of a free module, if and only if every short exact sequence $0\to A\to B\to M\to 0$ splits, etc.

Actually there is one equivalent condition for $M$ to be projective that doesn’t get too much attention, but can be quite useful: the dual basis condition. What is a dual basis? A dual basis for $M$ is a set of functions $\{ f_i : i\in I\}$ where $f_i\in {\rm Hom}_R(M,R)$ and a set of elements $\{ m_i : i\in I\}$ where $m_i\in M$ such that:

1. For every $m\in M$, the set $\{ i\in I : f_i(m)\not=0\}$ is finite, and
2. For every $m\in M$, we have $m = \sum_i f_i(m)m_i$

The name is a bit misleading, because a dual basis is not a basis necessarily! It is more like the next best thing to a basis. For although $\{m_i : i\in I\}$ certainly generates $M$ as an $R$-module, we certainly don’t require that every element can be written as a unique $R$-linear combination of the $m_i$ elements.

Theorem. An $R$-module $M$ is projective if and only if it has a dual basis.

…read the rest of this post!

How to calculate the determinant of a matrix

The determinant of a matrix is calculated recursively as follows. The determinant of a $1\times 1$ matrix is just the number itself. For, example, $\det([3]) = 3$ and $\det([-2.5]) = -2.5$. Here is what you do if you have a larger matrix: take the matrix, and write $+$ or $-1$ beside each entry, starting with $+$ for the first $1,1$-entry of the matrix and alternating from there. For example, a $2\times 2$ matrix will get the following arrangement of signs:
$$\begin{pmatrix} + & -\\ -& +\end{pmatrix}.$$ Now, select any row or column. It doesn’t matter which row or column you select as you will get the same answer in the end. For example, let’s take:
$$A = \begin{pmatrix} 1 & 2\\ 3& 4\end{pmatrix}.$$ Now, I select the first column. We now form a sum, one term for each entry. Start with the $1$, and cross out the row and column that contains it. Doing so will give you a smaller matrix. Multiply the entry $1$ by the determinant of that smaller matrix (this is the recursive part), taking into account the signs as in the first step of assigning $+$ and $-1$. This sum is the determinant. So,
$$\det(A) = 1\det(4)-3\det(2) = 1\cdot 4-3\cdot 2 = -2.$$ Now, this is quite easy for a $2\times 2$ matrix and in fact gives you the general formula
$$\det\left(\begin{pmatrix}a & b\\c & d\end{pmatrix}\right) = ad-bc.$$ Since this formula is so simple it really pays to memorize it. But basically your brain can’t help but memorize it after you do a few calculations anyway.
…read the rest of this post!

Shortcuts to diagonalize a 2×2 matrix

Matrix diagonalization is one of my favourite topics in linear algebra. I still remember learning it for the first time and being quite awed by it. What is diagonalization? If $A$ is a square matrix, the diagonalization is finding an invertible matrix $P$ such that $P^{-1}AP = D$ where $D$ is a diagonal matrix. It’s important to note that diagonalization depends on the field or ring that we are working in. In this post, we will just be working over fields, though diagonalization of course makes sense over rings, but the procedure is more complicated there.

Not all matrices can be diagonalized. For example, the upper triangular matrix
$$\begin{pmatrix}1 & 1\\ 0 & 1\end{pmatrix}$$ actually cannot be diagonalized over any field. Though I guess it is already a diagonal matrix over the zero ring, which is quite perverse if you ask me. Over a field, the procedure for diagonalizing a square $n\times n$ matrix $A$ involves the following procedure:
…read the rest of this post!

My 20 favorite math jokes

I hope my readers don’t mind, but I’ve been writing serious math posts here for ten years so I think it’s high time I inserted some humour onto this blog. Rest assured, serious math posts won’t go away.

Without adieu, my 20 favourite math jokes. Most of them I heard elsewhere, and a few I invented myself.

Why did the chicken cross the Mobius strip?

To get to the other…uh…

Two constants were found to be having an argument:
i: Be rational.
$\pi$: Get real!

Old Macdonald had a form, $e_i\wedge e_i = 0$.

You might be a mathematician if you think fog is a composition.

Professor: Give an example of a vector space.

Student: V.

From the obituary of Samuel Eilenberg:

When someone once asked Professor Eilenberg if he could eat Chinese food with three chopsticks, he answered, “Of course,” according to
Professor Morgan. The questioner asked, “How are you going to do it?”
and Professor Eilenberg replied, “I’ll take the three chopsticks, I’ll
put one of them aside on the table, and I’ll use the other two.”

…read the rest of this post!

A quick guide to Python’s random number generator

If you are doing applied math and want to run a computer simulation, then chances are you will need random numbers. I write most of my simulations in Python, and luckily Python has a great random number library. Let’s see how to use it. The first step is to import the library:

Notice that I called the random.seed() function here. Python generates random numbers by starting with a seed value $x$ and the random numbers from the generator are $f(x), f(f(x)),…$. The function $f$ is the Mersenne twister algorithm. You can also specify the seed yourself by using random.seed(a) where a is an integer. This would be useful for testing, so you can get the same random numbers each time the program is run.
…read the rest of this post!

5 popular math books that inspired me to study math

When I was a teenager, I used to read a lot of popular science and math books. Of course, by “popular”, I just mean books meant for a nonspecialist audience (like a kid without a degree). A lot of those books inspired me to actually go on to study mathematics at university. Here are five of my favourites. Some of them are old now but because of the timeless nature of mathematics, they are not out of date.

1. Ian Stewart’s “Does God Play Dice”

Chaos, or sensitive dependence on initial conditions, is a profound idea in science that goes against the classic Newtonian reductionism and is the concept that one cannot necessarily predict the outcome of complex systems. Ian Stewart explains chaos in his book “Does God Play Dice”. The ideas in this book are a constant influence in my life to this day.

2. William Dunham, “The Mathematical Universe”

I read this book in my final year of high school (and I still remember the day a math teacher commenting that he liked the book also). This book takes an A-Z tour on various mathematical topics. It is more classical than some of the other books here, covering topics such as angle trisection and the foundations of probability. I like that each chapter is short and readable, isn’t shy about including mathematical details and equations, and yet contains a good amount of historical storytelling as well.

…read the rest of this post!

Math book sale, North American shipping

Over time, I have accumulated many mathematics books. Inevitably, there were a few I acquired but were not really my style of book. So, I collected these up and am selling them here in the hope that other people can use them. To set up a purchase, email:

Payment can be made via Interac e-Transfer in Canada or Paypal in North America (if using Paypal add 3%). North American flat shipping 15 dollars, 10% discount if you buy more than one. Free shipping over 80 dollars. All in excellent condition, some near mint, with the exception of a few which are noted below.

All prices are in Canadian dollars. 10% of profits will be donated to Birdlife, an organization that works towards the ecological preservation of birds. If the item is listed here, it is still available.

1. Berlinghoff, William P.; Gouvea, Fernando Q., “Math Throughout the Ages”. Hardcover. MAA 2015 Hardcover. $45 2. Jacob Lurie, “Higher Topos Theory”. Softcover.$70
3. Steven H. Weintraub, “Linear Algebra for the Young Mathematician”. Hardcover. $50 4. Edwin H. Spanier, “Algebraic Topology”. 1966 Hardcover.$40
5. Joseph H. Silverman, “The Arithmetic of Elliptic Curves” 2nd Edition, Springer Hardcover. $60. 6. Johnathan D. Rogawski, “Automorphic Representations of Unitary Groups in Three Variables”. Softcover. Slight crease in cover.$15.
7. Engelbert J. Dockner, Steffen Jorgensen, Ngo Van Long, “Differential Games in Economics and Management Science”. Paperback. Cover is a little scratched and edges of pages have some markings. Inside clean. $40 8. Bailey and Knapp, “Representation theory and automorphic forms”. Hardcover.$90.
9. Goro Shimura, “Automorphic functions and number theory”. Ex-library hardcover, some library markings. $15. 10. Armand Borel, “Linear Algebraic Groups” WA Benjamin 1969 Hardcover.$15
11. Magnus, Karrass, and Solitar, “Combinatorial Group Theory”. Revised Second Dover Edition Softcover. $40. 12. Kenneth S. Brown, “Cohomology of Groups”. GTM Hardcover.$60.
13. Fulton and MacPherson, “Categorical Framework for the study of singular spaces.”. $60. 14. Albert, “Structure of Algebras”. Hardcover 1939.$15
15. Dirk van Dalen, “Logic and Structure”. 2004 Softcover printing. $60 16. Nathan Jacobson, “Lie Algebras”. Wiley 1962 ex-library copy. Some wear on cover and library markings.$10


text:
# Command line utilities

The Axway SecureTransport Server includes several utility files that allow users to manually perform functions like installing a license file, stopping a server, and starting a server. These files are scripts on UNIX and batch files (`.bat`) on Windows. The utility files are located in the `<FILEDRIVEHOME>/bin` directory.

Utility files provides a summary of the utilities and their functions.

 Note If an alias is used to install SecureTransport, use the `-A` option for any other commands for the server on UNIX. For example, to stop all servers for a SecureTransport installation with an alias as `myserver` on UNIX, use the following command:`./stop_all -A myserver`On Windows, you do not need to use the `-A` option. Instead, use the following command:`stop_all`

For instructions on how to control servers from the command line, refer to Control the servers


text:
Trudy Matematicheskogo Instituta imeni V.A. Steklova
 RUS  ENG JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB
 General information Latest issue Forthcoming papers Archive Impact factor Guidelines for authors License agreement Search papers Search references RSS Latest issue Current issues Archive issues What is RSS

 Trudy Mat. Inst. Steklova: Year: Volume: Issue: Page: Find

 Trudy Mat. Inst. Steklova, 2003, Volume 243, Pages 237–243 (Mi tm431)

On the Gram Matrices of Systems of Uniformly Bounded Functions

B. S. Kashina, S. I. Sharekbc

a Steklov Mathematical Institute, Russian Academy of Sciences
b Université Pierre & Marie Curie, Paris VI
c Case Western Reserve University

Abstract: Let $A_N$, $N=1,2,…$, be the set of the Gram matrices of systems $\{e_j\}_{j=1}^N$ formed by vectors $e_j$ of a Hilbert space $H$ with norms $\|e_j\|_H\le 1$, $j=1,…,N$. Let $B_N(K)$ be the set of the Gram matrices of systems $\{f_j\}_{j=1}^N$ formed by functions $f_j\in L^\infty (0,1)$ with $\|f_j\|_{L^\infty (0,1)}\le K$, $j=1,…,N$. It is shown that, for any $K$, the set $B_N(K)$ is narrower than $A_N$ as $N\to \infty$. More precisely, it is proved that not every matrix $A$ in $A_N$ can be represented as $A=B+\Delta$, where $B\in B_N(K)$ and $\Delta$ is a diagonal matrix.

Full text: PDF file (159 kB)
References: PDF file   HTML file

English version:
Proceedings of the Steklov Institute of Mathematics, 2003, 243, 227–233

Bibliographic databases:
UDC: 517.5

Citation: B. S. Kashin, S. I. Sharek, “On the Gram Matrices of Systems of Uniformly Bounded Functions”, Function spaces, approximations, and differential equations, Collected papers. Dedicated to the 70th birthday of Oleg Vladimirovich Besov, corresponding member of RAS, Trudy Mat. Inst. Steklova, 243, Nauka, MAIK «Nauka/Inteperiodika», M., 2003, 237–243; Proc. Steklov Inst. Math., 243 (2003), 227–233

Citation in format AMSBIB
\Bibitem{KasSza03} \by B.~S.~Kashin, S.~I.~Sharek \paper On the Gram Matrices of Systems of Uniformly Bounded Functions \inbook Function spaces, approximations, and differential equations \bookinfo Collected papers. Dedicated to the 70th birthday of Oleg Vladimirovich Besov, corresponding member of RAS \serial Trudy Mat. Inst. Steklova \yr 2003 \vol 243 \pages 237--243 \publ Nauka, MAIK «Nauka/Inteperiodika» \publaddr M. \mathnet{http://mi.mathnet.ru/tm431} \mathscinet{http://www.ams.org/mathscinet-getitem?mr=2054436} \zmath{https://zbmath.org/?q=an:1084.46009} \transl \jour Proc. Steklov Inst. Math. \yr 2003 \vol 243 \pages 227--233

• http://mi.mathnet.ru/eng/tm431
• http://mi.mathnet.ru/eng/tm/v243/p237

 SHARE:

Citing articles on Google Scholar: Russian citations, English citations
Related articles on Google Scholar: Russian articles, English articles

This publication is cited in the following articles:
1. Arora S., Berger E., Hazan E., Kindler G., Safra M., “On non-approximability for quadratic programs”, 46th Annual IEEE Symposium on Foundations of Computer Science, Proceedings, Annual IEEE Symposium on Foundations of Computer Science, 2005, 206–215
2. Alon N., Makarychev K., Makarychev Yu., Naor A., “Quadratic forms on graphs”, Invent. Math., 163:3 (2006), 499–522
3. Pisier G., “Grothendieck's Theorem, Past and Present”, Bull Amer Math Soc, 49:2 (2012), 237–323
4. Khot S., Naor A., “Grothendieck-Type Inequalities in Combinatorial Optimization”, Commun. Pure Appl. Math., 65:7 (2012), 992–1035
5. Yu N., Duan R., Xu Q., “Bounds on the Distance Between a Unital Quantum Channel and the Convex Hull of Unitary Channels”, IEEE Trans. Inf. Theory, 63:2 (2017), 1299–1310
•  Number of views: This page: 434 Full text: 83 References: 38


text:
#### Markov Chain Truncation for Doubly-Intractable Inference

##### Colin Wei, Iain Murray

Computing partition functions, the normalizing constants of probability distributions, is often hard. Variants of importance sampling give unbiased estimates of a normalizer Z, however, unbiased estimates of the reciprocal 1/Z are harder to obtain. Unbiased estimates of 1/Z allow Markov chain Monte Carlo sampling of "doubly-intractable" distributions, such as the parameter posterior for Markov Random Fields or Exponential Random Graphs. We demonstrate how to construct unbiased estimates for 1/Z given access to black-box importance sampling estimators for Z. We adapt recent work on random series truncation and Markov chain coupling, producing estimators with lower variance and a higher percentage of positive estimates than before. Our debiasing algorithms are simple to implement, and have some theoretical and empirical advantages over existing methods.

arrow_drop_up


text:
Farey Fraction Visual Patterns

The Farey Sequence, $$F_{n}$$ is the list of all simplified fractions between $$\dfrac{0}{1}$$ and $$\dfrac{1}{1}$$ with denominator less than or equal to $$n$$. For example,   $$\large F_{5}=\dfrac{0}{1},\dfrac{1}{5},\dfrac{1}{4},\dfrac{1}{3},\dfrac{2}{5},\dfrac{1}{2},\dfrac{3}{5},\dfrac{2}{3},\dfrac{3}{4},\dfrac{4}{5},\dfrac{1}{1}$$

The Handshake Problem

The handshake problem is an old chestnut — if everyone in the room shook hands with everyone else, how many handshakes would there be? Then generalize. What I have to add to teaching the problem is a handout (doc version, … Read More


text:
Returns an object MBeanServerConnection which represents a server MBean remote in which the operations are performed on behalf of the facilitated delegation. For a determinayed JMXConnector and Affair, two satisfactory calls to this methode usually the same MBeanServerConnection object, instead this is not necessary.

For each methode in the MBeanServerConnection return, calling to the methode, causes the corresponding method to be named on the remote MBean server on behalf of the delegation given subject of the authenticated subject. The value returned by the methode MBean server is the returned value to the client. If the methode MBean server produces an exception, the same exception is seen by the client. If the methode MBean server or the call attempt produces an error, it is returned in a JMXServerErrorException which is seen by the client.

# 1 java.jmx.JMXConnector.getMBeanServerConnection

<java.jmx.JMXConnector.getMBeanServerConnection />


text:
# Will this rational parametric solution generate all possible solutions?

I was looking for integer solutions to this equation: $$a^3+b^3+c^3-3abc=d^3$$ And found a parametric solution. Given u, v, w : $$\begin{cases} a=3\left(u^2v+v^2w+w^2u\right)\\ b=3\left(uv^2+vw^2+wu^2\right)\\ c=u^3+v^3+w^3+6uvw\\ d=u^3+v^3+w^3-3uvw \end{cases}$$

A Natural Extension of the Pythagorean Equation to Higher Dimensions http://www.math.grinnell.edu/~chamberl/papers/pythagorean.pdf

• – individ Dec 5 '19 at 14:22

$$\begin{cases} a=3\left(u^2v+v^2w+w^2u\right)\\ b=3\left(uv^2+vw^2+wu^2\right)\\ c=u^3+v^3+w^3+6uvw\\ d=u^3+v^3+w^3-3uvw \end{cases}$$
$$(a,b,c,d)=(2,4,3,3)$$


text:
## Text manipulation idioms in linux

awk: select columns
sed: stream editor (operations like select, substitute, add/delete lines, modify)
sed expressions can be separated by ";"
sed can substitute all occurrences with 'g' modified at the end: 's/(find)/(replace)/g'

# https://unix.stackexchange.com/questions/92187/setting-ifs-for-a-single-statement

# arg I/O
$@: unpack all input args$*: join all inputs as ONE arg, separated by FIRST character of IFS (empty space if unspecified)

# Remember the double quotes around "$*" or "$array[*]" usages or else IFS won't function

array[@]: entire array
${array[@]}: unpacks entire array into MULTIPLE arguments${array[*]}: join entire array into ONE argument separated by FIRST character of IFS (defaults to an empty space if unspecified)
( IFS=$'\n'; echo "${my_array[*]}" )

${#str}: length of string${#array[@]}: length of array
${#array[@]:start:after_stop}: select array[start] ... array[after_stop-1]${str:="my_string"}: initializes variable str with "my_string" (useful for side-effect)

$(str##my_pattern}: delete front matching my_pattern${str%%my_pattern}: deletes tail matching my_pattern (can use one % instead)
$(str%?}: delete last character (the my_pattern is a single character wildcard "?")$( whatever_command ): captures stdout created by running whatever_command
( $str ): tokenize to string array, governed by IFS (specify delimiter) ($( whatever_command ) ): combines the two operations above: capture stdout from command and tokenize the results

# https://unix.stackexchange.com/questions/92187/setting-ifs-for-a-single-statement
function strjoin { local IFS="$1"; shift; echo "$*"; }

12 total views

## Improved code for Toner Reset SP C250SF/DN

This is based on the Raspberry Pi implementation of the Toner chip reset:

https://gist.github.com/joeljacobs/c57550cdb4e68e3b86d6b89fb58f305d

I am using a Raspberry Pi Zero W so the chip is BCM2835 instead and I can use 100Kbps/400KBps instead of 9600 baud as in the original code

The electrical pins we need is clustered on to top left, Pins 1 (3.3V), 3 (I2C SDATA), 5 (I2C SCLK), 9 (Ground)

While looking for the pinouts (https://pinout.xyz/pinout/i2c), I discovered a useful tool called i2cdetect that allows me to find out the address of the chips which means I can write a program automatically figure out the right image to load to the chip without looking:

sudo apt-get install i2c-tools
sudo i2cdetect -y 1

Since I don’t have cheap pogo pins lying around, I took the 2.4mm pitch (the standard size used in PC, Arduino and Raspberry Pi) jumper block I have (so all pins are set at equal lengths to make simultaneous contact) and hope somehow there’s 4 pins that kind of align with the contact, and it did. See pictures here:

You might be worried about shorting into the next pin or hooking something up in reverse damaging the chips, but luckily the chips survived. My guess is that it’s a good design to put the Vcc next to Ground on one side instead of making it symmetric so the polarity can be reversed. When reversed, SCL is set to low (Ground), SDA is pulled up to Vcc while there is no power supply, so no damage is done. Brilliant! The worst case for my poorly aligned jumper block is that SDA and Vcc might touch each other, but it doesn’t matter because it’s a perfectly legal hookup (just not communicating)!

So no worries if you didn’t touch the pins right! The only case it might go wrong is if you intentionally flip the block and slide it by two pins (reversing Vcc and Ground). Other cases (you are likely going to run into) are pretty much data lines getting hooked high or low levels while power lines not getting any supplies.

I’ve designed the program that it’ll detect the chip if you hook it up right and immediately program the chip (takes only a second), so you don’t have to hold the jumper for too long to worry about unstable contacts.

#!/bin/bash

# This program detects rewrite the toner chips to "full" for a Ricoh SP C250SF/DN Printer using Raspberry PI (defaults to BCM2835 models such as Raspberry PI Zero　Ｗ）

# The chip data is in file named "black" "cyan" "magenta" and "yellow".
# The pad closest to the edge is GND (-> Pin 9), followed by VCC (-> Pin 1) , DATA (-> Pin 3), and Clock (-> Pin 5).

# Be sure i2c is enabled and installed (it's turned off by default) on Raspbian

# This line is disabled because it takes too long to unregister i2c_bcm2835 to start from a clean slate
# modprobe -r i2c_bcm2835

# Sets the baud rate
modprobe i2c_bcm2835 baudrate=400000

# Create I2C address to color map
COLORS=( [50]="yellow" [51]="magenta" [52]="cyan" [53]="black" )
I2C_address=$( sudo i2cdetect -y 1 | grep 50 | sed -e 's/50: //;s/-- //g' ) # Keep the 0x5* address lines since only 0x50~0x53 is valid. Strip the 50: header, discard all "--" entries, and you are left with the detected address HEX_I2C_address="0x$I2C_address"

# LED flash function
function flash_once {
period=${1:-0.5} target_device="/sys/class/leds/led0/brightness" echo 0 >${target_device}
sleep $period echo 1 >${target_device}
sleep $period } function flash { times=${1:-1}
period=$2 for((i=1; i<=times; i++)); do flash_once$period
done
}

if [ -v COLORS[I2C_address] ]; then
# Meat
color=${COLORS[I2C_address]} echo "Detected toner chip for color:$color"

echo "Short flashes before starting. Long flash after done"
flash 5 0.1

# "address" counter sync up with the hex code index in file
printf "Writing"
for i in $(cat${color}); do
i2cset -y 1 ${HEX_I2C_address}$address $i; address=$(($address +1)); printf . done echo "Done!" flash 3 0.5 else echo "Invalid I2C address for SP C250DN/SF toner chips:${I2C_address}"
fi

I chose to flash the board’s only LED light quickly before starting and blink slowly a few times after it’s done for visual clues. It’s entirely optional. Here’s the guts of the code without the fancy indicators:

#!/bin/bash

# Sets the baud rate
modprobe i2c_bcm2835 baudrate=400000

# Create I2C address to color map
COLORS=( [50]="yellow" [51]="magenta" [52]="cyan" [53]="black" )

I2C_address=$( sudo i2cdetect -y 1 | grep 50 | sed -e 's/50: //;s/-- //g' ) HEX_I2C_address="0x$I2C_address"

if [ -v COLORS[I2C_address] ]; then
# Meat
color=${COLORS[I2C_address]} # "address" counter sync up with the hex code index in file address=0; for i in$(cat ${color}); do i2cset -y 1${HEX_I2C_address} $address$i;
address=$(($address +1));
done
else
echo "Invalid I2C address for SP C250DN/SF toner chips: ${I2C_address}" fi  Download the package. Run program_toner Just in case if people are wondering. The L01 chip’s datasheet is here: 21 total views ## Auto mount USB drives Raspbian OS (Raspberry Pi) do not mount USB drives automatically out of the box. I’m pretty annoyed by the lack of easy to use packages by 2021 and I still have to do it myself with the instructions here: https://github.com/avanc/mopidy-vintage/wiki/Automount-USB-sticks These are cookbook instructions, but I’ll add some insights to what each component means so it’s easier to remember the steps. At top level, to auto-detect and mount USB drives, we need the following components • udev: analogous to what happens behind device manager, it keeps track of and updates devices as they are connected and disconnected immediately. Need to register USB sticks by adding a event handler, which triggers a systemd service (see below) • systemd: analogous to Windows’ services. Need to register the service by stating what commands it will call on start (mostly mounting) and cleanup (mostly unmounting) • automount script: it’s a user defined script that abstracts most of the hard work detecting the partitions on the USB stick, assign the mount point names, and mount them # Register udev event handler (rules) # /etc/udev/rules.d/usbstick.rules ACTION=="add", KERNEL=="sd[a-z][0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbstick-handler@%k" # It triggers a systemd call to "usbstick-handler@" service registered under /etc/systemd/system/ # Register systemd service # /etc/systemd/system/usbstick-handler@.service # (Note: instructions used /lib instead of /etc. It's better to add it as /etc as this is manually registered as user-defined service rather than from a package) [Unit] Description=Mount USB sticks BindsTo=dev-%i.device After=dev-%i.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/local/bin/automount %I ExecStop=/usr/bin/pumount /dev/%I # %I is the USB stick's device name under /dev, usually sda # Abstracted the logic of determining the mount point name and mounting to 'automount' (see below) Create the file /usr/local/bin/automount  and give it execution permission: chmod +x /usr/local/bin/automount  #!/bin/bash #$1 (first argument) is usually "sda" (supposedly USB stick device name) seen from %I in the systemd service commands
PART=$1 # Within the "sda" (USB stick device of interest), extract the partition labels (if applicable) from lsblk command. The first column (name) is dropped FS_LABEL=lsblk -o name,label | grep${PART} | awk '{print $2}' # Decide the mount point name {partition label}_{partition name} # e.g. MS-DOS_sda1 tokens=($FS_LABEL)
tokens+=($PART) MOUNT_LABEL=$(IFS='_'; echo "${tokens[*]}") # Using string array makes it easier to drop the prefix if there's no {partition label} # Bash use IFS to specify separators for listing all elements of the array # Suggestion: drop --sync for faster USB access (if you can umount properly) /usr/bin/pmount --umask 000 --noatime -w --sync /dev/${PART} /media/\${MOUNT_LABEL}

This automount script is adapted from https://raspberrypi.stackexchange.com/questions/66169/auto-mount-usb-stick-on-plug-in-without-uuid with my improvements.

22 total views

## Get myself comfortable with Linux environment (1) – Text Mode

Install “gpm”: Enable mouse in text console for copy and paste (left click to highlight & copy, right click to paste)

10 total views

## Get myself comfortable with Raspberry Pi

I2C is disabled by default. Use raspi-config to enable it. Editing config file /boot/config.txt directly might not work

Locale & Keyboard (105 keys) defaults to UK out of the box. Shift+3 “#” (hash) sign became “£” pound sign. Use raspi-config to change the keyboard.

It reads random garbage partitions for MFT assigned to FAT16 drives. Just use FAT32

USB drives does not automount by default. usbmount is messy as it creates dummy /media/usb[0-7] folders. Do this instead.

11 total views

## InfiniiMax AutoProbe 1 Caveats

For most mortal souls probing up to 12Ghz, Agilent’s integrated active probe system is called the the AutoProbe 1, which looks like this:

Regular full blown Windows-based Infiniium oscilloscopes takes any AutoProbe 1 probes (as long as the shape fits), but I noticed my DSO6104A (InfiniiVision 6000A series) do not take my 1152A (2.5Ghz) probes nor my fancy 1168A (10Ghz) and 1169A (12Ghz) probes.

Turns out the more compact, embedded (VxWorks) Agilent scopes that boots almost immediately. It’s called the InfiniiVision Series, which covers 1000 X-, 2000 X-, 3000A/T X-, 4000 X-, 6000 X-, 5000, 6000, and 7000 Series.

I’m not rich enough to get my hands on the X series, but I know from the architecture that 5000, 6000 and 7000 series are basically the same scope. 5000 and 6000 series looks almost identical while the 7000 series adds a giant screen and a slightly different keypad layout (the BNC ports do not align with the channel buttons and dials).

Turns out the datasheets shows two caveats:

• 100Mhz model uses different hardware. They don’t take Autoprobe interface as there’s absolutely no reason why you need an active probe to get 100Mhz single ended. Agilent skipped the hardware for it (thus the autoprobe pins) altogether although they kept the recessed space reserved for Autoprobe so they don’t have to mold a different front bezel just for the 100Mhz models.
• They basically take only Generation I AutoProbe I, namely the 1130 series
• Gen 0 (not an official name) AutoProbe 1 does not work: 1152A (2.5Ghz single ended) for 54845A. These differential probes: 1153A, 1154A, 1155A, 1159A are also considered too old. They were intended to work with old Infiniiums such as 54845A
• Gen 2 AutoProbe 1 (only 10Ghz 1168A/B and 12Ghz 1169A/B models) does not work. These embedded scopes usually max out at 1.5Ghz, with the exception that 6000X goes up to 6Ghz, which is still way below 10Ghz
• N2800 series are Autoprobe I, but it’s Gen III (has a bigger butt extending away from the AutoProbe I hole), so it doesn’t work
• The rest are Autoprobe II and III that’s beyond our mortal souls (and way out of the league of InfiniiVision scopes)

11 total views

## Evoluent Vertical Mouse 4 Cable Mod

The mouse cable for Evoluent Vertical Mouse 4 is extremely long, which creates a lot of clutters especially when my keyboard has a USB hub relay built in (it’s the mouse is less than a feet away from it). Instead of splicing the cable, which creates a hard junction that’s not flexible, I modified the mouse to take a micro-USB cable instead.

10 total views

## AC Coupling (removing DC drift) 3-Amp INA Instrumentation Amplifier (DC restoration)

While clearing out my old data, I came across the teaching materials I’ve helped rewritten as a teaching assistant of Biomedical Electronics Lab (Stanford EE122A).

It’s a generic concept in electronics that often used in EKG/ECG circuits to remove the baseline drift on the fly so the analog signal won’t drift off the rails (exceed the dynamic range limited by the op-amps) before the post-processing filter (whether it’s analog or digital) kicks in to remove the DC component.

This concept is called ‘DC restoration’, which is often not taught in standard electronics textbooks. Instead it’s detailed in one of the instrumentation amp (INA) Burr-Brown (now TI) application notes.

It’s a slick trick but the rationale wasn’t very well explained even in the application note itself. It was presented as a feedback design but it doesn’t tell you intuitively what was fed back and why INA chips, and why the reference pin is the right injection point.

Most textbooks don’t even teach the existence of the reference pin (they always short the reference to the ground without explaining). Application notes talk about the REF pin, but they often jump too quickly into cookbook recipes and equations (likely because customers just want quick answers) so they never tell you the thought process.

This blog post shares my intuition of DC-restoration that’s exposed to EE122A students after I’ve updated the lab document. Hope electronic hobbyists and industry people will find it useful.

Before we get to DC restoration, we must see that the purpose of a 3-amp INA is basically a non-inverting buffer stage (primarily done to increase input impedance) followed by a single difference amp (output) stage.

Non-inverting configuration has higher input impedance as the input goes directly to the high impedance non-inverting (+) input pin without taking material current from the input (loading), so there’s no good reason to lose this property by doing inverting op-amp configuration twice.

Most practical INA chips assign some of the user-adjustable gains at the buffer stage because ‘mirrored-ground’ (superposition) allows one resistor to program the gains for the 2 buffer amps without adding more mismatch, but conceptually the first stage’s primary purpose is a buffer. The rest of the gains can be hard-coded by manufacturing with matched ‘resistors’ inside the IC, mostly at the output difference amp stage.

But for illustration (so not to drown the readers in math), let’s assume the design choice of assigning the gains at the input buffer stage and make the output stage a unity gain difference amplifier (), which I use small letters (, ) to denote the outputs of the buffer stage internal to the INA chip.

The REF pin (the part of exposed in Figure 6 above) is often advertised as an offset adjustment pin. This is just one of the many uses if you really understand the idea behind the 1-amp difference amplifier configuration.

The slightly more shallow perspective (more modular or system perspective that I’ve shared with EE122A students) is that if you look at an standard 3-amp INA configuration in regular textbooks like this,

the entire sub-circuit (3 amp INA) is floating so it has absolutely no idea what the reference (‘ground’) would have been if we did not ARBITRARILY define it through by tying it to the CM ground, by forcing REF pin () to be 0V (relative to the common mode ground shared with the inputs)!

In other words, we now have an INA ‘ground’ and a Common Mode (CM) ground, which they do not have to be the same unless we force them to be equal by shorting the REF pin to the CM ground.

This means whatever voltage we set the REF pin to be, it’s the baseline of the system (amplifier) and the whole output shifts moves up and down by whatever relative to common mode ground we are feeding into the REF pin for the moment.

The DC restoration takes advantage of the user-definable baseline (INA ‘ground’) by extracting a low-frequency (drift) portion of the output signal with an INVERTING low-pass filter (LPF) with frequency response , and re-define it as the INA’s ‘ground’ level. This is the LPF:

e.g. if the signal’s baseline drifted up by 1V, a -1V is generated by the inverting LPF and the INA ‘ground’ respond by moving from 0V down to -1V, which pulls the entire signal down by 1V, cancelling the 1V increase in baseline. All the voltages used here are relative to the common mode ground.

As with any AC coupling circuit, there is no precise definition of what ‘DC’ or ‘baseline’ is. It’s up to the experimenter to consider what cutoff frequency in the LPF is close enough. Technically DSP engineers can call a running window of trimmed-median the baseline if they wanted to.

The feedback (how fast the INA ‘ground’ is readjusted) is as responsive as the phase delay introduced by the LPF’s time constant. If you only consider anything below 0.00001Hz to be DC, you have to pay a price for the long delay catching up to the changes which might or might not be considered a baseline drift (it’s an application specific context).

I also have an alternate view of DC restoration which does not use the concept of INA ‘ground’ (not taught in EE122A). This is based on seeing the final stage op-amp (1-amp INA) not just as a simple difference amplifier, but as a 3-input arithmetic circuit (summing and subtractions) through super-position (setting one input to 0V at a time and add the results up).

This is the gut of a 1-amp INA difference amplifier

We can break it down into a (1 input) inverting amplifier plus a summing (2 inputs) non-inverting amplifier.

The equations for inverting amplifier and non-inverting amplifiers are not symmetric! The core part of the feedback gain in EITHER CONFIGURATION are ALWAYS set at the feedback branch which ONLY goes to the inverting input (-), aka and !

1. Inverting amplifier portion do not care about the resistors at the non-inverting input (+), but
2. Non-inverting amplifier portion’s gain is determined by the 2 resistors at the inverting input (-)! The resistors at the non-inverting inputs (+) never boost the amplifier gains! They only attenuate signal from external sources (like voltage dividers). The gain boost happens ONLY at the inverting branch!

Why? By superposition (short out other inputs you are not considering)

1. Inputs to () and () shorted to the common ground gives an inverting amplifier. They don’t matter to . The gain to is .
2. Input to () shorted to the common ground gives a non-inverting amplifier, which the gain boost () is relative to voltage showing up at the non-inverting input (+), which is the result of attenuating through and through .

The output contributions, if and ,

1. [Inverting amplifier gain of -1 relative to ] contributes to the output
2. [Non-inverting amplifier gain of 2 relative to ] if is set to ground through , and forms a 1:1 potential divider which halves to give at . Doubling (2x gain) the halved input gives an overall gain of 1, therefore contributing to the output

So the overall output equation is if is grounded to 0V.

The intuition for DC restoration is to untie the REF pin (going to ) from CM ground and treat it as equals to pin (going through , so instead of a potential divider, they form a non-inverting summing amplifier:

So the DC restoration circuit can be seen as a 3-input arithmetic amplifier that gives the equation and you can subtract the baseline by setting to be whatever baseline your inverting LPF feedback branch judged. The overall AC-coupled system response is .

Note that ALL 3 inputs () should be driven from sources with low output impedance. and is the outputs of a buffer op-amp so they already have good low impedance outputs feeding to the last stage. We’ll need to do the same for by using an op-amp to lower the output resistance whether it is an active low pass filter or active potential divider, because do not see differently from . Noise showing up from high resistance output driving REF pin do not simultaneously appear on , so it’s not canceled and therefore it’s worsening the common mode rejection (CMR).

23 total views

## Every concept about electrical power

Found a very good tutorial written by XP Power that concisely (short yet complete) covered all topics about power circuits that every circuit hobbyist should be aware of.

Here’s the book:

12 total views


text:
# A limit with an intuitive and wrong answer

In my last question I asked about a limit used in my exploration of tangent circles and whatnot.

I decided to come up with a more direct approach to my problem, and now I only have to evaluate the limit $$\lim_{d\to x} \frac{\dfrac{f(x)-f(d)}{x-d}-f'(d)}{x-d}$$

Intuition would yield the answer is the second derivative of $f$ at $x$. However, by expanding and whatnot and then using l'Hôpital, as well as plugging in some sample $f$'s, I arrive at half of the second derivative. Why is my intuition wrong?

• Can you say more about how you expanded the expression? – Tim Raczkowski Dec 15 '14 at 23:31
• Put the numerator under a common denominator then combined to get $\frac{f(x)-f(d)-f'(d)(x-d)}{(x-d)^2}$, then used l'hopital's to get the 2 in the denominator – Faraz Masroor Dec 15 '14 at 23:32
• Now I'm also getting negative half of the second derivative when using l'hopitals, but evaluating with f=x^2 only gives 1. What's going on? – Faraz Masroor Dec 15 '14 at 23:39
• @FarazMasroor The second derivative of $f(x)=x^2$ is the constant $2$. – egreg Dec 16 '14 at 0:03

The factor you're missing is because of the $1/2$ that arises whenever you expand to within second order:

$$f(x) = f(d) + f'(d) (x-d) + 1/2 f''(d) (x-d)^2 + o((x-d)^2).$$

Substitute and you have

$$\frac{f'(d) + 1/2 f''(d) (x-d) + o(x-d) - f'(d)}{x-d} = 1/2 f''(d) + o(1).$$

This should explain your results. egreg's answer shows a way to see this using only L'Hopital's rule; here the $2$ arises from the derivative of $(x-d)^2$ in the denominator.

Here is some clarification of notation, in case you're not familiar with it already. In the above, $o(g(x))$ is a replacement for a function, which I am not specifying, and which has the property $\lim_{x \to d} \frac{o(g(x))}{g(x)} = 0$. This is called "little oh notation", and it is fairly standard.

• The o notation makes sense. thanks! – Faraz Masroor Dec 16 '14 at 0:06

Let's assume $f$ is differentiable in a neighborhood of $x$ and the second derivative is continuous at $x$; then we can apply l'Hôpital's theorem to the limit in the form \begin{align} \lim_{d\to x}\frac{f(x)-f(d)-(x-d)f'(d)}{(x-d)^2} &\overset{\mathrm{H}}{=} \lim_{d\to x}\frac{-f'(d)+f'(d)-(x-d)f''(d)}{-2(x-d)}\\ &=\lim_{d\to x}\frac{f''(d)}{2}\\ &=\frac{f''(d)}{2} \end{align}

Think to Taylor's expansion. Of course these are not the minimal hypotheses for the result to hold.

• I'm going to have to do this again because when I did it like this I got a negative. – Faraz Masroor Dec 16 '14 at 0:05
• @FarazMasroor You probably just differentiated wrongly. Note the minus sign in the denominator, because we're differentiating with respect to $d$. – egreg Dec 16 '14 at 0:06
• Yup that's where it was. Thanks. – Faraz Masroor Dec 16 '14 at 0:08

The other answers are great. I just want to zero in on the crucial difference between what you got and what you expected. If you wrote

$$\lim_{d\to x} \frac{f'(x)-f'(d)}{x-d}$$

that would be $f''(x)$. Note that the quantity $f'(x)$ appearing the numerator is the value of $f'$ at $x$. However, in your numerator, you have $\frac{f(x)-f(d)}{x-d}$. This quantity is the average value of $f'$ over the interval $[x,d]$.


text:
1. ## Parametric Curves

I'm currently doing Parametric Curves where we have to fine the length of the curve using L = the integral of sqrt((dx/dt)^2+(dy/dt)^2) dt, but I'm having a lot of trouble simplifying the equations to make it easier to take the integral of them. Can I get some help on these few question?

2. Originally Posted by iebi
I'm currently doing Parametric Curves where we have to fine the length of the curve using L = the integral of sqrt((dx/dt)^2+(dy/dt)^2) dt, but I'm having a lot of trouble simplifying the equations to make it easier to take the integral of them. Can I get some help on these few question?

$x=\frac{t}{4+t} \implies \frac{dx}{dt}=\frac{4+t-t}{(t+4)^2} = \frac{4}{(t+4)^2}$
$y=\ln(4+t) \implies \frac{dy}{dt}=\frac{1}{t+4}$
$0\leq t\leq 5$

$\sqrt{\left(\frac{dx}{dt}\right)^2+\left(\frac{dy} {dt}\right)^2} = \sqrt{\frac{16}{(t+4)^4}+\frac{1}{(t+4)^2}}$ $= \sqrt{\frac{16}{(t+4)^4}+\frac{(t+4)^2}{(t+4)^4}} = \frac{\sqrt{(t+4)^2+16}}{(t+4)^4}$

$\int_0^5\frac{\sqrt{(t+4)^2+16}}{(t+4)^2}\,dt$

This is a really ugly integral. Let $u=t+4$ and $du=dt$

Now you have $\int_0^5\frac{\sqrt{u^2+16}}{u^2}\,du$

Let $u=4\tan(v)$ and $du = 4\sec^2(v)\,dv$

Now you have $\int_0^5\frac{\sqrt{16\tan^2(v)+16}}{16\tan^2(v)}\ cdot4\sec^2(v)\,dv = \int_0^5\frac{\sec^3(v)}{\tan^2(v)}\,dv$

I have to go. Can you finish from here? If not, I'm sure someone else will help you. Hint: Split $\sec^3(v)$ into $\sec(v)(1+\tan^2(v))$.

3. Thanks. I got to the part where I combine the equations, but didn't know what to do after that. I can finish that problem. Can anyone start me off with the other 3 problems?

4. Originally Posted by iebi
Thanks. I got to the part where I combine the equations, but didn't know what to do after that. I can finish that problem. Can anyone start me off with the other 3 problems?
8.) $\frac{dx}{dy} = \frac{y^4}{2}-\frac{1}{2y^4} = \frac{y^8-1}{2y^4}$

Square it: $\frac{(y^8-1)^2}{4y^8} = \frac{y^{16}-2y^8+1}{4y^8}$

Add 1: $\frac{y^{16}-2y^8+1}{4y^8}+1 = \frac{y^{16}-2y^8+1+4y^8}{4y^8} = \frac{y^{16}+2y^8+1}{4y^8} = \frac{(y^8+1)^2}{4y^8}$

Take the square root: $\sqrt{\frac{(y^8+1)^2}{4y^8}} = \frac{y^8+1}{2y^4}$

Integrate: $\int_1^4\frac{y^8+1}{2y^4}\,dy = \int_1^4\frac{y^4}{2}+\frac{1}{2y^4}\,dy = \left[\frac{y^5}{10}-\frac{1}{6y^3}\right]_1^4 = \boxed{\frac{65577}{640} \approx 102.464}$

5. Can anyone show me how to start the last two problems?


text:
# CERN Accelerating science

The ATLAS Conference Slides collection contains transparencies on ATLAS that have been presented at conferences. More information about conferences can be found on the external ATLAS Talks at International Physics Conferences webpage.
SUBMIT ATLAS SLIDE

# ATLAS Conference Slides

Πρόσφατες προσθήκες:
2014-04-08
18:39
 Recent results on constraining the parton distributions in the proton and αS from ATLAS and CMS / Sutton, Mark (The University of Sussex) Recent results on cross section measurements sensitive to the parton distribution functions (PDFs) within the proton from the ATLAS and CMS Collaborations are presented. The potential impact of the inclusion of this data in QCD fits to the PDFs is discussed and recent fits including the data on jet or vector boson production are discussed.. ATL-PHYS-SLIDE-2014-150.- Geneva : CERN, 2014 - 29 p. Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-08
15:24
 Search for ttH, H->bb production in ATLAS / Le Menedeu, E (IFAE) ttH, H->bb talk for Moriond 2014 ATL-PHYS-SLIDE-2014-149.- Geneva : CERN, 2014 Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-08
01:41
 Di-Boson Production Cross Section at Ecm=8 TeV / Pleier, M-A Slides for Moriond QCD. Talk duration: 15 mins, covers ATLAS & CMS.. ATL-PHYS-SLIDE-2014-148.- Geneva : CERN, 2014 - 15 p. Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on QCD and High Energy Interactions, La Thuile, Italy, 22 - 29 Mar 2014

2014-04-07
23:06
 Measurements of the Electron Reconstruction and Identification Efficiencies in ATLAS / Sommer, P (Albert-Ludwigs-Universität Freiburg) Isolated, high-energy electrons constitute a very clean signature at hadron collider experiments. As the final states of many Standard Model processes, as well as physics beyond the Standard Model, analyses at the ATLAS experiment heavily rely on electrons. [...] ATL-PHYS-SLIDE-2014-147.- Geneva : CERN, 2014 - 6 p. Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-07
23:03
 Dark Matter searches at the LHC / Calfayan, P (Ludwig-maximilians University Munich) Multiple cosmological observations indicate the existence of Dark Matter, which may be a weakly interacting massive particle (WIMP). In this case, Dark Matter could be produced in proton-proton collisions at the LHC, but would escape the detector without interacting. [...] ATL-PHYS-SLIDE-2014-146.- Geneva : CERN, 2014 Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-07
22:59
 Search for direct top squark pair production in final states with two leptons of opposite charge / Meloni, F (INFN Milano) Searches are presented for direct top squark pair production in final states with two leptons (electrons or muons) of opposite charge. Each search uses 20.3 fb$^{−1}$ of $pp$ collision data at $\sqrt{s}=8$ TeV collected by the ATLAS experiment at the Large Hadron Collider.. ATL-PHYS-SLIDE-2014-145.- Geneva : CERN, 2014 - 9 p. Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-07
22:57
 EW SUSY production searches at ATLAS and CMS / Flowerdew, MJ The discovery of weak-scale supersymmetric (SUSY) particles is one of the primary goals of the Large Hadron Collider experiments. Depending on the mechanism of SUSY breaking, it could be that strongly interacting squarks and gluinos are too massive to produce at the LHC. [...] ATL-PHYS-SLIDE-2014-144.- Geneva : CERN, 2014 - 19 p. Fulltext: PDF; External link: Original Communication (restricted to ATLAS)

2014-04-07
22:49
 Evidence for Higgs Boson Decays to a Pair of τ-Leptons / Ruthmann, N (Universität Freiburg) After the discovery of a Higgs boson in the \gamma\gamma, ZZ^{*} and WW^{*} final states in 2012 the search for leptonic decay modes plays a crucial role in the identification of this particle as the Standard Model Higgs boson. Tau leptons, as the heaviest charged leptons, do contribute significantly to the decay width of a Higgs boson of mass $m_H = 125.5$ GeV. [...] ATL-PHYS-SLIDE-2014-143.- Geneva : CERN, 2014 Fulltext: PDF; External link: Original Communication (restricted to ATLAS)

2014-04-07
22:45
 BSM Higgs boson searches at ATLAS and CMS / Thompson, P BSM Higgs boson searches at ATLAS and CMS ATL-PHYS-SLIDE-2014-142.- Geneva : CERN, 2014 Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on Electroweak Interactions and Unified Theories, La Thuile, Italy, 15 - 22 Mar 2014

2014-04-07
15:04
 Hard Probes at ATLAS / Citron, Z (Weizmann Institute of Science) The abstract was submitted by the collaboration.. ATL-PHYS-SLIDE-2014-141.- Geneva : CERN, 2014 Fulltext: PDF; External link: Original Communication (restricted to ATLAS) In : 49th Rencontres de Moriond on QCD and High Energy Interactions, La Thuile, Italy, 22 - 29 Mar 2014


text:
2k views

### Machine precision near zero: not fulfilled?

I am puzzled by the behavior of Mathematica machine precision with numbers approaching zero. This manifests itself, e.g., with FixedPoint and the like. In the ...
551 views

### Why does DSolve return two solutions for my ODE?

I wanted to solve the differential equation: $y’ = (1+2x)\sqrt{y}$ with $y(0) = 1$. It can be done by hand, and to check my answer I typed the following in Mathematica ...
443 views

### Plotting a defined function gives different results from plotting the function directly

Consider the following piece of code: function[t_]:=Exp[-9 t^2]; LogLogPlot[{function[t],Exp[-9 t^2]},{t,.01,100}] I expect the two plots to exactly overlap each ...
277 views

248 views

### Underflow error General::munfl from E^x instead of Exp[x]

In contrast to earlier versions, Mathematica 11.3 and 12.0 generate lots of underflow errors from my code, e.g. ...
231 views

### Change lighting in ChromaticityPlot3D

It looks to me like ChromaticityPlot3D has some default lighting, but unlike most Graphics3D functions the Lighting option doesn't seem to have any effect. However, the documentation states "...
694 views

### Why does 1 - Exp[-10.0^12] cause an out-of-memory error?

I would like to understand why evaluation of the expression 1 - Exp[-10.0^12] causes an out-of-memory error and how can I prevent such errors when calculating ...
225 views

### Exp of big negative numbers [duplicate]

I noticed that Exp have a strange behaviour with big negative numbers ...
508 views

### DSolve with SetOptions[Solve, Method -> Reduce] Behaving Differently in Ver 11.1.1

With version "11.1.1 for Microsoft Windows (64-bit) (April 18, 2017)", DSolve[{SI'[s] == Sin[PH[s]] , PH'[s] == Sin[SI[s]]/e}, {SI[s], PH[s]}, s] produces the ...
175 views

### Change system options in package

I use Mathematica mostly for numerical calculations, and sometimes the performance of numerical calculations can be greatly improved if the high-precision arithmetic can be switched off by ...
286 views

### Slow exponential evaluation over lists

This question,which is still unanswered, might be relevant because it involves NIntegrate over lists and it also has Exp. In ...
131 views

### Can I force Mathematica to use machine precision? [duplicate]

Some built-in functions (like Exp) give an arbitrary precision result, even when the argument is a machine precision number. Example: ...


text:
# Objects A and B are at the origin. If object A moves to (-2 ,7 ) and object B moves to (6 ,-5 ) over 3 s, what is the relative velocity of object B from the perspective of object A? Assume that all units are denominated in meters.

Mar 5, 2016

Initially both A and B were at origin O (0,0)
after 3sec A reaches at (-2,7) and B at (6,-5)
So displacement vector of A =$- 2 \hat{i} + 7 \hat{j}$ m
velocity vector of A, ${\vec{V}}_{A} = \frac{1}{3} \left(- 2 \hat{i} + 7 \hat{j}\right)$ m/s
displacement vector of B =$6 \hat{i} - 5 \hat{j}$m
velocity vector of B, ${\vec{V}}_{B} = \frac{1}{3} \left(6 \hat{i} - 5 \hat{j}\right)$ m/s
So the relative velocity of B from the perspective of A is given by
${\vec{V}}_{B A} = {\vec{V}}_{B} - {\vec{V}}_{A} = \frac{1}{3} \left(\left(6 + 2\right) \hat{i} - \left(5 + 7\right) \hat{j}\right)$
$= \frac{1}{3} \left(8 \hat{i} - 12 \hat{j}\right)$ m/s
$| {\vec{V}}_{B A} | = \frac{1}{3} \sqrt{{8}^{2} + {12}^{2}} = \frac{\sqrt{208}}{3} = 4.81 m {s}^{-} 1$


text:
# When do clients use TLS in PSK mode?

The TLS protocol can perform the handshake in different modes. Either fresh handshake where new keys are generated, or using Pre Shared Keys (PSK) or what was know as Session Resumption in previous versions.

My question is: In practice, when do clients such as web browsers for example use TLS in PSK mode? Does the existence of a website in the browser History entails the use of PSK mode? Can you list the cases where clients will use PSK instead of exchanging fresh keys?

Pre-shared keys aren't used on the web. Using asymmetric cryptography and a public-key infrastructure has huge advantages: there's no need to exchange long-term secrets at any point, all the security relies on a few public values (the root CA public keys). Commonly-used web browsers do not support PSK ciphersuites.

Pre-shared keys are meant for embedded clients that have very limited computing power, that only talk to a very small number of servers. Symmetric cryptography is significantly cheaper than asymmetric cryptography, so it's the only way to have secure communication with devices that simply can't perform a signature or signature verification in a reasonable time, or where it would consume a too big fraction of the battery reserved, or where there isn't enough room for the extra code. If a device only communicates to a very small number of peers over its lifetime, it only needs to store those peers' keys, so PKI wouldn't be an advantage on that side. What is saved on the client side has a cost on the server side: the server needs to store all the clients' secret keys and not just one private key.

Pre-shared keys may also be used if some key exchange or key distribution takes place using a protocol other than TLS, and then the exchanged symmetric key is used for TLS. I don't think this is very common though.

Browsers do use session resumption as a performance optimization. Session resumption is effectively equivalent to having a pre-shared key, but this key was shared through a previous TLS session. On the web, the original session always used asymmetric cryptography. Session resumption means that one or both sides of the communication store some confidential data from which the next session's key can be derived. Generally the burden is on the client: the server sends the client a ticket, which is some encrypted and signed data, and the client stores both this ticket and the shared secret for the next session (premaster secret in TLS terminology). To resume a session, the client sends the ticket back to the server, and the server verifies the signature and decrypts the ticket to obtain a copy of the premaster secret.

Saving a session in this way keeps the advantages of the public-key infrastructure. As in any communication system based on hybrid cryptography, the payload is protected using symmetric keys which are ultimately obtained using key establishment methods based on asymmetric cryptography. The client does have the burden of storing the secret key securely between sessions, but this burden is made easier because the client can fail safe and erase the session data whenever it wants: erasing session data is only a small loss of performance, unlike the PSK-only scenario where it means losing the ability to communicate.

Session resumption was added to TLS 1.0 as an afterthought. In TLS 1.3, the key exchange protocol has been revamped, and session resumption is now merged with pre-shared keys. The same principles apply: a web browser would only ever use PSK as a way to resume a session that was started with asymmetric cryptography, whereas tiny embedded systems may support nothing but PSK.

• Thanks. Bu a web browser would only ever use PSK as a way to resume a session that was started with asymmetric cryptography. When does browsers use this? by default when websites in the browsers History? When do browsers decide not to use this method and starts a fresh key? – user9371654 Apr 5 at 21:23
• @user9371654 Browsers do this if they support the feature and the server also does (both sides send this information as part of the handshake). I think major browsers only store the session ticket in RAM, so they would use a fresh key when you restart the browser, or of course if the server signals that it doesn't like the ticket anymore. – Gilles 'SO- stop being evil' Apr 5 at 21:35


text:
# beamer: table of frames [duplicate]

I'm looking for a possibility to create a table of frames. The MWE illustrate my question:

\documentclass{beamer}
\begin{document}
\begin{frame}{Table of Contents}
\tableofcontents
\end{frame}
\section{Topic 1}
\begin{frame}{Topic 1}
Some stuff
\end{frame}
\section{Topic 2}
\begin{frame}{Topic 2}
Other stuff
\end{frame}
\end{document}

Without the \section entries, the toc will be empty. Is there a way, to include all frametitles automatically to the toc or a similiar list?

## marked as duplicate by Matthew Leingang, zeroth, diabonas, cmhughes, jubobsApr 16 '13 at 18:54

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.


text:
## Random Matrix Theory and Chiral Logarithms

• Abstract: Recently, the contributions of chiral logarithms predicted by quenched chiral perturbation theory have been extracted from lattice calculations of hadron masses. We argue that a detailed comparison of random matrix theory and lattice calculations allows for a precise determination of such corrections. We estimate the relative size of the m log(m), m, and m^2 corrections to the chiral condensate for quenched SU(2).

$Rev: 13581$