text:
Re: [DTB/Abridged syntax] ISSUE on -equals and -not-equals predicates?

From: Axel Polleres <axel.polleres@deri.org>
Date: Wed, 10 Dec 2008 10:49:49 +0100
Message-ID: <493F90BD.1020104@deri.org>
To: Axel Polleres <axel.polleres@deri.org>
CC: Chris Welty <cawelty@gmail.com>, Jos de Bruijn <debruijn@inf.unibz.it>, "Public-Rif-Wg (E-mail)" <public-rif-wg@w3.org>

Axel Polleres wrote:
>
>
>  >> Probably we need to get rid of the text about "varying between
>  >> interpretations". Also, one should add that the truth value of
>  >> predicates whose arguments are outside the domain of the external
>  >> relation is unspecified.
>
> That is already said in Section 3, item 5...
>
>  >> I think the text should be clear then.
>
>
> ... so, would the following change from
>
> "This means that if one or more of the arguments is not in its intended
> domain, the value of I_external(\sigma)(a1 ... an) can vary from one
> semantic structure to another."
>
> to
>
> "This means that if one or more of the arguments is not in its intended
> domain, the value of I_external(\sigma)(a1 ... an) is unspecified. That
> means in particular, it can vary from one *implementation* to another."

done, slightly reworded.
Also changed:

"This indeterminacy in case of an error implies that applications *must*
not make any assumptions about the values of built-ins in such situations."

to

"This indeterminacy in case of an error implies that applications
*should* not make any assumptions about the values of built-ins in such
situations."

confusing. On the one hand we say *implementations* can do what they
want, on the other hand we say *applications* must/should not make
assumptions about the values... What is the difference between
implementation and application?

> be acceptable in Section 3, item 5.?
> As well as changing henceforth in all function and predicate
> descriptions the recurring sentence
>
> "the value [...] is left unspecified and can vary from one semantic
> structure to another. "
>
> to
>
> "the value [...] is left unspecified."

done that as well.

> I think that does it.
>
> Axel
>
> Chris Welty wrote:
>>
>>
>> -Chris (sent from my iPhone)
>>
>> On Dec 4, 2008, at 4:08 PM, Jos de Bruijn <debruijn@inf.unibz.it> wrote:
>>
>>>
>>>
>>> Axel Polleres wrote:
>>>> Jos de Bruijn wrote:
>>>>>
>>>>> Axel Polleres wrote:
>>>>>> Jos de Bruijn wrote:
>>>>>>> Axel Polleres wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I introduced, as for the other datatypes (along with an editors
>>>>>>>> note),
>>>>>>>> -equals and -not-equals predicates for the rdf:XMLLiteral datatype.
>>>>>>>>
>>>>>>>> There is an obvious overlap between the -equals predicates and '=',
>>>>>>>> i.e.
>>>>>>>> the '=' built-ins are superfluous, it seems, for dialects that
>>>>>>>> support
>>>>>>>> equality.
>>>>>>>>
>>>>>>>> That is not the case for the not-equals predicates, though:
>>>>>>>>
>>>>>>>> All the -not-equals predicates, i.e.  pred:numeric-not-equal,
>>>>>>>> pred:string-not-equal, pred:dateTime-not-equal,
>>>>>>>> pred:date-not-equal,
>>>>>>>> pred:time-not-equal, pred:duration-not-equal,
>>>>>>>> pred:XMLLiteral-not-equal,
>>>>>>>> pred:text-not-equal
>>>>>>>>
>>>>>>>> are defined on the same domains as their positive counterpart with
>>>>>>>> reversed truth-values.
>>>>>>>>
>>>>>>>> That has the consequence though, that they are not possibly
>>>>>>>> emulated by
>>>>>>>> negation as failure, i.e. it is in general not true to say that the
>>>>>>>>
>>>>>>>> -not-equals version is true, whenever the -equals version is NOT
>>>>>>>> true.
>>>>>>>>
>>>>>>>>
>>>>>>>> An example:
>>>>>>>>
>>>>>>>> _a:-  External (pred:numberic-equals("blabla", 1) )
>>>>>>>> _b:-  External (pred:numberic-not-equals("blabla", 1) )
>>>>>>>>
>>>>>>>> entails neither _a nor _b, however
>>>>>>> Both rules contain errors, and since errors mean arbitrary truth
>>>>>>> values,
>>>>>>> you don't know whether _a or _b are entailed, and in practice I
>>>>>>> suspect
>>>>>>> applications will terminate with some error message.
>>>>>> No, that is not what the semantics says... it says that the
>>>>>> truth-value
>>>>>> may vary from interpretation to interpretation and that means it
>>>>>> is not
>>>>>> true in all interprestations which means it is not entailed.
>>>>>
>>>>> No. We leave it up to the user, which means the user can choose to
>>>>> make
>>>>> it true in every interpretation.
>>
>> This was my understanding. ( I think I proposed it) but I agree the
>> following could be understood as saying something else:
>>
>>>>>
>>>>
>>>>
>>>> "If the argument value is outside of the intended domain or outside the
>>>> partial conversions defined in [XPath-Functions], the value of the
>>>> function is left unspecified and can vary from one semantic
>>>> structure to
>>>> another."
>>>>
>>>> interesting opinion.
>>>
>>> It is what we agreed upon at F2Fx (I believe in Paris).
>>>
>>
>>>> my reading does not imply what you say. Maybe this
>>>> needs clarification then?
>>>
>>> Probably we need to get rid of the text about "varying between
>>> interpretations". Also, one should add that the truth value of
>>> predicates whose arguments are outside the domain of the external
>>> relation is unspecified.
>>> I think the text should be clear then.
>>>
>>
>> Agreed.
>>
>>>
>>> Best, Jos
>>>
>>>>
>>>> Axel
>>>>
>>>>
>>>>> Best, Jos
>>>>>
>>>>>> We do not have errors in RIF, that was decided long ago.
>>>>>>
>>>>>>>> _a:-  "blabla" = 1
>>>>>>>> _b:-  naf ( "blabla" = 1 )
>>>>>>>>
>>>>>>>> would entail _b.
>>>>>>>>
>>>>>>>> So, 2 questions:
>>>>>>>>
>>>>>>>> 1) Do we want this behavior or do we want the negation as failure
>>>>>>>> behavior of inequality?
>>>>>>> We want this behavior, since this is the only reasonable way
>>>>>>> to define these built-in predicates.
>>>>>>>
>>>>>>>> 2) Do we want the redundancy of equals predicates?
>>>>>>> Yes, for dialects that do not supported equality.
>>>>>> Same opinion here in both points...
>>>>>>
>>>>>>> Best, Jos
>>>>>>>
>>>>>>>> I think we need these things clarified, to be able to determine how
>>>>>>>> '=' and "!=" shortcuts in an abridged syntax should be defined.
>>>>>> ... which means that '!=' in an abridged syntax would be defined as:
>>>>>>
>>>>>> numeric-not-equal or string-not-equal or text-not-equal or
>>>>>> date-time-not-equal or date-not-equal or time-not-equal or
>>>>>> duration-not-equal or XMLLiteral-not-equal
>>>>>>
>>>>>> and '=' would be defined as equality in dialects that support it and
>>>>>>
>>>>>> numeric-equal or string-equal or text-equal or date-time-equal or
>>>>>> date-equal or time-equal or duration-equal or XMLLiteral-equal
>>>>>>
>>>>>> in others... Would that the agreed reading for = and != in an
>>>>>> abridged
>>>>>> syntax?
>>>>>>
>>>>>> Axel
>>>>>>
>>>>>>>> Axel
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>>                         debruijn@inf.unibz.it
>>>
>>> Jos de Bruijn,        http://www.debruijn.net/
>>> ----------------------------------------------
>>> Many would be cowards if they had courage
>>> enough.
>>>  - Thomas Fuller
>
>

--
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland,
Galway
email: axel.polleres@deri.org  url: http://www.polleres.net/

Received on Wednesday, 10 December 2008 09:50:37 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:47:54 UTC


text:
# Thread: Taking the inverse of a function

1. ## Taking the inverse of a function

So I forget how to find the inverse of a function.
The function I have is f(x) = 3x^2 - x .
I remember that I have to switch the x and y points so that it looks like this
x = 3y^2 - y but I'm not sure how to solve it.
Thanks

2. Originally Posted by the-G
So I forget how to find the inverse of a function.
The function I have is f(x) = 3x^2 - x .
I remember that I have to switch the x and y points so that it looks like this
x = 3y^2 - y but I'm not sure how to solve it.
Thanks
You need to complete the square. First take $\frac{x}{3} = y^2 - \frac{y}{3}$ and then add $\frac{1}{36}$ to both sides of the equation to get $\frac{x}{3} + \frac{1}{36} = y^2 - \frac{y}{3} + \frac{1}{36}$.

Then we have completed the square:

$\frac{x}{3} + \frac{1}{36} = (y - \frac{1}{6})^2$.

Can you finish it from there?

format: plain


text:
Help me understand the protected keyword

This topic is 3933 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

I have an abstract base class which I'll call Human. It has two derived classes, call them Killer and Victim. It also has a protected member _protIntArray. Now, at one point, Killer has to take a pointer to a Victim and do something to its _protIntArray, thusly:
void Killer::kill (VictimListWithExtraInfo* victs) {
victs->theVictimList[0]->_protIntArray[0] += 5;
}

If I understand the documentation correctly, Killer, being a subclass of Human, should be able to access protected members of Human through a pointer to another subclass of Human. Right? (I'm getting this from here.) But my compiler (gcc 3.2.3) gives me this: Human.hh:70: IntArrayWrapper Human::_protIntArray' is protected Killer.cc:68: within this context What am I misunderstanding, here?

Share on other sites
Use a Human pointer instead of a Killer or Victim pointer.

Share on other sites
Hum. I tried that with an explicit cast, thus:

void Killer::kill (VictimListWithExtraInfo* victs) {  ((Human*) (victs->theVictimList[0]))->_protIntArray[0] += 5;}

but I'm still getting the same error.

Share on other sites
Killer being a subclass of human means that killer does indeed inherit the protected member. This means that an instance of killer has the member _protIntArray. It can access it's own _protIntArray. It can not access the protected or private members of another instance.

Share on other sites
Ah, ok, now I get it. I'll make it a protected accessor method instead. Thanks!

Share on other sites
Quote:
 Original post by shengshwiKiller being a subclass of human means that killer does indeed inherit the protected member. This means that an instance of killer has the member _protIntArray. It can access it's own _protIntArray. It can not access the protected or private members of another instance.

while the behavior you are seeing seems like what shengshwi is describing ... that is not he behavior I am used to or believe is correct.

if this is correct:

class A  protected:    int i;  public:    void DoSomething(A &rhs)      {        i += rhs.i;  // accessing another instances i directly      }

why wouldn't this be correct:
class B : public A  public:    void DoSomethingElse(B &rhs)      {        i += rhs.i;  // accessing another instances i directly      }

I thought a derived class could internally do with protected members from its base, the same thing it can do with private members of itself?

Is this not correct?

Share on other sites
also, if it cannot access "rhs.i", it wouldn't be able to access a protected method on rhs either "rhs.SomeProtectedFunc()" would fail too, because there is no difference in C++ between data members and method members (that I am aware of).

I guess if the access to rhs.??? was inside of the function you put in the base class, then it could work even if the above fails.

Share on other sites
Quote:
 Original post by XaiI thought a derived class could internally do with protected members from its base, the same thing it can do with private members of itself?Is this not correct?

It is. However, based on his question and code, I believe he has a setup like this:

class A{protected:     int i;};class B : public A{};class C : public A{public:     void doSomething(B b)     {          b.i = 5; //Error here     }};

Inherited protected members remain protected; as such, other classes can't access them, even if the two classes are part of the same inheritance hierarchy.

Share on other sites
I suspect the OP has a hierarchy like this

class Human{protected:    int value;};class Killer : public Human{public:    void updateValue()     {         value++;     }};class Victim : public Human{public:    void updateValue()     { 	value++; // ok. updating local value    }    void updateKillerValue(Killer& killer)     {         killer.value++; // error. Victim does not inherit Killer so this is not protected on our behalf.        // This does not work either even if we do inherit Human	Human* h = (Human*)&killer;	h->value++;    }};

I have to say Im a bit confused myself.

Share on other sites
Ok, so now I understand what's going on. Is there any way, though, to give the whole inheritance hierarchy access to each others' protected parts, without going whole hog and making them public? And preferably without horrible kludges like declaring them all friends of each other.

Share on other sites
If you really want to do it, you can cast the ptr to a killer:

void Killer::kill (VictimListWithExtraInfo* victs) {
((Killer*) (victs->theVictimList[0]))->_protIntArray[0] += 5;
}

Really what you should do is use a clean object oriented approach with getters and setters. Something like this:

void Killer::kill (VictimListWithExtraInfo* victs) {
(victs->theVictimList[0])->IncrementProtIntArrayAt(0,5);
}

void Human::IncrementProtIntArrayAt(int indx, int value){
_protIntArray[indx] += value;
}

Share on other sites
Quote:
 Original post by King of MenOk, so now I understand what's going on. Is there any way, though, to give the whole inheritance hierarchy access to each others' protected parts, without going whole hog and making them public? And preferably without horrible kludges like declaring them all friends of each other.

Not really. I don't think that is such a great idea anyway, things should be kept as private as possible. You could expose some of the actions of the Human class as protected static methods, but thats a bit messy (why not just have public operations to do... whatever that line actually does ).
(note:)
I cannot tell what the field "_protIntArray" does. Thats a terrible name. It tells me nothing that I couldn't figure out by browsing to the header file ( assuming I had a copy, of course [smile] ). It should be named according to what this int array represents.

Like so:
class Human {protected:   // real name pending =)   std::vector<int> _protIntArray;   // again a name would be nice   static void incrementFirstElementOfIntArrayForSomeReason( Human &human )   {        human._protIntArray.front() += 5;   }};class Victim : public Human {};class Killer : public Human {public:    // for simplicities sake:   void kill( Victim &victim )   {       Human::incrementFirstElementOfIntArrayForSomeReason( victim );   }};

Share on other sites
Quote:
 Original post by rip-offI cannot tell what the field "_protIntArray" does. Thats a terrible name. It tells me nothing that I couldn't figure out by browsing to the header file ( assuming I had a copy, of course [smile] ). It should be named according to what this int array represents.

Of course it's not named that in my code! It's a descriptive name for purposes of describing the problem I'm having, where protIntArray is exactly what the variable is, to wit, a protected integer array. In my code it's doing something quite different from being a protected integer array, but that's not the correct level of description for describing a compiler problem; if I were having a logic problem, I'd use the internal name.

Quote:
 Really what you should do is use a clean object oriented approach with getters and setters. Something like this:void Killer::kill (VictimListWithExtraInfo* victs) {(victs->theVictimList[0])->IncrementProtIntArrayAt(0,5);}

That's just an obfuscated way of making the array public. If I try making IncrementProtIntArray a protected method, I'll have exactly the same problem as before, since Killer won't be able to access Victim's method. And if I make it public, I might as well go whole hog and make the array public in the first place, since anyone who wants to will be able to modify it. The point is that I want this functionality encapsulated to my Human-descended hierarchy.

Share on other sites
Quote:
Original post by King of Men
Quote:
 Original post by rip-offI cannot tell what the field "_protIntArray" does. Thats a terrible name. It tells me nothing that I couldn't figure out by browsing to the header file ( assuming I had a copy, of course [smile] ). It should be named according to what this int array represents.

Of course it's not named that in my code! It's a descriptive name for purposes of describing the problem I'm having, where protIntArray is exactly what the variable is, to wit, a protected integer array. In my code it's doing something quite different from being a protected integer array, but that's not the correct level of description for describing a compiler problem; if I were having a logic problem, I'd use the internal name.

Sorry, but I have seen variable names like that before. It just made it hard to come up with a generic example.

But what about the protected static function, does that suit your needs? I'll be the first to admit its a bit hacky, but anything that tries to subvert the access protection mechanism of c++ will be I suppose.

Share on other sites
Hum. It's a bit of a hack, but yes, the protected static might do. Let me experiment a bit with it.

Share on other sites
Quote:
 Original post by King of MenI have an abstract base class which I'll call Human. It has two derived classes, call them Killer and Victim. It also has a protected member _protIntArray. Now, at one point, Killer has to take a pointer to a Victim and do something to its _protIntArray, thusly:void Killer::kill (VictimListWithExtraInfo* victs) { victs->theVictimList[0]->_protIntArray[0] += 5;}

OK, so it looks something like this (with some ugly things renamed)?

class Human {  protected:  int magic[42];};class Victim : public Human {};struct ShootingGallery {  std::vector<Victim*> victims;  int extra_info;};class Killer : public Human {  public:  void kill(ShootingGallery* s) {    s->victims[0]->magic[0] += 5;  }};

OK, well, then, several questions immediately spring to mind...

- Apparently the ShootingGallery is holding its Victims by pointer. Is this for polymorphism (i.e. it actually has a container of Human*'s, and Killers are themselves capable of being targeted)? If so, have you considered the use of smart pointers, or boost ptr_containers (such as ptr_vector)? If not, why not just store the Victims by value?

- Why is the ShootingGallery passed in via pointer? We ought to use a reference instead, surely?

- The work is divided wrongly. Repeated arrow operators are a sign of violation of the Law of Demeter.

Rearranging that, we get something like:

class Human {  public:  void takeDamage() { magic[0] += 5; }  private:  int magic[42];};class Victim : public Human {};class ShootingGallery {  std::vector<Victim> victims;  int extra_info;  public:  void wound(int who) const {    victims[who].takeDamage();  }};class Killer : public Human {  public:  void kill(const ShootingGallery& s) const {    s.wound(0);  }};

IMX, need for the 'protected' keyword is fairly rare, even when you are using inheritance and runtime polymorphism.

Share on other sites
I'm not storing the Victims by value because the list of Victims is a temporary subset of my pool-of-all-Victims. I've got code elsewhere that makes a list of eligible victims, calculates the extraInfo about this particular list, and passes that to the Killer. It seems to me that this is just the kind of thing pointers were invented for; you've got things stored somewhere, and you need access to them so they can be modified.

Using a reference is a good idea. For the law of Demeter, I must say I'd never heard of it, but it's not a bad idea. However, my ShootingGallery struct is basically just a wrapper around an std::vector<Victim*>; replicating the whole Victim interface to Killer just to avoid some extra arrows strikes me as a spot of overkill. How about I give it an [] operator to wrap the vector[] instead? That would prettify the code.

Share on other sites
Quote:
 Original post by King of MenI'm not storing the Victims by value because the list of Victims is a temporary subset of my pool-of-all-Victims. I've got code elsewhere that makes a list of eligible victims, calculates the extraInfo about this particular list, and passes that to the Killer. It seems to me that this is just the kind of thing pointers were invented for; you've got things stored somewhere, and you need access to them so they can be modified.

Sure; that's a perfectly good use of pointers too (and another one that came to mind, but the thought didn't fully form). These are "weak pointers", in case you ever need to study the CS literature. (When you work with boost::shared_ptr, you will sometimes also need to use boost::weak_ptrs so that you can indicate which pointers are "important" - otherwise the weak pointers can result in memory leaks by "holding onto" things that aren't actually in use and creating cyclic structures.)

I'm sort of interested in what the extraInfo is, now, though. :)

Quote:
 Using a reference is a good idea. For the law of Demeter, I must say I'd never heard of it, but it's not a bad idea. However, my ShootingGallery struct is basically just a wrapper around an std::vector; replicating the whole Victim interface to Killer just to avoid some extra arrows strikes me as a spot of overkill.

It wouldn't replicate the whole interface; only the part the Killer cares about. And it wouldn't *replicate* it, anyway; it would *delegate to* the Victim.

Quote:
 How about I give it an [] operator to wrap the vector[] instead? That would prettify the code.

Sure; that, in combination with doing the addition from within the Victim, is probably about as good. Except I would want the operator to dereference as well, so that we can avoid exposing ugly pointers to the client code. And at that point, calling it operator[] is getting pretty tricky.

We get:

class Human {  public:  void takeDamage() { magic[0] += 5; }  private:  int magic[42];};class Victim : public Human {};class ShootingGallery {  // weak pointers.  std::vector<Victim*> victims;  int extra_info;  public:  Victim& victim(int who) const {    return *victims[who];  }};class Killer : public Human {  public:  void kill(const ShootingGallery& s) const {    s.victim(0).takeDamage();  }};`

It still violates the LoD itself (by having the Killer "reach into" the Shooting Gallery to grab a Victim, and then manipulate the Victim - instead of letting the ShootingGallery "play with its own toys"), but it avoids a lot of the problems that the LoD is meant to guard against, and handles pointers in a pretty way. I think single-level, minor violations like this are usually OK. It becomes a matter of whether you can justify it in terms of object responsibilities; a ShootingGallery is "mostly just a container" which makes this look better.

Share on other sites
Quote:
 Original post by ZahlmanI'm sort of interested in what the extraInfo is, now, though. :)

It's basically just information about all-the-victims, such as their total points value. In principle Killer could calculate it by just iterating over the victims, but it fell much more naturally into the make-a-list-of-victims code.

Quote:
 It wouldn't replicate the whole interface; only the part the Killer cares about.

That's what I meant by the 'interface to Killer'. :)

Quote:
 And it wouldn't *replicate* it, anyway; it would *delegate to* the Victim.

I must say the difference strikes me as semantic. I'd still have to physically type the interface code, and maintain it later on; and god forbid that my Victim interface-to-Killer should change.

Share on other sites

This topic is 3933 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Create an account

Register a new account

• Forum Statistics

• Total Topics
628674
• Total Posts
2984159

• 13
• 12
• 10
• 9
• 9


text:
Thread: cos(x)-sin(x) as single trigonometric function

1. cos(x)-sin(x) as single trigonometric function

Can anybody help me with this?

Show that cos(x) - sin(x) can be expressed in terms of a single trigonometric function. Then plot its graph.

2. Multiply the expression by sqrt of 2 and it's reciprocal (which is really multiplying by 1):
$cos x - sin x \\
= \sqrt{2} \cdot \frac{1}{\sqrt{2}} \left( cos x - sin x \right)$

Distribute just the fraction (1 over sqrt 2):
$= \sqrt{2} \left( (cos x)\left(\frac{1}{\sqrt{2}}\right) - (sin x)\left(\frac{1}{\sqrt{2}}\right) \right)$

I know that cos (pi/4) = sin (pi/4) = 1/sqrt(2):
$= \sqrt{2} \left( (cos x)\left(cos \frac{\pi}{4}\right) - (sin x)\left(sin \frac{\pi}{4}\right) \right)$

Use the cosine of a sum identity:
$= \sqrt{2} cos \left( x + \frac{\pi}{4} \right)$


text:
# Math Help - Radon Nikodym computation, step of a proof

1. ## Radon Nikodym computation, step of a proof

Let $(\Omega,\mathcal F)$ be a measureable space (in fact Polish, so we can guarantee the existence of regular conditional probabilities), $\lambda, \mu$ two probability measures on $\mathcal F$ and $\mathcal F_1 \subset \mathcal F_2 \subset \mathcal F$ two sub $\sigma$ -algebras.

Let $\lambda_\omega$ and $\mu_\omega$ be the regular conditional probabilities of $\lambda$ and $\mu$ given $\mathcal F_1$.

If $\mu <<\lambda$ on $\mathcal F_2$ and $\mu_\omega << \lambda_\omega$ $\lambda$-almost everywhere

then

$\frac{d\mu}{d\lambda} _{\mathcal F_2}(\omega)= \frac{d\mu}{d\lambda} _{\mathcal F_1}(\omega) \frac{d\mu_\omega}{d\lambda_\omega} _{\mathcal F_2} (\omega)$ (i think it should say $\lambda$-almost everywhere too, but maybe it is implicit)

Any help regarding this step? What would be a proper approach?

I have tried to use the next properties:

-Conditional expectation (with respect to $\lambda$)

$\mathbb E \left [ \frac{d\mu}{d\lambda} _{\mathcal F_2}| \mathcal F_1 \right ]= \frac{d\mu}{d\lambda} _{\mathcal F_1}$

$\mathbb E \left [ \frac{d\mu}{d\lambda} _{\mathcal F_2}| \mathcal F_1 \right ](\omega)= \int_{\Omega} \frac{d\mu}{d\lambda} _{\mathcal F_2} d\lambda_\omega$

Just in case $\frac{d\mu}{d\lambda} _{\mathcal F_2}$ means the radon-nikodym derivative on $\mathcal F_2$

Any help would be greatly appreciated!

2. Any thoughts on this ?


text:
eTheses Repository

# Effect of cation substitutions in an ionomer glass composition on the setting reaction and properties of the resulting glass ionomer cements

A. M. P. Kashani, Mitra (2013)
Ph.D. thesis, University of Birmingham.

 PDF (10Mb)Accepted Version

## Abstract

This study investigated the effect of Ba$$^2$$$$^+$$ and Sr$$^2$$$$^+$$ substitutions for Ca$$^2$$$$^+$$ in an ionomer glass composition 4.5SiO$$_2$$-3Al$$_2$$O$$_3$$-1.5P$$_2$$O$$_5$$-3CaO-2CaF$$_2$$ on the setting reaction and properties of the resulting glass ionomer cements (GICs). Experimental GICs (Ca-GIC, Ca-Sr-GIC and Ca-Ba-GIC) were characterized via various techniques: Diametral tensile strength, compressive strength, flexural strength, Vickers hardness and nano-indentation measurements were conducted at different time points during setting. Real time Fourier transform infrared (FTIR) spectroscopy was used to study the effect of the glass composition on cement setting reactions. A resistance to penetration method evaluated the cement setting time. Additionally, the wear resistance of the experimental GIC was measured by a ball-on-flat wear test. Furthermore, fluoride (F$$^-$$) release and the antimicrobial behaviour of cements were investigated. The compressive, diametral and flexural strength of the cements in which Ca$$^2$$$$^+$$ was substituted by Sr$$^2$$$$^+$$ and Ba$$^2$$$$^+$$ were both statistically significantly higher than the unsubstituted control at 1 hour after setting (P < 0.001). FTIR results confirmed that enhanced metal salt crosslinking occurred in the ion substituted materials, especially from 1 to 60 minutes. Therefore, it can be concluded that replacing Ca$$^2$$$$^+$$ with larger cations (Sr$$^2$$$$^+$$ and Ba$$^2$$$$^+$$) affects the setting reaction and resulting mechanical properties in the short term. All three experimental GICs inhibited growth of Streptococcus mutans over a period of 48 hours. The F$$^-$$release analysis showed that there was less F$$^-$$ release in artificial saliva (AS) than in deionized water over 40 days.

Type of Work: Ph.D. thesis. Stamboulis, Artemis Colleges (2008 onwards) > College of Engineering & Physical Sciences School of Metallurgy and Materials RK Dentistry University of Birmingham 4548
This unpublished thesis/dissertation is copyright of the author and/or third parties. The intellectual property rights of the author or third parties in respect of this work are as defined by The Copyright Designs and Patents Act 1988 or as modified by any successor legislation. Any use made of information contained in this thesis/dissertation must be in accordance with that legislation and must be properly acknowledged. Further distribution or reproduction in any format is prohibited without the permission of the copyright holder.

Repository Staff Only: item control page


text:
# All Questions

44,241 questions
Filter by
Sorted by
Tagged with
621k views

### How to write “ä” and other umlauts and accented letters in bibliography?

How to write in bibliography (package natbib) letter "a" with two dots above? Specially, I mean the word Birkhäuser. Is there a general rule or way how to write such umlauts or other accented letters ...
75k views

### What graphics packages are there for creating graphics in LaTeX documents?

What packages do you use and recommend for creating graphics in your LaTeX documents? As this is a community wiki post, please add your package to the accepted answer (or add a comment, and ...
11k views

### How can I invert a 'clip' selection within TikZ?

I wish to draw an arc for a reflex angle on the outside of a triangle with coordinates (A), (B) and (C). If I wanted to draw the arc inside the triangle I could use something like \begin{scope} \...
187k views

851k views

### How can I split an equation over two (or more) lines

I am having the following equation: Q(\lambda,\hat{\lambda}) = -\frac{1}{2} P(O \mid \lambda ) \sum_s \sum_m \sum_t \gamma_m^{(s)} (t) \left( n \log(2 \pi ) + \log \left| C_m^{(s)} ...
102k views

### Manual font installation

Frequently there are questions about, how to manually install a font, what very often means “Type1 font”. So I thought, we should write a general answer about the several aspects to regard. Beside ...
3k views

### When to use \LetLtxMacro?

Frequently I see users redefine macros using (for example) \let\oldmacro\macro% Store \macro in \oldmacro \renewcommand{\macro}{% % ...redefined \macro \oldmacro% } and other times they use \...
123k views

### Compiling documents online

I have heard rumors that you can compile documents online, and more specifically that Google has a free online compiler, but I have never been able to find any. Is there a way to compile documents ...
301k views

### Difference between \textwidth, \linewidth and \hsize

The three lengths \textwidth, \linewidth and \hsize seem to all hold the width of the current line. At least I never saw some real difference between \textwidth and \linewidth in my code. Both seem to ...
210k views

### Forcing linebreaks in \url

This question led to a new package: xurl I wish to typeset some relatively long URLs in a piece of text, and when I use \url{..}, the resulting text does not respect the margin boundaries that ...
16k views

### Mindmap tikzpicture in beamer (reveal step by step)

I want to include a tikzpicture (mindmap) in beamer and I want the children to appear one after the other. So I use \visible but it don't works -- also not with \pause command. I get errors regarding ...
49k views

### Frequently loaded packages: Differences between pdfLaTeX and XeLaTeX

Until now, I have been compiling my LaTeX documents with pdfLaTeX. My standard document preamble includes the "usual suspects" for non-English speakers (inputenc, fontenc, babel) and a bunch of other ...
20k views

### Why are Bitmap-Fonts used automatically?

I have the following LaTeX-document: \documentclass[a4paper,11pt]{article} \usepackage[utf8x]{inputenc} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \title{Sample} \author{Litb} \begin{...
40k views

### How to check if a macro value is empty or will not create text with plain TeX conditionals?

I have a macro which holds some text value, e.g. \macro{some text}. If it is empty, I would like for nothing to appear in the document, but it has some content of any kind which would produce text ...
106k views

### Differences between LuaTeX, ConTeXt and XeTeX

I’m interested in the differences and commonalities between the “new” (La)TeX processors: LuaTeX, XeTeX, and ConTeXt. Personally, I’ve only used XeTeX so far and without having the time to try out ...
92k views

### Workflow for converting LaTeX into Open Office / MS Word Format

I often have to write up reports based on the analysis of some data. I use R to analyse the data and export tables, figures, and text. This is then included into a LaTeX document either using input or ...
35k views

### Passing parameters to a document

I compile most of my documents via Makefiles which take care of the bibliography, indexes, etc. Often I'd like to compile different versions from the same TeX file changing only small things (e.g. a ...
175k views

### Good way to make \textcircled numbers?

This question led to a new package: circledsteps I'm trying to make some good-looking numbers in a circle, using the simple command: \textcircled{1} However, the circle is misaligned vertically ...
178k views

### Two figures side by side

How can I put two figures side-by-side? Not two sub-figures, but two actual figures with separate "Fig.: bla bla" captions. A figure is supposed to spread over the entire text width, but I have two ...
33k views

### Suppress “In:” biblatex

How do I suppress the "In: " before the journaltitle? Like so: In: Journal of Applied Physics
37k views

15k views

### Left/Right across multi-line equation

I have a multi-line equation that I want to have matching sized parentheses. The advice I read online was to use \left( equation \right. \\ left. rest-of-equation \right) . However, this syntax leaves ...
18k views

### Spacing around \left and \right

Why does the addition of a \left and \right introduces an extra space around the formula? Specifically, why do $\cos(\theta)$ and $\cos\left(\theta\right)$ render differently? Is there a way to use ...
52k views

### Which graphics formats can be included in documents processed by latex or pdflatex?

There several types of graphics files. In no particular order .jpeg .eps .pdf .png .tif .jif (and no doubt others). Some work with latex, dvips and some work with pdflatex. How am I supposed to know ...


text:
$$\require{cancel}$$

# 4.2: Conservation of Momentum

In Equation (4.1.1), what is the total force acting on all the particles? Well, that’s the sum of all the forces the particles exert on each other, plus all external forces: $$F_{\text { total }}=\sum_{i} F_{\text { int }, i}+\sum_{i} F_{\text { ext }, i}$$ . Now Newton’s third law of motion tells us that the internal forces come in opposite pairs, so when we sum them, they all cancel, and the total net force acting on the particles is equal to the sum of the external forces acting on the particles.Therefore, by Equation (4.1.1), the center of mass of a system of particles obeys Newton’s second law of motion. What about the momentum of the center of mass? Like the force, the total momentum of the system of the system is given by the vector sum of the individual particle momenta:

$P_{\text { total }}=\sum_{\alpha} \boldsymbol{p}_{\alpha}=\sum_{\alpha} m_{\alpha} \dot{r}_{\alpha}=\frac{\mathrm{d}}{\mathrm{d} t} \sum_{\alpha} m_{\alpha} r_{\alpha}=\frac{\mathrm{d}}{\mathrm{d} t} M r_{\mathrm{cm}}$

so the total momentum of the system equals that of the center of mass. Moreover, as long as the mass of the system is conserved, we can rewrite Equation (4.1.1) as

$F_{\text { total }}=\frac{\mathrm{d} P_{\text { total }}}{\mathrm{d} t} \label{ftotal}$

Not only does the center of mass of a system of particles obey Newton’s second law of motion, its total momentum does too. Moreover, unlike in the single-particle case, Equation (\ref{ftotal}) has an important consequence for the case that there is no external force acting on the system. For one particle, that would simply mean that the momentum does not change - Newton’s first law of motion. But for multiple particles, Equation (\ref{ftotal}) tells us that no external forces means that the total momentum does not change. We have therefore arrived at our second conservation law:

Theorem 4.1 (Law of conservation of momentum). When no external forces act on a system of particles, the total momentum of the system is conserved.

We derived the law of conservation of momentum by applying both Newton’s second and third laws of motion, so like conservation of energy, it is not an independent result, but follows from our axioms. Note that the law allows for the momenta of the individual particles in the system to change, as long as their total stays the same - this is what happens when you play billiards, and why the number of balls bouncing in a Newton’s cradle is fixed.


text:
Get our free extension to see links to code for papers anywhere online!

# Impossibility Results for Grammar-Compressed Linear Algebra

Oct 27, 2020
Amir Abboud, Arturs Backurs, Karl Bringmann, Marvin Künnemann

To handle vast amounts of data, it is natural and popular to compress vectors and matrices. When we compress a vector from size $N$ down to size $n \ll N$, it certainly makes it easier to store and transmit efficiently, but does it also make it easier to process? In this paper we consider lossless compression schemes, and ask if we can run our computations on the compressed data as efficiently as if the original data was that small. That is, if an operation has time complexity $T(\rm{inputsize})$, can we perform it on the compressed representation in time $T(n)$ rather than $T(N)$? We consider the most basic linear algebra operations: inner product, matrix-vector multiplication, and matrix multiplication. In particular, given two compressed vectors, can we compute their inner product in time $O(n)$? Or perhaps we must decompress first and then multiply, spending $\Omega(N)$ time? The answer depends on the compression scheme. While for simple ones such as Run-Length-Encoding (RLE) the inner product can be done in $O(n)$ time, we prove that this is impossible for compressions from a richer class: essentially $n^2$ or even larger runtimes are needed in the worst case (under complexity assumptions). This is the class of grammar-compressions containing most popular methods such as the Lempel-Ziv family. These schemes are more compressing than the simple RLE, but alas, we prove that performing computations on them is much harder.

* NeurIPS'20, 20 pages


text:
# Laplacian or Grad of an InterpolatingFunction

For obtaining a Schlieren image from an equation for density, I need to calculate the first derivative of density and make a contour plot.

The below code snippet calculates the first derivative w.r.t x and y and makes a contour plot. All is well until this step. hSol is an interpolating function polynomial, TRup is the final time of calculation/rupture time in NDSolve and fac is just a value between 0 and 1.

T = 1 - hSol[x, y, fac*TRup]/(hSol[x, y, fac*TRup] + 1);
a = 9.2/10^4;
b = 4.5/10^7;
r = 0.97/(1 + a*T + b*T^2);
ContourPlot[Evaluate[D[r, x] + D[r, y], {x, 0, L}, {y, 0, L}],
PlotRange -> {{0, L}, {0, L}, {0, 3.5}},
BaseStyle -> {FontWeight -> "Bold", FontSize -> 18},
Contours -> 75]

If I replace the dx dy terms with Grad[r] or Laplacian[r], it errors out:

1. Either it locks up the RAM and my computer crashes.
2. Or All the code in my notebook turns to BLUE as if it were never evaluated in the first place.

I tried it with a simpler problem as in Example 1 and i could replace y' in the ParametricPlot of In[3] with Laplacian[] and things worked well. (I do realize that y' is not Laplacian...)

*(MY CODE)*Mathematica code that produces the interpolating function polynomial:

(*"Specifies the number of previous lines of input and output to keep in a Mathematica session."*)
\$HistoryLength=0;
(*Loads necessary packages to perform vector analysis*)
Needs["VectorAnalysis"]
Needs["DifferentialEquationsInterpolatingFunctionAnatomy"];
(*Clears equation symbols*)
Clear[Eq0,EvapThickFilm,h,Bo,\[Epsilon],K1,\[Delta],Bi,m,r] (*Eq0 and EvapThickFilm are variable names. These can be changed as long as the change is made through the entire document*)
(*'h' is the film thickness variable, 'Bo' is the Bond number (G/S), '\[Epsilon]' is the epsilon from the maximizing wavelength equation, 'K1' is the non-equilibrium coefficient, '\[Delta]' is the delta term from the max wavelength equation, 'Bi' is the Biot number, 'm' is the m term and 'r' is the modified Rayleigh number term*)
Eq0[h_,{Bo_,\[Epsilon]_,K1_,\[Delta]_,Bi_,m_,r_}]:=\!$$\*SubscriptBox[\(\[PartialD]$$, $$t$$]h\)+Div[-h^3 Bo Grad[h]+h^3 Grad[Laplacian[h]]+(\[Delta] h^3)/(Bi h+K1)^3 Grad[h]+m (h/(K1+Bi h))^2 Grad[h]]+\[Epsilon]/(Bi h+K1) + (r)D[D[(h^2/(K1+Bi h)),x] h^3,x] ==0; (*This is the evolution equation in 3D cartesian coordinates*)
SetCoordinates[Cartesian[x,y,z]];
EvapThickFilm[Bo_,\[Epsilon]_,K1_,\[Delta]_,Bi_,m_,r_]:=Eq0[h[x,y,t],{Bo,\[Epsilon],K1,\[Delta],Bi,m,r}];

(*Domain size in non dimensional units*)L=76.1311;  (*Maximum time of iteration*)TMax=5000*100;
Off[NDSolve::mxsst];
Clear[Kvar];
(*Kvar[t_]:=  Piecewise[{{1,t<=1},{2,t>1}}]*)
(*Ktemp = Array[0.001+0.001#^2&,13]*)
hSol=h/.NDSolve[{
(*Bo,\[Epsilon],K1,\[Delta],Bi,m,r*)
(*Non dimensional number values are fed into the evolution equation which is called here with 'EvapThickFilm[...]'. The arguments, in order are, Bo, \[Epsilon], K1, \[Delta], m, r. These are the exact values used in Oron et al.*)
EvapThickFilm[0.0,0,1,0,1,0.0544911,0],

(*Periodic boundary conditions at the left and right walls in x and y directions*)
h[0,y,t]==h[L,y,t],
h[x,0,t]==h[x,L,t],
(*h[x,y,0] == 1.1+Cos[x] Sin[2y] *)
(*Initial condition as used in Oron et al.*)
h[x,y,0]==1+(-0.05 Cos[2\[Pi] x/L] -0.05 Sin[2\[Pi] x/L])Cos[2 \[Pi] y/L]
},
h,
{x, 0, L},
{y,0, L},
{t, 0, TMax},
Method->{"BDF","MaxDifferenceOrder"->1},
MaxStepFraction->1/50
][[1]]

fac = 0.99;
hGrid = InterpolatingFunctionGrid[hSol];
{TMin, TRup} = InterpolatingFunctionDomain[hSol][[3]]
Length[hGrid]
{nX, nY, nT} = Drop[Dimensions[hGrid], -1]

-

You'll have to make sure you plot a real scalar quantity if you want to leave all the other parts of the ContourPlot unchanged. So for example you could replace D[r, x] + D[r, y] by Grad[r].{1,1,0} but not directly by Grad[r].
I see some other issues - the evaluate should wrap only the function to be plotted, not the variable range, i.e., Evaluate[D[r, x] + D[r, y], ... should be Evaluate[D[r, x] + D[r, y]]`.


text:
# Examples of problems that are easier in the infinite case than in the finite case.

I am looking for examples of problems that are easier in the infinite case than in the finite case. I really can't think of any good ones for now, but I'll be sure to add some when I do.

• It’s been a while since I’ve thought of this, but I think that “any two bases of a vector space have the same cardinality” qualifies. Aug 9, 2016 at 2:44
• People can compute cohomology/homology/homotopy stuff of stable objects easier than they can compute such invariants of their unstable/finitary versions.
– Pedro
Aug 9, 2016 at 3:53
• In general, it is sometimes easier to answer an "infinite" question first (like "are there infinitely many prime numbers?"), the "infinite" question being both easier and more natural, and then it turns out that the "finite" case, which at first was a secondary consideration, is much more difficult. The only example I can think up right now is that of prime numbers (which it turns out is not as good an example as I first thought, since there are combinatorial ways of computing values of $\pi(n)$), but I'm sure more exist. Aug 9, 2016 at 8:09
• My first thought was the classification of simple finite groups versus the classification of simple Lie groups, though that's not exactly finite vs. infinite as Lie groups are just a small subset of the infinite groups. Aug 9, 2016 at 8:23
• Many finite Ramsey style theorems are harder to prove than some of the infinite ones... Aug 9, 2016 at 15:28

One can compute the value of $$\int_{0}^{\infty}e^{-t^{2}}\,\mathrm{d}t$$ exactly. This is known as the Gaussian integral, and it has its own Wikipedia page. The answer turns out to be $\frac{1}{2}\sqrt{\pi}.$

But one cannot do the same with $$\int_{0}^{x}e^{-t^{2}}\,\mathrm{d}t$$ because the antiderivative of the integrand is not an elementary function. This is why we gave a name to the error function $$\mathrm{erf}(x) = \frac{2}{\sqrt{\pi}}\int_{0}^{x}e^{-t^{2}}\,\mathrm{d}t,$$ which also has its own Wikipedia page.

In that sense, the infinite case is easier than the finite case.

Addendum: The same phenomenon occurs for variants of this integral, in particular we can transform the integrand to evaluate $$\int_{-\infty}^{\infty}ae^{-(t-b)^{2}/(2c^{2})}\,\mathrm{d}t = \sqrt{2}a\lvert c\rvert \sqrt{\pi}$$ as detailed here on Wikipedia.

• @jwg: Thanks for your feedback. What do you think the questioner meant? What criteria does this answer fail to meet? Aug 9, 2016 at 8:32
• Put another way, if this answer the question that the OP intended, then it was an uninteresting question.
– jwg
Aug 9, 2016 at 12:55
• @jwg: You haven't answered my questions. How am I supposed to improve this answer, or give a better answer, if I am interpreting the question incorrectly? If indeed I am interpreting the question incorrectly, it would help if you (or anyone else) could give me some advice on where I am going wrong. That being said, I feel an impulse to point out that you have not said the same about any of the other answers so far: what makes this answer different to the others? Aug 9, 2016 at 13:42
• @jwg, put another way, what meaning would make the question interesting? Aug 9, 2016 at 13:46
• @WillR I assume the question is looking for examples of theorems which are easy to prove about infinite sets/rings/fields/groups/etc., but harder to prove for finite objects. Aug 10, 2016 at 13:32

First thought would be series vs. partial sums (or improper vs. definite integrals) e.g.

$$\sum_{k=0}^{\infty} \frac{1}{k!} \;=\; e$$

$$\sum_{k=0}^{n} \frac{1}{k!} \;=\; \frac{e \cdot \Gamma(n+1,1)}{n!}$$

• @CarryonSmiling Calculating the incomplete gamma function is even more impossible than calculating e itself ;-) It's not entirely clear what you meant by that easier in the title, which I guess is part of the game.
– dxiv
Aug 9, 2016 at 3:27
• @CarryonSmiling: when you say calculating $e$ is impossible, you have a limited view of calculation. The first line here is either the definition of $e$ or a theorem depending on the route you take. In either case it defines a specific real number. You are saying, correctly, that in finite time we can only calculate finitely many decimal places of $e$, but defining that constant is very useful even if we cannot find its decimal (or binary) representation. Aug 9, 2016 at 3:32
• We name certain reals, like $e$ and $\pi$ because they are useful. It doesn't matter that we don't have the whole decimal expansion. What matters is they are the same real that shows up lots of places, so we can use what we have learned about them in one place to help with another place. Aug 9, 2016 at 3:37
• This is misleading: you can define e as such as sum. In that sense, there is no evaluation there.
– Pedro
Aug 9, 2016 at 3:52
• @dxiv what do you mean by the second argument in the gamma function, i.e. what is $\Gamma(\cdot,m)$? Aug 9, 2016 at 6:31

$\min c^Tx$

subject to $x \in P$

where $P$ is a bounded polyhedral can be solved easily by linear programming method. Ellipsoid method shows that the problem is in $P$ class.

$\min c^Tx$

subject to $x \in P \cap \mathbb{Z}^d$

that is imposing integer constraint increase the difficulty of the question.

Here $P$ is an infinite set in the sense that it contains infinitely many points but $P \cap \mathbb{Z}^d$ contains only finitely many points. Linear programming problem is easier than integer programming problem.

• Isn't it an open problem (P = NP) whether integer programming is actually harder than linear programming? Aug 9, 2016 at 20:17
• true. good point. Aug 9, 2016 at 23:49
• @templatetypedef But is computational hardness the same thing as hardness to people? Aug 10, 2016 at 2:41
• @templatetypedef I don't think anyone actually believes that though Aug 10, 2016 at 3:25
• But the difference in difficulty here is due to "discrete vs. continuous", not "infinite vs finite" Aug 11, 2016 at 22:00

Circle packing. Packing in a plane (infinite case) vs. packing in arbitrarily given bounded area (finite case).

• This is an excellent example, and extremely understandable. Well done. Aug 13, 2016 at 2:12
• Even the packing of square tiles inside a simple (even with integer sides) right triangle is quite challenging Aug 19, 2016 at 22:44
• The infinite case isn't too easy either, though ... In fact there's the issue of even defining what the problem is. What it means to be "the" best packing is apparently unresolved, although you can of course prove a packing has the maximum possible density. Sep 2, 2016 at 18:21

# Proving that a polynomial is zero

Suppose you have an unknown polynomial $f$ of degree $d$, but you are able to say things about the values of $f$.

If you are working over an infinite field, an easy test is to check if $f(a) = 0$ for $d+1$ distinct values of $a$.

If you are working over a finite field of $d$ elements or less, you can have the unenviable problem that $f(a) = 0$ for every $a$, even when the polynomial $f(x)$ is nonzero, so this approach won't work in general.

(example: $f(x) = x^q - x$ when working over the field of $q$ elements)

• More explicitly maybe, over finite fields there aren't $d+1$ distinct values to check. Though, when would you have a situation like this? Where can one use this argument? I've never seen it before and I think it would be neat to see.
– MCT
Aug 9, 2016 at 14:06
• @MichaelTong It's hard coming up with interesting examples on the spot. But here's one: suppose you have a complex polynomial with the property that $f(a)$ is a real number whenever $a$ is a real number. Let $\bar{f}$ be the polynomial you get by conjugating its coefficients. Then $\bar{f}(a) = f(a)$ whenever $a$ is a real number, and $f - \bar{f}$ as infinitely many roots! Consequently, the coefficients of $f$ must be real numbers.
– user14972
Aug 9, 2016 at 14:14
• @MichaelTong A maybe less interesting but more important application is that one method of doing arithmetic with polynomials is to record its values rather than its coefficients. In particular, this makes multiplying polynomials easy. If you use $n$ different values, then there is at most one polynomial of degree less than $n$ attaining those values; so if you do arithmetic this way and then later find the coefficients of a polynomial with those values, you can be sure you got the right answer if the degree you were looking for is less than $n$. Keyword: "evaluate-interpolate".
– user14972
Aug 9, 2016 at 14:19
• Testing if a polynomial function evaluates to $0$ everywhere requires fewer point evaluations for a finite field when $d \geq |F|$, and the same number of tests otherwise. Testing whether an element of $F[X]$ is $0$ requires the same number of the same field operations whether $F$ is finite or infinite. As long as the meaning of zeroness-testing is kept consistent between finite and infinite fields, the infinite case is no easier.
– zyx
Aug 10, 2016 at 3:17

In digital sample analysis (signal, image processing, data science), data is generally discrete and finite. "Discrete" generally means "regularly sampled", and indexed by integer indices. "Finite" here means having a compact support (not talking about the field in which the values are taken, except as a side note). This answer is about the difference in analysing continuous data $$x(t)$$, $$t\in \mathbb{R}$$, or discrete data $$x[n]$$, $$n\in [1,\ldots,N]$$. Similar problems arise in higher dimensions with $$t\in \mathbb{R}^d$$ and $$n\in [1,\ldots,N]^d$$, I will consider only $$d\in\{1,2,3\}$$.

Tools from harmonic analysis have been used for a while in signal (and image) processing : all sorts of integral transformations, such as Fourier, Radon, Hilbert transforms, and wavelet analysis. Such representations are generally invertible when considered on functions of continuous parameters (like a time $$t$$). However, the discretization of harmonic analysis transformations with a finite number of samples, which is mandatory for computer operations, while retaining nice properties (orthogonality, invertibility, symmetry) is often complicated.

A standard example is the theory of continuous wavelet transforms. A 1D signal $$x(t)$$ can be transformed to a 2D domain with a location ($$b$$) and scale ($$a$$) variable:

$$X_{w}(a,b)={\frac {1}{|a|^{1/2}}}\int_{-\infty }^{\infty }x(t)\overline {\psi}\left({\frac {t-b}{a}}\right)\,dt$$ which admits an inversion $$x(t)=C_{\psi }^{{-1}}\int _{{-\infty }}^{{\infty }}\int _{{-\infty }}^{{\infty }}X_{w}(a,b){\frac {1}{|a|^{{1/2}}}}{\tilde \psi }\left({\frac {t-b}{a}}\right)\,db\ {\frac {da}{a^{2}}}$$ with a quite mild admissibility condition (SE.math) on $$\psi$$ and $$\tilde{\psi}$$, which I do not detail here. In plain words, any couple of such functions (avoid pathological ones, still) vanishing in the Fourier domain at $$0$$, and decaying fast enough at $$\infty$$, will do the job. So one can use many smooth wiggling functions, with analytical formulas, like Gaussian derivatives, for instance the Mexican hat:

However, the building of discrete wavelets was difficult, apart from trivial examples in early works by A. Haar in 1910 and P. Franklin in 1928. It took some time before J.-O. Strömberg, Y. Meyer and I. Daubechies produced discrete orthogonal wavelet bases in the eighties. Daubechies wavelets of low order are notoriously not so regular, without analytical formulas, and asymmetric:

This is for the transformation. But the signal is quantized on bits. It often takes values in $$[0,\ldots,2^B-1]$$ If we restrict the output to by quantified too, the problem is even more difficult.

Aside, dealing with (and defining) discrete objects on a digital grid is often more complicated than with their continuous counterparts. Think for instance about discrete arcs of circles (in 2D), drawn in "pixels", that do not scale as well as standard circles:

Those topics are addressed in digital geometry, for which algorithms are developed to draw discrete lines (Bresenham algorithm), discrete planes (in 3D, see below, from 3D Noisy Discrete Objects: Segmentation and Application to Smoothing, 2009, Provot et al.), with less or more thickness, or conics for instance.

• It's not obvious to me that your discrete cases are also finite. Are they? Aug 16, 2016 at 5:34
• @Mehrdad As for discrete signals, I would be positive. As for digital geometry, positive for bounded objects like the cercle. Do you believe I should add a mention for discrete lines and planes? Aug 16, 2016 at 6:02
• Ah sorry, I just meant the signals. It'd be nice if you could plot what signal's wavelet transform you were taking, so that we could see that it's discrete and finite. Aug 16, 2016 at 6:32
• @Mehrdad Discrete finite support wavelets boil down to the convolution of two finite support series. As I cannot produce a continuous image, would a finite signal, with a discrete wavelet plot suit your needs? Sep 2, 2016 at 19:14

Geometric series finite vs. infinite case for $|q|<1$ \begin{align*} \sum_{j=0}^Nq^j=\frac{1-q^{N+1}}{1-q}\qquad\text{vs.}\qquad\sum_{j=0}^\infty q^j=\frac{1}{1-q} \end{align*}

• What's the underlying "problem" here? Is it using the formula to compute the answer, or is it deriving the formula? The former doesn't seem like a "problem" (as I understand the word) and I'm not convinced that the latter is easier in the infinite case. (+1, though, because this is the first thing that came to my mind, too...) Aug 11, 2016 at 19:28
• @BenjaminDickman: Thanks! It was also my first idea. :-) Underlying problem: Find a closed expression. ... and at least the outcome is simpler. Aug 11, 2016 at 19:38
• The "outcome is simpler" -- yeah, I was just thinking that to "find a closed expression" -- at least the way I have trad'ly done it -- involves first working with the finite case, and then getting to the infinite case by evaluating a limit (i.e., the finite case along with an extra step, hence arguably not "easier"). Aug 11, 2016 at 19:53

The linear-quadratic control problem, that is, finding a function $u(t)$ that minimizes $\int_0^{t_1} x^TQx + u^TRu\,\mathrm{d} t$ under the constraint $\dot{x} = Ax + Bu$.

In the infinite-horizon case $t_1=\infty$, the solution is obtained by solving an algebraic Riccati equation (ARE). In the finite-horizon case $0<t_1 \in \mathbb{R}$, it is obtained by solving a differential Riccati equation (DRE), which is more difficult to solve; for instance, some numerical methods for DREs involve solving an ARE at each time step.

• +1 I think this is more in the spirit of the question than some other answers. Aug 11, 2016 at 2:44

Let's take a look at Goodstein sequences $G_k(n)$ and their interesting behaviour. We associate to each natural $n$ a sequence $(G_k(n))_{k\geq 0}$.

• Step $0$: We start by representing $n$ in base $2$ notation and also all powers and powers of powers, so that $n$ is written without using any number greater than $2$.

Taking $n=266$ we obtain \begin{align*} G_0(266)=2^8+2^3+2^1=2^{2^{2+1}}+2^{2+1}+2^1 \end{align*}

• Step $k\geq 1$: Replace each occurrence of base $k+1$ in $G_{k-1}(n)$ by $k+2$, represent it in base $k+2$ notation without using any number greater than $k+2$ and subtract $1$

We obtain \begin{align*} G_1(266)&=3^{3^{3+1}}+3^{3+1}+3^1-1=3^{3^{3+1}}+3^{3+1}+2\simeq 10^{38}\\ G_2(266)&=4^{4^{4+1}}+4^{4+1}+1\simeq 10^{616}\\ G_3(266)&=5^{5^{5+1}}+5^{5+1}\simeq 10^{10921}\\ G_4(266)&=6^{6^{6+1}}+6^{6+1}-1\\ &=6^{6^{6+1}} +5\cdot6^{6}+5\cdot6^{5}+5\cdot6^{4}+5\cdot6^{3}+5\cdot6^{2}+5\cdot6^{1}+5\simeq 10^{217832}\\ G_5(266)&=7^{7^{7+1}} +5\cdot7^{7}+5\cdot7^{5}+5\cdot7^{4}+5\cdot7^{3}+5\cdot7^{2}+5\cdot7^{1}+4\simeq 10^{4871822}\\ \end{align*}

Although this sequence is enormously increasing at the beginning, subtracting $1$ in each step is sufficient that this sequence and in fact each Goodstein sequence will eventually terminate with $0$ (admittedly with $k$ often rather large).

The interesting thing is to prove this behaviour can be done by going from finite to infinite. It is done by using transfinite ordinals and arguing with the well-ordering property. See this nice introductory presentation for more information.

• I can't shake the feeling that "using transfinite ordinals" in this case is easier because we happen to already know a lot of things about transfinite ordinals, enough to establish the mapping between the two. So it qualifies. But out of interest, to someone who isn't already familiar with ordinals, is the proof any easier to follow than a direct proof that hereditary base-2 notation is well-ordered and that each step in the sequence results in a smaller value per this order? I suppose one can argue that since PA doesn't prove the result, in some formal sense the "finite case" is impossible! Aug 9, 2016 at 10:02
• @SteveJessop: It seems that in this case a proof via transfinite ordinals is in fact simpler, since it's easy to associate a strictly decreasing sequence with the help of transfinite ordinals as it is indicated in the referenced page. Aug 9, 2016 at 10:08
• But just staring at your example, ignore the actual $n$ in the hereditary base-n notation, it's easy to see that the "biggest term" never gets any bigger in our chosen well-order (meaning more complex), only bigger in the usual ordering of the integers, while the -1 repeatedly chips away at the smallest term. This observation might be giving me false hope of a "high-school" proof. I've never attempted it, so I don't know at what point down that road you hit the "tricky bit" that PA doesn't prove, and have to pull in the Axiom of Foundation or whatever. Aug 9, 2016 at 10:16
• Since the "sequence" variable is actually the $k$, don't you want to write $G_n(k)$ instead of $G_k(n)$ (in which case the sequence is $G_n$ instead of $(G_k(n))_{k\ge 0}$)? In your example you are listing the values of $G_{266}$. Aug 9, 2016 at 17:52
• It has been shown that the convergence of all Goodstein sequences to $0$ cannot be proven in PA (Peano Arithmetic) unless $\neg Con (PA)$ because it implies $con [PA].$ So without a stronger axiom (e.g. Infinity) we are stuck. Aug 10, 2016 at 1:38

## Kolmogorov's Zero-One Law

Informally, in certain probabilities spaces, events which do not depend on any finite amount of information must have probability zero or one.

For example, suppose you flip a coin over and over again infinitely many times. Any event $E$ which is independent from the outcome of any finite number of coin flips must have probability $0$ or $1$. Examples include

• $E =$ the event that 100 consecutive heads are flipped infinitely times (prob $=1$)
• $E =$ the event that $\limsup_{n \to \infty} H_n - T_n = \infty$, where $H_n$ ($T_n$ resp.) is the number of heads (tails resp.) in first $n$ tosses. (prob $=1$)
• $E =$ the event that $\lim_{n \to \infty} H_n - T_n = \infty$. (prob $=0$)
• $E =$ the event that $\sum_{k=1}^{\infty} \frac{\sigma(k)}{k}$ converges, where $\sigma(k) = 1$ if $k$'th toss is heads and $\sigma(k) = -1$ if $k$'th toss is tails. (prob $=1$)
• Excellent example! Jan 12, 2017 at 19:47

The Game of Chomp:

Although a winning strategy is guaranteed to exist, finding a winning strategy for a $a \times b$ is an unsolved problem. However, finding a winning strategy for a $a \times \omega$ ($a\geq3$) board is not that hard.

First note that you lose for a $2 \times \omega$ board, because the only losing position is a board of the form of $a+1$ chocolates and then $a$ chocolates. Your opponent can always make sure that you get such board. Now note that you can always reduce a $a \times \omega$ ($a\geq3$) board to a $2 \times \omega$ board.

• You may want to link to, or explain the Game of Chomp. I certainly didn't know it and I think I'm not alone in that.
– SQB
Aug 12, 2016 at 8:58
• This result is cute. And it also solves $\infty \times \infty$ board when $a = \infty$ :) Sep 2, 2016 at 18:26
• To be picky, but think it should be $a \times \omega$ instead of $a \times \infty$. It has to be a one-directional infinity; the board is implicitly well-ordered in each direction. Sep 2, 2016 at 18:30
• @6005 You are certainly right, I tried to explain it too many times to people who didn't know ordinal numbers. Sep 2, 2016 at 18:56

## The asymptotic distribution of primes: nth prime ≈ n ln n as n → ∞

Try finding a formula for the nth prime in the non-asymptotic case!

• I considered posting an answer along similar lines to this, but I was only thinking in terms of counting primes, i.e., evaluating $\pi(n).$ The point is that we know what $\lim_{n\to\infty}\pi(n)$ is by very elementary arguments. But as it turns out, there are practical combinatorial ways of computing $\pi(n)$ even for large values of $n.$ Kudos for finding the interpretation I missed. Aug 11, 2016 at 3:22
• @WillR: Thanks! :) Aug 11, 2016 at 5:35

# Almost the entirety of calculus and all applications thereof

This needs a bit of explaining: The notion of infinity is an artificial one. There is nothing in reality that we know to be truly infinite¹. So why do we bother with infinity? Because it’s easier to deal with than “very big numbers”! And working with infinity is what calculus (née infinitesimal calculus) is about. Take any word problem in a high-school calculus text book and try to formulate and then solve it without any notion of infinity, continuity, and so on – it will be a pain in the arse.

To be even more concrete, let’s look at the classical setup of exponential growth (e.g., for populations, interest, and so on): You have a quantity $x$ whose growth is proportionally to its current amount and want to describe its long term behaviour. Employing the notion of infinity, you can describe and solve this with the differential equation $\dot{x} = cx$. Without calculus you have to find some finite time $\mathrm{d}t$ and then can state that $x(t+\mathrm{d}t) = (1+c)·x(t)$. (In some cases, e.g., interest applied in daily steps, this may even be more realistic.) So far, there is no big difference in terms of easiness.

But now try to quickly calculate a good approximation of $x(1000 · \mathrm{d}t)$. Without employing the concept of infinity, you probably end up with performing thousands of multiplications. With infinity, you can approximate the behaviour with the exponential function, whose value you can approximate in more efficient ways. Of course, you can formulate some equivalent or almost equivalent statements for obtaining this value without infinity. But neither would the statement itself nor deriving it would be what I would consider easy.

Some of the existing answers provide further examples for this: 1, 2, 3, 4.

¹ or truly infinitesimally small, continuous, etc.

Another example of an improper integral being "easier" (in this case, by having an elementary result) than a proper one would be integrating along the entire real axis by the residue theorem and Jordan's lemma or estimation lemma

For example, consider: $$f = \frac{e^{i x}}{x^2 + 1}$$ $$\int_{-a}^a f \:\mathrm{d}x$$

For the infinite case ($a \to \infty$), we consider a semicircle with its base along the real axis and curved section in the upper positive imaginary axis, and then take the limit of its radius approaching infinity.

With the residue theorem and Jordan's lemma, we have: \begin{align*} \int_{-\infty}^\infty f \:\mathrm{d}x &= 2 \pi i \operatorname{Res}(f, i) \\ &= 2 \pi i \frac{e^{-1}}{2 i} \\ &= \frac{\pi}{e} \end{align*}

For the finite case ($a \in \mathbb{R}^+$), there is no elementary solution, so we have to solve in terms of the exponential integral: \begin{align*} \int f \:\mathrm{d}x &= \frac{i}{2} \int \frac{e^{i x}}{x + i} - \frac{e^{i x}}{x + i} \:\mathrm{d}x \\ &= \frac{i}{2} \int e \frac{e^{i (x + i)}}{x + i} - e^{-1} \frac{e^{i (x - i)}}{x} \:\mathrm{d}x \\ &= \frac{i}{2 e} \left(e^2 \operatorname{Ei}(i x - 1) - \operatorname{Ei}(i x + 1)\right) \end{align*}

Notation: $$(i). \text { |A| is the cardinal of the set A. }$$ $$(ii). [A]^2 =\{ \;\{x,y\}\subset A: x\ne y\}.$$ $$(iii). f''A=\{f(x):x\in A\}$$ for any function $f$ and any set $A\subset dom(f).$ $$(iv). \text { \omega is the first infinite cardinal.}$$

For finite or infinite cardinals $a, b$ the arrow notation $$(a)\to (b)^2_2$$ means that if $|A|=a$ then for any function $f:[A]^2\to \{0,1\}$ there exists $B\subset A$ with $|B|=b$ and $|f''[B]^2|=1.$.... Observe that if $a'\geq a$ and $b'\leq b,$ then $(a)\to (b)^2_2$ implies $(a')\to (b')^2_2.$

$$\text {Theorem 1. For any m\in \mathbb N there exists n\in \mathbb N such that (n)\to (m)^2_2.}$$ Theorem 1 implies that for all sufficiently large $n ,$ any two-coloring of the edges of the complete graph on $n$ points will have a complete sub-graph on $m$ points with edges all the same color.

$$\text {Theorem 2. (\omega)\to (\omega)^2_2.}$$ This is fairly easy to prove. Now there is a result in Model Theory: If a theory has arbitrarily large finite models then it has an infinite model. We can use this, and Theorem 2, to prove Theorem 1 by contradiction: If for some $m\in \mathbb N$ we have $\neg [(n)\to (m)^2_2]$ for all $n \in \mathbb N$ then there exists infinite $a$ such that $\neg [(a)\to (m)^2_2],$ contradicting Theorem 2.

Prof. William Weiss once told me that there is a long finitistic proof of Theorem 1, but that the infinite method "uses some technology."

• The finitistic proof of (1) that I know isn't very long, although it gives a bad upper bound. Let $e(1)=1$, $e(n+1)=2^{e(n)}+1$, and suppose $f$ is a 2-coloring of $\{1, 2, . . . , e(2n)\}$. We define a sequence of pairs of finite sets $p_i$ as follows: $p_0=(\emptyset, \{1, 2, 3, . . . , e(2n)\})$, and if $p_i=(\{x_1, . . . , x_i\}, F_i)$ then $p_{i+1}=(\{x_1, . . . , x_i, y\}, G)$, where $y$ is the least element of $F_i$ and $G$ is either the set of points in $F_i$ which get colored $0$ with $y$, or the complement in $F_i$ of that set, whichever's larger. (cont'd) Aug 11, 2016 at 0:05
• Now by choice of $e(2n)$, we can define $p_i$ for every $i\le n$. Let $C$ be the left coordinate of $p_n$, and note by induction that for any distinct $a, b, c\in C$ we have $f(\{a, b\})=f(\{a, c\})$. Let $F(a)=f(\{a, b\})$ for $a\in C$ (note that it doesn't matter what we use for $b$ here). We can now thin $C$ to get a homogeneous set of size $\ge n$, by pigeonhole: either $F^{-1}(0)$ or $F^{-1}(1)$ has size $\ge n$, and each is homogeneous. Aug 11, 2016 at 0:07
• @NoahSchweber. In retrospect I don't think that W. Weiss said "long". Aug 17, 2018 at 17:30

Without the axiom of infinity, it's very hard (impossible, I think) to prove that the TREE function is well-defined, even though it is a theorem about finite objects. This is taking a fairly liberal view of what "the finite case" means!

I am not sure if this qualifies, but I just want to share it here in case you're interested. I got it from a blog post by Mr. Greg Muller : The Axiom of Choice is Wrong

Let me write it down here the main idea of the post.

$100$ prisoners are placed in a line, facing forward so they can see everyone in front of them in line. The warden will place either a black or white hat on each prisoner’s head, and then starting from the back of the line, he will ask each prisoner what the color of his own hat is (ie, he first asks the person who can see all other prisoners). Any prisoner who is correct may go free. Every prisoner can hear everyone else’s guesses and whether or not they were right. If all the prisoners can agree on a strategy beforehand, what is the best strategy?

There is a strategy that ensures at least $99$ prisoners to go free. Let's consider a variance to that problem:

A countable infinite number of prisoners are placed on the natural numbers, facing in the positive direction (ie, everyone can see an infinite number of prisoners). Hats will be placed and each prisoner will be asked what his hat color is. However, to complicate things, prisoners cannot hear previous guesses or whether they were correct. In this new situation, what is the best strategy?

This sounds hopeless, right? However, there is a strategy that guarantee all but finitely many prisoners to go free! The paradoxical result stems from the fact that there're non-measurable sets (but some would also attribute it to the sigma-additive nature of probability).

Follows the link if you are interested. In the comment section there are also explanation/discussion of this perplexing phenomenon by many mathematician, Prof. Tao being one of them.

• @BogdanAlexandru Well, actually you must have missed something, because the article specifically says precisely what the strategy is... I suggest that you re-read it again, more carefully this time. You can come back here once you find it and if you still want to discuss about it. Aug 11, 2016 at 13:52
• @BogdanAlexandru By the way, you need to know what an equivalent class is and what the axiom of choice do in order to understand the solution to the problem. Yes, the solution is indeed paradoxical (or even problematic) but not for the reason you had given. Aug 11, 2016 at 13:54
• I did. So, aren't there an infinite number of equivalence classes then? Would a prisoner have to memorize an infinity of infinite sequences? And even if we go over this logistics problem, then how do you solve the paradox posed by my question above? My argument is still valid: for every m and n, there is absolutely no difference between the m-th and the n-th prisoner => they have the exact chance of guessing ==> they all have the exact same chance => they all have 50% chance (becaue the first one has 50%). Aug 11, 2016 at 20:37
• Regarding that thought experiment, what inputs am I allowed to use? E.g., can I say I randomly generate x in interval (0-1], then I round 1/x to the nearest integer? This solution is not good, I'm only asking for what do I have available. Aug 12, 2016 at 11:32
• Cool! This actually gets me thinking. Thanks for the interesting chat and for the patience to prove me wrong on my naive assumption that "this article is bs", which I need to take back now :) Aug 16, 2016 at 12:26

## Every single Machine Learning problem ever.

Optimal statistical inference is generally much easier in the case of infinite data than finite data.

I know this is trivial, but here's one: $x$ is finite and unknown. Determine whether $x < n$.

Easy when $n$ is infinite!

## Stability analysis of finite difference stencils

GKS stability requires that the two semi-infinite problems defined on $$[a,\infty]$$ and $$[-\infty,b]$$ must be stable in order for the finite problem defined on $$[a,b]$$ to be stable. Thus, you can't do the finite case without at least doing the infinite ones first.

A Markov chain is characterized by a discrete probability distribution of the initial state of a system, 𝜋0, and a transition matrix P such that pij is the probability of going from state i to state j after any one transition. Under certain assumptions, the probability distribution of states after the first transition is 𝜋1 = 𝜋0P, after two transitions is 𝜋2 = 𝜋1P = 𝜋0P2, after n transitions, 𝜋n = 𝜋0Pn.

By constrast, the steady-state (as n -> ∞) probability distribution of states, 𝜋, must satisfy 𝜋 = 𝜋P, and 𝜋𝛽 = 1, where 𝛽 is a column vector of 1's. This is an over-determined (by one) system of equations, but the upshot is that the steady-state probability distribution of states is obtained by inverting a matrix.

See, for example, the Markov chain Wiki for details.

## Burnside problem

The solution for Burnside problem in the following formulation:

For which positive integers $m$, $n$ is the free Burnside group $B(m, n)$ finite?

is not known for any $m$, $n$, but there are some results for infinite cases:

• $B(m,n)$ is infinite for all odd $n > 665$
• $B(m,n)$ is infinite for even $n > 2^{48}$ and $n$ divisible by $2^9$
• $B(m,3)$, $B(m,4)$ and $B(m,6)$ are finite for all $m$

And the example for the question is $B(2,5)$, for which it is not known whether it is finite. $B(2,5)$ also has the smallest $m$ and $n$ for which the problem remains open.

Finding Nash equilibria for $N$ players vs $N \to \infty$ players; see mean field games.

The Strategy-stealing argument in game theory would seem to fit here. Thus we know some games (e.g hex) are a first player win, but that knowledge doesn't help determine the necessary strategy.

In the spirit of D Poole's comment on the Zero-One Law, long-term probabilistic behavior is often a lot easier to deal with than short-term. A lot of elementary theorems in probability tell us about the asymptotic behavior of a sequence $(X_k)_{k \in \mathbb{N}}$ of random variables under suitable conditions. For instance, suppose I have a six-sided die, and I want to know the probability that in the first $600$ rolls, $1/3$ of the rolls were $4$. The formula for this value might be quite ugly when we want to look at this event after some specified number of rolls, but the strong law of large numbers tells us the probability of this happening over the long run (i.e. that $1/3$ of the rolls will be $4$) is $0$ (and further we can fairly easily provide more specific descriptions of the "size" of this outcome, e.g. Hausdorff dimension). So in general, though descriptions of the behavior of random variables might be ugly after finite time, we're often able to provide nicer descriptions of the long-term ("infinite time") behavior.

I don't believe nobody mentioned applications of the Central Limit Theorem (CLT).

For example calculating this: \begin{align} \int^{n+\sqrt[]{n}}_0 \frac{x^{n-1}}{(n-1)!}e^{-t}\,dt \end{align} is very easy when $n\to \infty$ using the CLT.

And yet another application of CLT itself is Wilk's Theorem very strong statement about the infinity case.


text:
## October 30, 2021

### Firoozbakht’s Conjecture

#### Posted by John Baez

The Iranian mathematician Farideh Firoozbakht made a strong conjecture in 1982: the $n$th root of the $n$th prime keeps getting smaller as we make $n$ bigger! For example:

$\sqrt[1]{2} \; > \; \sqrt[2]{3} \; > \; \sqrt[3]{5} \; > \; \sqrt[4]{7} \; > \; \sqrt[5]{11} \; > \; \cdots$

It’s been checked for all primes up to about 18 quintillion, but nobody has a clue how to prove it. In fact, some experts think it’s probably false.

Posted at 2:35 AM UTC | Permalink | Followups (9)

## October 28, 2021

### Learn Applied Category Theory!

#### Posted by John Baez

Do you like the idea of learning applied category theory by working on a project, as part of a team led by an expert? If you’re an early career researcher you can apply to do that now!

After working with your team online, you’ll take an all-expenses-paid trip to a conference center in upstate New York for a week in the summer. There will be a pool, bocci, lakes with canoes, woods to hike around in, campfires at night… and also whiteboards, meeting rooms, and coffee available 24 hours a day to power your research!

Later you’ll get invited to the 2023 Joint Mathematics Meetings in Boston.

Posted at 6:43 PM UTC | Permalink | Followups (3)

## October 25, 2021

### The Kuramoto–Sivashinsky Equation (Part 2)

#### Posted by John Baez

I love the Kuramoto–Sivashinsky equation, beautifully depicted here by Thien An, because it’s one of the simplest partial differential equations that displays both chaos and a visible ‘arrow of time’. Now we’ll see that it’s also invariant under ‘Galilean transformations’ — that is, transformations into a moving frame of reference.

Posted at 3:07 AM UTC | Permalink | Followups (2)

## October 22, 2021

### The Kuramoto–Sivashinsky Equation (Part 1)

#### Posted by John Baez

I love this movie showing a solution of the Kuramoto–Sivashinsky equation, made by Thien An. If you haven’t seen her great math images on Twitter, check them out!

I hadn’t known about this equation, and it looked completely crazy to me at first. But it turns out to be important, because it’s one of the simplest partial differential equations that exhibits chaotic behavior and an ‘arrow of time’: that is, a difference between the future and past.

Posted at 4:07 AM UTC | Permalink | Followups (1)

## October 20, 2021

### What is the Uniform Distribution?

#### Posted by Tom Leinster

Today I gave the Statistics and Data Science seminar at Queen Mary University of London, at the kind invitation of Nina Otter. There I explained an idea that arose in work with Emily Roff. It’s an answer to this question:

What is the “canonical” or “uniform” probability distribution on a metric space?

You can see my slides here, and I’ll give a lightning summary of the ideas now.

Posted at 4:06 PM UTC | Permalink | Followups (39)

## October 19, 2021

### Topos Institute Postdoc

#### Posted by John Baez

The Topos Institute is trying to hire a postdoc to work on polynomial functors! Here is the ad, written by David Spivak.

## October 15, 2021

### Dynamics of Reason Revisited

#### Posted by David Corfield

A couple of years ago, I mentioned a talk reporting my latest thoughts on a very long-term project to bring Michael Friedman’s Dynamics of Reason (2001) into relation with developments in higher category theory and its applications.

While that Vienna talk entered into some technicalities on cohomology, last week I had the opportunity of speaking at our departmental seminar in Kent, and so thought I’d sketch what might be of broader philosophical interest about the project.

You can find the slides here.

Posted at 10:19 AM UTC | Permalink | Followups (5)

## October 4, 2021

### Stirling’s Formula

#### Posted by John Baez

Stirling’s formula says

$\displaystyle{ n! \sim \sqrt{2 \pi n} \, \left(\frac{n}{e}\right)^n }$

where $\sim$ means that the ratio of the two quantities goes to $1$ as $n \to \infty.$

Where does this formula come from? In particular, how does the number $2\pi$ get involved? Where is the circle here?

Posted at 2:52 AM UTC | Permalink | Followups (49)


text:
# Bigger circle

Geometry Level pending

The areas of two circles are 6.16 $$cm^2$$ and 55.44 $$cm^2$$.

The diameter of the smaller circle is 2.8 cm.

What is the diameter of the bigger circle In cm?

Try this: All of my problems

×


text:
SignalProcessing - Maple Programming Help

Home : Support : Online Help : Science and Engineering : Signal Processing : Computing Statistics : SignalProcessing/MinimumMaximum

SignalProcessing

 Minimum
 compute the minimum of an array of samples
 Maximum
 compute the maximum of an array of samples
 MinimumMaximum
 compute, simultaneously, the minimum and maximum values of an array of samples

 Calling Sequence Minimum(A) Maximum(A) MinimumMaximum(A)

Parameters

 A - Array of real numeric values; the signal

Options

 • index : return the index of the maximum or minimum value in addition to the value itself

Description

 • The Minimum(A) command returns the minimum value of the array A.
 • The Maximum(A) command returns the maximum value of the array A.
 • The MinimumMaximum(A) command computes, simultaneously, the minimum and maximum values of the array A, and returns an expression sequence consisting of these two values, respectively.
 • Before the code performing the computation runs, A is converted to datatype float[8] if it does not have that datatype already. For this reason, it is most efficient if A has this datatype beforehand.
 • If the index option is provided with the Minimum or Maximum command, then an expression sequence consisting of the index of the maximum or minimum value and the value itself is returned. If it is provided with the MinimumMaximum command, then an expression sequence consisting of these four items is returned: index of the minimum value, the minimum value, index of the maximum value, maximum value.

 • The SignalProcessing[Minimum], SignalProcessing[Maximum] and SignalProcessing[MinimumMaximum] commands are thread-safe as of Maple 17.

Examples

 > $\mathrm{with}\left(\mathrm{SignalProcessing}\right):$
 > $a≔\mathrm{Array}\left(\left[3,1,2,4\right],'\mathrm{datatype}'={'\mathrm{float}'}_{8}\right)$
 ${a}{:=}\left[\begin{array}{cccc}{3.}& {1.}& {2.}& {4.}\end{array}\right]$ (1)
 > $\mathrm{Minimum}\left(a\right)$
 ${1.}$ (2)
 > $\mathrm{Maximum}\left(a\right)$
 ${4.}$ (3)
 > $\mathrm{MinimumMaximum}\left(a\right)$
 ${1.}{,}{4.}$ (4)
 > $\mathrm{Minimum}\left(a,'\mathrm{index}'\right)$
 ${2}{,}{1.}$ (5)
 > $\mathrm{Maximum}\left(a,'\mathrm{index}'\right)$
 ${4}{,}{4.}$ (6)
 > $\mathrm{MinimumMaximum}\left(a,'\mathrm{index}'\right)$
 ${2}{,}{1.}{,}{4}{,}{4.}$ (7)

Compatibility

 • The SignalProcessing[Minimum], SignalProcessing[Maximum] and SignalProcessing[MinimumMaximum] commands were introduced in Maple 17.


text:
# Math Help - Find values of variable for which trigonometric expression takes only +ve values?

1. ## Find values of variable for which trigonometric expression takes only +ve values?

For what value of $a$ in the interval $\left[\frac{7\pi}{6},\frac{7\pi}{4}\right]$ does the quadratic expression $x^2 \cot a + 2x\sqrt{\tan a} + \tan a$, assume only positive values.

2. First of all, $\tan a\geq 0\Rightarrow x\in\left[\frac{7\pi}{6},\frac{5\pi}{4}\right]$

Then the discriminant must be negative:

$\Delta=b^2-4ac=4\tan a-4<0\Rightarrow\tan a<1\Rightarrow x\in\left[\frac{7\pi}{6},\frac{5\pi}{4}\right)$


text:
# Heat Transfer and resistance

1. Oct 21, 2006

### JSBeckton

A 20-20-5 cm slab of copper at a uniform temp of 200c suddenly has its surface temp lowered to 35c. Using the concepts of thermal resistance and capacitance and the lumped-capacity analysis, find the time at which the center temp becomes 90c.
density =8900 kg/m^3
specific heat = .38 kJ/kg-k
k=370 w/m-k

My question is how I begin to solve this w/o knowing h? All of the formulas in this section have a h term that I am not given. Is there a way to find h from this info or is there another formula tha I am not seeing?

2. Oct 21, 2006

### OlderDan

I can't speak for everyone of course, but in a physics forum you probably need to be a bit more specific about the parameters for engineering topics.

h = height above surface of the earth? Planck's constant?

If h has something to do with heat transfer from one material to another, it is not relevant to this problem.

What is k? In one place it looks like k is a Kelvin temperature and in another perhaps a thermal conductivity

k=370 w/m-k

Does this mean k^2 = 370 w/m?

Are these units correct. I would gues there would be an area involved in heat flow. Is the m an m^2 perhaps?

3. Oct 21, 2006

### JSBeckton

Sorry, I have never seen h used as anything other than a heat transfer coeficient in a heat transfer book. I should be more specific.

the k=370W/m-k is the thermal conductivity

I do not understand how to use latex in this forum or I would.

4. Oct 21, 2006

### Cyrus

Is this from the book or did the teacher write it?

I'm not seeing how to find the h value yet. T_infinity is not given either, hmmm.

*In the future, you should post engineering questions in the engineering section, and not the advanced physics section.

Last edited: Oct 21, 2006
5. Oct 21, 2006

### OlderDan

I interpret heat transfer (h) to be related to heat flowing from one body to another. If that is the correct interpretation, I do not think it is needed in this problem. The problem says that the surface temperature of the plate is suddenly changed. While this may be unrealistic, I take it to mean what it says. That makes this a heat conduction problem within a single material. I don't know what additional assumptions, if any, you can make. If the temperature is everywhere 200c except at the surface, there would initially be a uniform temperature within the copper except for an infinite temperature gradient at the surface. That would imply infinite heat conduction. Very quickly there would be some temperature gradient established between the hot core and the cool surface that would diminish the core temperatrure as heat flowed to the surface. Eventually the core temperature would reach the final 90c.

I see now why the conductivity units are what you stated. There is an area involved, but there is also a length between the points of temperature difference.

I have an intuitive idea of how the process should go, but I do not know the theoretical foundation you have to work with. Since the temperature of the plate is initally uniform, the sudden drop in surface temperature should result in a huge rate of heat flow from leyers near the surface. The deeper layers will not respond initially because there is zero temperature gradient in the interior. As the heat flows out of the layers near the surface their temperature drops and the gradient increases at deeper levels. My guess is the temperature profile within the material would take on a shape somewhat like an ellipse, with a gradual temperature variation near the center and a steeper variation near the surface.

I can't do any more with this right now. I think with some effort I might be able to come up with a DE for the temperature change with distance profile for this situation, but I would probably be reinventing the wheel. I would think yoiur text has already worked it out for similar situations.

6. Oct 21, 2006

### Cyrus

I'm sorry to say your interperation of the problem is wrong OlderDan.

Lumped Capacitance means the Biot number is <<0.1.

7. Oct 22, 2006

### OlderDan

I have no idea what the Biot number is. I have no problem with being wrong about the interpretation, but I'd like to know what is wrong with it, or what assumptions the engineers make when dealing with such problems.

From a quick google it still appears that h is related to a transfer of heat from one object to another. If the problem is one of bringing the plate in contact with a heat sink at 35c, then that is what it should say. That is not the same thing as suddenly changing the surface temperature to 35c, though as I said earlier, a sudden change in surface temperature is unrealistic.

8. Oct 22, 2006

### Cyrus

The lumped capacitance is a simplification that that you can make when Bi<<0.1. In other words, the thermal resistance of the material is extremely small in comparison to the thermal resistance of the convection (h). Therefore, the body acts as an isothermal body at every instant in time.

If the Biot number is NOT satisfied, then you have to solve for the erf function of the differential equation using the non-dimensional charts.

9. Oct 22, 2006

### JSBeckton

My book states that Biot number must be <<1, it says to use 0.1 as the cutoff.

This question is straight out of the book, and its one of the first for this section so i would not expect it to be too involved.

Woud it be wrong to assume T infinity is 35?

10. Oct 22, 2006

### Cyrus

Yes, T infinity is not 35. The surface temperature T_s, would be 35.

11. Oct 22, 2006

### JSBeckton

Any ideas where to start? Is there a way that I can find h with the given info?

12. Oct 22, 2006

### OlderDan

Have you tried following the suggestion from cyrusabdollahi

As for
To my mind, the notion of an isothermal assumption is inconsistent with the problem. After all you are trying to find the time for a temperature change in the center of the plate when the surface is at another temperature. The temperature is neither constant nor uniform. I am not familiar with the other approach he speaks about, but maybe you are.

Interstingly to me, the assumption of a uniform temperature in the metal is what I was trying to make in an earlier problem we talked about for a metal cylinder exposed to air. You decided that was probably not valid. Did you ever resolve that problem?

13. Oct 22, 2006

### Cyrus

No, this is exactly what the problem is about. Bi<<0.1

No, the temperature is not constant, but it is uniform.

14. Oct 22, 2006

### Astronuc

Staff Emeritus
JS, are there no examples on lumped parameter model/analysis.

OlderDan is correct, heat transfer factor is not needed. One would just assume the heat transfer coefficient is equal to the thermal gradient at the surface, which comes from the Ts and the temperature inside.

The key is
which gives a crude estimate.

15. Oct 22, 2006

### Cyrus

I'm afraid this too, is wrong. That is not what the problem is asking. There is no such thing as a 'heat transfer factor' either:tongue2: The problem is finding the heat transfer coefficient, h, due to convection. $$q''_{conv} = h(T_0 - T_\infty)$$.

The Biot number is defined as: $$Bi = \frac{hL_c}{k}$$

I appreciate you guys trying to help, but in this case you are just making more hurt than help.

I also think this author did a piss poor job writing the problem.

the heat transfer coefficent, h, is VITAL to solving this problem, and the body is ISOTHERMAL when using the lumped capciatance method.

Last edited: Oct 22, 2006
16. Oct 22, 2006

### OlderDan

I will happily defer to you on this. You are obviously far more in tune with the terminlogy than I am.

Just for my own understanding, what led me in the wrong direction was the statement about the surface temperature suddenly changing to 35c. If I understand what you are saying, that is impossible. I believe you are saying that the internal conductivity is so high compared to the rate at which heat leaves the surface that the copper essentially has a uniform time-dependent temperature throughout that is gradually falling toward 90c and that the rate of temperature change is dependent on the temperature difference between the copper and the environment. Is that about right?

17. Oct 22, 2006

### Cyrus

And rightly so, as it makes little to no sense to me either....

Yes,

18. Oct 23, 2006

### JSBeckton

Does he mean to solve the first equation for h and then use that value to solve for time?

Thanks for your help by the way. Also last semester I posted a thermo question in the engineering forum and you said to post in the advanced physics forum, it heat transfer considered engineering?

19. Oct 24, 2006

### Cyrus

So how does he expect you to calculate the thermal resistance without knowing the the h value or the R_thrm not being given? You need to know 1 of the 2.

20. Oct 26, 2006

### JSBeckton

He said that Rth=1/2 (deltaX/kA)

I used that the solve for h and got a huge number, 44326.2

I used that value for h and of course got a very small time~.087 seconds

Do you see what he means? Am I doing this right?


text:
# Recirculating DE Mixture Problem

## Homework Statement

A rigid tank of volume "V" contains salt dissolved in water at a concentration "C". Fresh water flows into the tank at a rate of "F". A fraction "x" of the exit flow is recirculated back into the entrance flow.

Given:
V, Volume of tank
Fin, Flow rate in
Fo, Flow rate out
x, Fraction of volume flow-rate recirculated
Co, Initial concentration
C(t), Concentration in tank at time t

## Homework Equations

$$\frac{dC}{dt}=\text{concentration of salt entering}-\text{concentration of salt leaving}$$

$$C_{in}=xFC(t)$$

$$C_{out}=(1-x)FC(t)$$

so $$\frac{dC}{dt}=xFC(t)-(1-x)FC(t)$$

## The Attempt at a Solution

$$\frac{dC}{dt}=xFC(t)-(1-x)FC(t)$$

When I plot this using Euler's Method, I get this graph. This is obviously incorrect, because it does not reflect exponential decay. Can someone help me out? I'm really not sure what I've done wrong.

Related Introductory Physics Homework Help News on Phys.org
I may have found my own mistake. I totally forgot to take into account to volume of the tank. I believe this wound change the Flow Out equation to:

$$C_{out}=(1-x)FC(t)$$

so the final equation would be:

$$\frac{dC}{dt}=xFC(t)-\frac{(1-x)FC(t)}{V}$$

is this correct?

With some randomly chosen values (V=10,000 ft^3/s F=10 ft^3 x=.2 Co=.8) I get this, which seems much more reasonable.

Anyone want to qualify my answer here? Should I re-post this somewhere else? Hello?


text:
# bpy.data.object 'NurbsPath' name is “NurbsPath.001” and cannot be “NurbsPath” while bpy.data.curves name can be either “NurbsPath” or “NurbsPath.001”

In python console if I

def selected_curves():
print("active objects:")
crvs = []
for obj in bpy.data.objects:
if obj.select:
print( obj.name)
print( obj.type)
if obj.type == 'CURVE':
print('is a curve' )

then call

selected_curves()

I get:

active objects:
NurbsPath.000 CURVE is a curve NurbsPath.001 CURVE is a curve NurbsPath.003 CURVE is a curve

Then say try an lookup above in bpy.data.curves say:

bpy.data.curves['NurbsPath.000']

Traceback (most recent call last): File "", line 1, in KeyError: 'bpy_prop_collection[key]: key "NurbsPath.000" not found'

While:

bpy.data.curves['NurbsPath']

yeilds

bpy.data.curves['NurbsPath']

but

bpy.data.curves['NurbsPath.001']

yeilds

bpy.data.curves['NurbsPath.001']

as does

bpy.data.curves['NurbsPath.003']

yeidling

bpy.data.curves['NurbsPath.003']

Why is object name NurbsPath, but curve name NurbsPath.001. Is there some logic to this?

• >>> bpy.data.objects['NurbsPath.001'] bpy.data.objects['NurbsPath.001'] >>> bpy.data.objects['NurbsPath'] Traceback (most recent call last): File "<blender_console>", line 1, in <module> KeyError: 'bpy_prop_collection[key]: key "NurbsPath" not found' >>> bpy.data.curves['NurbsPath'] bpy.data.curves['NurbsPath'] >>> bpy.data.curves['NurbsPath.001'] bpy.data.curves['NurbsPath.001'] – bitminer Mar 21 '18 at 1:51

Some blender basics.

bpy.data.objects is a collection of objects of type bpy.types.Object, as is context.selected_objects and context.scene.objects. The properties and methods of bpy.types.Object are available to all objects of any type.

Each object has a data part. When an object is created its type is set according to its data. This cannot be changed, eg trying to give a 'CURVE' type object a 'MESH type data will result in an error.

Each object has only one data member.

>>> for ob in C.selected_objects:
...     ob.name, ob.type, ob.data, type(ob.data)
...
('Empty', 'EMPTY', None, <class 'NoneType'>)
('BezierCurve', 'CURVE', bpy.data.curves['BezierCurve'], <class 'bpy.types.Curve'>)
('Cube', 'MESH', bpy.data.meshes['Cube'], <class 'bpy_types.Mesh'>)

for example the curve type object above has one data member of type bpy.types.Curve. All curve type objects in the file will be in the bpy.data.curves collection. The curve object is not equivalent to the curve data object.

>>> D.objects['BezierCurve'] is D.curves['BezierCurve']
False

but rather the data part of the object.

>>> D.objects['BezierCurve'].data is D.curves['BezierCurve']
True

Can set the data to any other data of the same type.

>>> C.object.data
bpy.data.curves['BezierCurve']

>>> C.object.data = D.curves['BezierCurve.001']
>>> C.object.data
bpy.data.curves['BezierCurve.001']

Each data type, can be used by none or many objects. There is no direct reference from a data object to its object. To find all the objects that use the "BezierCurve" data in a scene would use something like

>>> [o for o in C.scene.objects if o.data is D.curves['BezierCurve']]
[bpy.data.objects['BezierCurve']]

• I guess the real question here is how do I go from bpy.data.curves to bpy.data.objects and vise-a-versa. Say given a curve how to find it's obj? ... and given a obj it is obj.data correct? – bitminer Mar 21 '18 at 15:41
• @bitminer (apologies missed this comment) Yes: Finding the data given the obj is simple it's obj.data. The last line above shows how to find obj(s) in scene given data. – batFINGER Mar 21 '18 at 19:18

Objects are an invisible shoebox that fits around your curve. It's the pivot point between the global space and your curve. It's not the curve. Inside most objects, there's data. That means, a data block is linked with the object, in this case curve datablocks.

That means curve datablocks can be used by several objects and they'll look identical.

In your first code you iterate through objects, in the second you try to access curves with the names that you've found in the objects. That can only work accidentally because the names don't have to be the same. But they could be.

That's the confusing part, I guess. The object 'BezierCircle' and the curve datablock 'BezierCircle' can have the same name while not necessarily having any connection except their spelling.

import bpy

curve_list = [] # list to collect curveblock names