text:
# Domain of f(x,y)

## Homework Statement

Find the domain of f(x,y)=sqrt(5xy-2y^2)

## The Attempt at a Solution

As far as I understand it's all about solving inequalities when you have this kind of problem.
The problem doesn't state it is in ℝ2 but I'm pretty sure it is.
So no negative numbers under the root.
Therefore 5xy ≥ -2y^2
x ≥ -2y/5 or -y ≥ 5x/2
But how exactly is this useful information?
So I looked up the topic on Youtube, Multivariable Calculus: Finding and Sketching the Domain.
It sounds perfect and the guy has two examples and one even has a root in it.
Sadly I still dont get it :/

Related Calculus and Beyond Homework Help News on Phys.org
mfb
Mentor
Therefore 5xy ≥ -2y^2
x ≥ -2y/5 or -y ≥ 5x/2
Be careful with divisions in inequalities. The sign matters.
But how exactly is this useful information?
That tells you where the function has a chance to be defined.

Yea signs in inequalities shift direction if you multiply or divide with a negative number, I knew there was something so I googled it before hand.
If x ≥ -2y/5 or -y ≥ 5x/2 tells me where the function is defined, well then that is its domain. What format is commonly used to denote it?
I think we use {(x,y) ∈ ℝ2 ; 5xy ≥ -2y2}
so (x,y) are a plane in ℝ where 5xy ≥ -2y2. Does that make sense?

Edit: My quoting skills lack as much as my math.

Mark44
Mentor
The problem doesn't state it is in ℝ2 but I'm pretty sure it is.
Yes. The function takes as input pairs of real numbers, and outputs a real number, so it's a map from some subset of $\mathbb R^2$ to $\mathbb R$.
Yea signs in inequalities shift direction if you multiply or divide with a negative number, I knew there was something so I googled it before hand.
If x ≥ -2y/5 or -y ≥ 5x/2 tells me where the function is defined, well then that is its domain.
mfb's point was that this is not valid. When you divide by a variable, you don't know what its sign is, so you can't tell whether the inequality switches direction or not.

The square root is defined, in this context, only when $5xy - 2y^2 \ge 0$. Factor that expression to see where the product of the two factors will be nonnegative.
KUphysstudent said:
What format is commonly used to denote it?
I think we use {(x,y) ∈ ℝ2 ; 5xy ≥ -2y2}
so (x,y) are a plane in ℝ where 5xy ≥ -2y2. Does that make sense?
No, in part because the domain is not a plane. The domain of this function is some subset of the real plane.

LCKurtz
Homework Helper
Gold Member
I second @Mark44 suggestion, factor $5xy-2y^2 = y(5x-2y)$. You want the region where both factors are positive or both are negative, or zero. I like to use plots like this, where I have shaded where each factor is positive. Here you should be able to describe where both factors are positive or neither are.

#### Attachments

• 11.1 KB Views: 420
I second @Mark44 suggestion, factor $5xy-2y^2 = y(5x-2y)$. You want the region where both factors are positive or both are negative, or zero. I like to use plots like this, where I have shaded where each factor is positive. Here you should be able to describe where both factors are positive or neither are.
View attachment 231726
No matter how I solve the inequality there will be a negative sign, so I get the complex part of the function if I try would sketch it. So wouldn't sketching it and taking everything the outside the complex part be a thing you could do? Just a thought I'm going to look at the factoring part :)

No matter how I solve the inequality there will be a negative sign, so I get the complex part of the function if I try would sketch it. So wouldn't sketching it and taking everything the outside the complex part be a thing you could do? Just a thought I'm going to look at the factoring part :)
I mean, don't we already assume that the number is positive since it under the radical? meaning you can basically throw the negative symbol away to begin with so we have 5xy≥2y2

mfb
Mentor
No matter how I solve the inequality there will be a negative sign, so I get the complex part of the function if I try would sketch it. So wouldn't sketching it and taking everything the outside the complex part be a thing you could do? Just a thought I'm going to look at the factoring part :)
Huh? You can consider two cases separately, e.g. y<0 and y>0.
I mean, don't we already assume that the number is positive since it under the radical?
The overall expression yes, but not the individual variables.

Mark44
Mentor
I mean, don't we already assume that the number is positive since it under the radical? meaning you can basically throw the negative symbol away to begin with so we have 5xy≥2y2
You're not "throwing away" the minus sign. It's true that the inequality $5xy - 2y^2 \ge 0$ is equivalent to $5xy \ge 2y^2$, but this step doesn't do you any good. In your work in post #1, you then divided both sides by y, which is really an invalid step, since y could be negative, positive, of zero, so you can't tell which inequality symbol should be used.

Again, what you need to do is to factor $5xy - 2y^2$ into $y(5x - 2y)$, and investigate the x and y intervals that make the product nonnegative.

Huh? You can consider two cases separately, e.g. y<0 and y>0.The overall expression yes, but not the individual variables.
Yea okay that makes sense.

Okay I'm still very confused, there must be something fundamentally wrong with my results.
So if I start out with 5xy-2y2 ≥ 0 → 5xy ≤ -2y2 → 5x ≤ -2y → -5x/2 ≥ y , so this is wrong but what is the problem? I cannot remember ever learning about inequalities in school. And reading online tells me it's just algebra and flipping the sign whenever you multiply or divide by something negative.
Holy Moly I just realized that I for some reason keep moving -2y2 like I have to add it... oh god. -2y2*-2y2 = 0 *(-2y2). I don't know what is wrong with me hehe.
ok so with that out of the way I get to add and not multiply. so we have 5xy-2y2 ≥ 0 → 5xy ≥ 2y2 → 5x ≥ 2y → 5x/2 ≥ y.
I cannot believe I got into uni…
y=5x/2 gives me a line, like the one mark has in his figure. and if I only want the positive or negative x,y-values at once then I can see the domain. But how exactly did you determine that it was only positives or negatives?

Edit:
Holy Moly I just realized that I for some reason keep moving -2y2 like I have to add it
Should have been:
Holy Moly I just realized that I for some reason keep moving -2y2 like I have to multiply it

Last edited:
Mark44
Mentor
Yea okay that makes sense.

Okay I'm still very confused, there must be something fundamentally wrong with my results.
So if I start out with 5xy-2y2 ≥ 0 → 5xy ≤ -2y2
No.
$5xy - 2y^2 \ge 0 \Leftrightarrow 5xy \ge 2y^2$
I added $2y^2$ to both sides of the inequality.
You're playing fast and loose with the signs and your algebra.
KUphysstudent said:
→ 5x ≤ -2y → -5x/2 ≥ y , so this is wrong but what is the problem? I cannot remember ever learning about inequalities in school. And reading online tells me it's just algebra and flipping the sign whenever you multiply or divide by something negative.
Holy Moly I just realized that I for some reason keep moving -2y2 like I have to add it... oh god. -2y2*-2y2 = 0 *(-2y2). I don't know what is wrong with me hehe.
ok so with that out of the way I get to add and not multiply. so we have 5xy-2y2 ≥ 0 → 5xy ≥ 2y2 → 5x ≥ 2y → 5x/2 ≥ y.
I cannot believe I got into uni…
y=5x/2 gives me a line, like the one mark has in his figure. and if I only want the positive or negative x,y-values at once then I can see the domain. But how exactly did you determine that it was only positives or negatives?

mfb
Mentor
5xy ≤ -2y2 → 5x ≤ -2y
Consider x=1, y=-1. Clearly 5xy=-5 is smaller than y2=1, but 5x=5 is not smaller than -2y=-2.
If you divide an inequality by a negative number (here: y) you have to swap the direction of the inequality.

$a<b \Leftrightarrow -a > -b$

LCKurtz
Homework Helper
Gold Member
@KUphysstudent Did you ever understand which regions answer your question by looking at the graphic I gave you in post #5?

No.
$5xy - 2y^2 \ge 0 \Leftrightarrow 5xy \ge 2y^2$
I added $2y^2$ to both sides of the inequality.
You're playing fast and loose with the signs and your algebra.
Yea I get the algebra part, I just kept making the same mistake.
@KUphysstudent Did you ever understand which regions answer your question by looking at the graphic I gave you in post #5?
I think I do, the bold line is the one you get from the inequality and the green area is to depict the positive x- and y-values. so you put in an x-value and get a y-value and in the first quadrant it is everything below the line. In the third quadrant it is everything above the line.
I cannot explain this very well, but here is how I think of it. if you have 5x/2=y and set x=2 you will get y=5, so if you instead of using 5x/2=y but then use 2y/5=x and plugin y-values you get all the points below the graph.
I think but it is likely wrong :)

Consider x=1, y=-1. Clearly 5xy=-5 is smaller than y2=1, but 5x=5 is not smaller than -2y=-2.
If you divide an inequality by a negative number (here: y) you have to swap the direction of the inequality.

$a<b \Leftrightarrow -a > -b$
That makes sense. so you can basically check every time you have manipulated the equation to see if the equality still is correct, if not you did it wrong.

LCKurtz
Yes, but it is easier just to say the green area and the white area. That's where the factors are either both positive or both negative. If you have trouble figuring out the areas, try this. The points on the line $5x-2y = 0$ are the the only places in the plane where $5x-2y=0$. Everyplace else it is either $>0$ or $<0$. You can tell which side is which by simply plugging in a point not on the line. For example, at $(1,0)$ you get $5\cdot 1 -2\cdot 0 = 5 > 0$ so that is the side where $5x-2y>0$, which I colored yellow. It's easy to visualize the regions that way.


text:
## セミナーの趣旨

2013年4月，金沢大学の偏微分方程式研究者有志が集まり本セミナーを企画しました。各回の話題は，偏微分方程式の理論的な側面を中心に，セミナー幹事の関心に従い大らかに選択しています。参加者がセミナーを十分楽しみ，勉強し，新しい発見を得られるように，各回の最初の20分から30分程度，講演者の方にはその話題への導入となるような解説をお願いしています。ご関心がある方はどなたでもご自由にご参加ください。なお，基本的には月1回・金曜日に金沢大学で開催予定ですが，柔軟に対応して長く続けていくことを目標にしています。
どうぞよろしくお願いいたします。

## 2019年度

第77回 4月24日(水) 16:00～18:10 ※通常と曜日が異なります※60分講演が2つ行われます 16:00～17:00 下條 昌彦 氏 (岡山理科大学) Center problem of reaction diffusion systems We study the initial boundary value problem for the two components reaction diffusion system having a nonlinear non-degenerate center. We prove that solutions near the center become spatially homogeneous and is subject to the ODE part asymptotically, provided that the diffusion coefficients of both components are the same. We also discuss blow-up of an parabolic system with quadratic nonlinearity having the origin as an uniform isochronous center. This is the joint work with Amy Poh Ai-Ling. 17:10～18:10 Jong-Shenq Guo氏 (Tamkang University) The spreading speed of a predator-prey system with nonlocal dispersal We are concerned with the propagation dynamics of a predator-prey system with nonlocal dispersal. We obtain a threshold phenomenon for the invasion of the predator into the habitat of the aborigine prey. It turns out that this threshold is the so-called spreading speed of the predator. コロキウム3 (自然科学5号館471)

第76回 4月19日(金) 16:30～18:00 Mark Peletier 氏 (Eindhoven University of Technology) Convergence of gradient flows: tilted is better It is a very common challenge to pass to the limit in a sequence of evolution equations $\dot x_\epsilon = f_\epsilon(x_\epsilon)$, and over the years I have proved many theorems of this kind. In particular, the theory of gradient flows provides various useful handles for proving such convergences.   In this talk I want to report on a slightly surprising observation: sometimes it is {better} not to study the original sequence $\dot x_\epsilon = f_\epsilon(x_\epsilon)$, but instead embed the sequence into a larger class of sequences, and study the convergence of this whole class instead. The resulting limiting gradient-flow structures may be different from those obtained by more classical methods, and in some cases they better represent the modelling aspects of the limits.   This is work together with Alexander Mielke and Alberto Montefusco. コロキウム3 (自然科学5号館471)

第75回 4月16日(火) 16:30～18:00 ※通常と曜日が異なります． Qing Liu 氏 (福岡大学) A deterministic game interpretation for fully nonlinear parabolic equations with dynamic boundary conditions In this talk, we give a deterministic discrete game-theoretic interpretation for a general class of fully nonlinear parabolic equations with nonlinear dynamic boundary conditions. It is well known that the classical Neumann boundary condition for general parabolic or elliptic equations can be generated by including reflections on the boundary to the interior optimal control or game interpretations. Our game method can be used to drive general nonlinear dynamic boundary conditions. We also discuss the fast evolution asymptotics of the game values, which leads us to the associated elliptic problems.   This talk is based on joint work with Nao Hamamuki at Hokkaido University. コロキウム3 (自然科学5号館471)

第74回 4月2日(火) 16:30～18:00 ※通常と曜日が異なります． Jenn-Nan Wang 氏 (National Taiwan University) Quantitative unique continuation and applications to inverse problems Unique continuation property (UCP) is an important feature of solutions to partial differential equations. It reflects certain rigidity properties of solutions. UCP can be described both qualitatively and quantitatively. For example, in elliptic equations, quantitative uniqueness estimates give us the maximal vanishing order of any nontrivial solution at one point or the maximal decay rate at the infinity. Such maximal decay rate at the infinity is related to the Landis conjecture that has attracted a lot of attention recently. UCP is not only a theoretical property of the PDE solution but also has many interesting applications to inverse problems. In this talk, I would like to discuss its application to the estimate of the size of an embedded inclusion by measuring one pair of boundary data. コロキウム3 (自然科学5号館471)

## セミナー幹事

• 今村 悠里
• Patrick van Meurs
• 大塚 浩史
• 小俣 正朗
• 木村 正人
• 中村 健一
• 野津 裕史
• 橋本 伊都子
• Norbert Pozar
• 和田出 秀光

## お問い合わせ

• 中村 健一
• k-nakamura (at)
se.kanazawa-u.ac.jp

format: plain


text:
# The polymath blog

## November 13, 2011

### Lipton’s Polymath Proposal: The Group Isomorphism Problem

Filed under: polymath proposals — Gil Kalai @ 10:16 am
Tags: , ,

## July 19, 2011

### Minipolymath3 project: 2011 IMO

Filed under: research — Terence Tao @ 8:00 pm

This post marks the official opening of the mini-polymath3 project to solve a problem from the 2011 IMO.  I have decided to use Q2, in part to see how the polymath format would cope with a more geometrically themed problem.

Problem 2.  Let $S$ be a finite set of at least two points in the plane. Assume that no three points of $S$ are collinear. A windmill is a process that starts with a line $\ell$ going through a single point $P \in S$. The line rotates clockwise about the pivot $P$ until the first time that the line meets some other point $Q$ belonging to $S$. This point $Q$ takes over as the new pivot, and the line now rotates clockwise about $Q$, until it next meets a point of $S$. This process continues indefinitely.
Show that we can choose a point $P$ in $S$ and a line $\ell$ going through $P$ such that the resulting windmill uses each point of $S$ as a pivot infinitely many times.
The comments to this post shall serve as the research thread for the project, in which participants are encouraged to post their thoughts and comments on the problem, even if (or especially if) they are only partially conclusive.  Participants are also encouraged to visit the discussion thread for this project, and also to visit and work on the wiki page to organise the progress made so far.
This project will follow the general polymath rules.  In particular:
1. All are welcome. Everyone (regardless of mathematical level) is welcome to participate.  Even very simple or “obvious” comments, or comments that help clarify a previous observation, can be valuable.
2. No spoilers! It is inevitable that solutions to this problem will become available on the internet very shortly.  If you are intending to participate in this project, I ask that you refrain from looking up these solutions, and that those of you have already seen a solution to the problem refrain from giving out spoilers, until at least one solution has already been obtained organically from the project.
3. Not a race. This is not intended to be a race between individuals; the purpose of the polymath experiment is to solve problems collaboratively rather than individually, by proceeding via a multitude of small observations and steps shared between all participants.   If you find yourself tempted to work out the entire problem by yourself in isolation, I would request that you refrain from revealing any solutions you obtain in this manner until after the main project has reached at least one solution on its own.
4. Update the wiki. Once the number of comments here becomes too large to easily digest at once, participants are encouraged to work on the wiki page to summarise the progress made so far, to help others get up to speed on the status of the project.
5. Metacomments go in the discussion thread. Any non-research discussions regarding the project (e.g. organisational suggestions, or commentary on the current progress) should be made at the discussion thread.
6. Be polite and constructive, and make your comments as easy to understand as possible. Bear in mind that the mathematical level and background of participants may vary widely.

Have fun!

## May 12, 2011

### Possible new polymath project

Filed under: polymath proposals — Terence Tao @ 5:56 pm

Richard Lipton has just proposed on his blog to discuss the following conjecture of Erdos as a polymath project: that there are no natural number solutions to the equation

$1^k + \ldots + (m-1)^k = m^k$

with $k \geq 2$.  Previous progress on this problem (including, in particular, a proof that any solution to this equation must have an extremely large value of $m$, and specifically that $m \geq 10^{10^9}$) can be found here.

## April 28, 2011

### Polymath wiki logo

Filed under: planning — Terence Tao @ 4:37 pm

Michael Nielsen has collected a number of possible logos for the polymath wiki and is asking for discussion on them.

## March 9, 2011

### Polymath discussion at IAS

Filed under: discussion — Gil Kalai @ 2:26 pm
Tags: , ,

In October 2010 there was a discussion about polymath projects at an event organized by the I.A.S in NYC. Tim Gowers described the endeavor and some prospects, and hopes, and Peter Sarnak responded with some concerns. An interesting discussion followed. Some of the discussion is described in the IAS Institute Letter for fall 2010 .

## February 14, 2011

### Polymath4: Referee report obtained

Filed under: finding primes,news — Terence Tao @ 11:34 am

An update on the status of the Polymath4 paper on finding primes.  I’ve received a referee report from Mathematics of Computation on the submission, which can be found here.   The referee liked the result but wanted a fair number of expository changes before he or she was willing to recommend acceptance, so the editor has asked for a revision.  I will be happy to make the relevant changes, but if there are any other changes that other participants would like to make, now would be a good time to suggest them.  (The most recent version of the paper can be found at the Subversion repository or at this link; see also the arXiv version.)

One change requested is to add a list of participants to the project.  In analogy with what we did for Polymath1, I therefore started a “signup sheet” on the wiki at

http://michaelnielsen.org/polymath1/index.php?title=Polymath4_grant_acknowledgments

for people to self-report their participation, contact information, and grant information for the project.    There is the usual problem of trying to decide who is a “main participant” of the project, and who is a “contributor” (though I think I can safely add Ernie, Harald, and myself as participants); as with Polymath1, I will leave it to each of you to self-report what level of participation you feel is appropriate.

## February 13, 2011

### Can Bourgain’s argument be usefully modified?

Filed under: Improving Roth bounds — gowers @ 6:23 pm

I’ve been feeling slightly guilty over the last few days because I’ve been thinking privately about the problem of improving the Roth bounds. However, the kinds of things I was thinking about felt somehow easier to do on my own, and my plan was always to go public if I had any idea that was a recognisable advance on the problem.

I’m sorry to say that the converse is false: I am going public, but as far as I know I haven’t made any sort of advance. Nevertheless, my musings have thrown up some questions that other people might like to comment on or think about.

Two more quick remarks before I get on to any mathematics. The first is that I still think it is important to have as complete a record of our thought processes as is reasonable. So I typed mine into a file as I was having them, and the file is available here to anyone who might be interested. The rest of this post will be a sort of digest of the contents of that file. The second remark is that I am writing this as a post rather than a comment because it feels to me as though it is the beginning of a strand of discussion rather than the continuation of one, though it grows out of some of the comments made on the last post. Note that since we are operating on the Polymath blog, anybody else is free to write a post too (if you are likely to be one of the main contributors, haven’t got moderator status and want it, get in touch and I can organize it).

The starting point for this line of thought is that the main difficulty we face seems to be that Bourgain’s Bohr-sets approach to Roth is in a sense the obvious translation of Meshulam’s argument, but because we have to make a width sacrifice at each iteration it gives a $(\log N)^{-1/2}$ type bound rather than a $(\log N)^{-1}$ type bound. Sanders’s argument gives a $(\log N)^{-1}$ type bound, but if we use that then it is no longer clear how to import the new ideas of Bateman and Katz. Therefore, peculiar as it might seem to jettison one of the two papers that made this project seem like a good one in the first place, it is surely worth thinking about whether the width sacrifice that Bourgain makes (and that is also made in subsequent refinements of Bourgain’s method, due to Bourgain and Sanders) is fundamentally necessary or merely hard to avoid. (more…)

## February 5, 2011

### Polymath6: improving the bounds for Roth’s theorem

Filed under: polymath proposals — gowers @ 12:03 pm

For the time being this is an almost empty post, the main purpose of which is to provide a space for mathematical comments connected with the project of assessing whether it is possible to use the recent ideas of Sanders and of Bateman and Katz to break the $1/\log N$ barrier in Roth’s theorem. (In a few hours’ time I plan to write a brief explanation of what one of the main difficulties seems to be.)

Added later. Tom Sanders made the following remarks as a comment. It seems to me to make more sense to have them as a post, since they are a good starting point for a discussion. So I have taken the liberty of upgrading the comment. Thus, the remainder of this post is written by Tom.

This will hopefully be an informal post on one aspect of what we might need to do to translate the Bateman-Katz work into the $\mathbb{Z}/N\mathbb{Z}$ setting.

One of the first steps in the Bateman-Katz argument is to note that if $A \subset \mathbb{F}_3^n$ is a cap-set (meaning it is free of three-term progressions) of density $\alpha$ then we can assume that there are no large Fourier coefficients, meaning

$\sup_{0_{\widehat{G}}\neq\gamma \in \widehat{\mathbb{F}_3^n}}{|\widehat{1_A}(\gamma)|} \leq C\alpha/n$.

They use this to develop structural information about the large spectrum, $\rm{Spec}_{\Omega(\alpha)}(1_A)$, which consequently has size between $\Omega(C^{-3}n^3)$ and $O(\alpha^{-3})$. This structural information is then carefully analysed in the `beef’ of the paper. (more…)

## September 30, 2010

### Polymath3 (polynomial Hirsch conjecture) now officially open

Filed under: news — Terence Tao @ 4:38 pm
Tags:

After some discussion and a lengthy hiatus, the Polymath3 project (on attacking the polynomial Hirsch conjecture via combinatorial means) has officially started with a new research thread on Gil Kalai’s blog (which, for now, can also double as the discussion thread, given that the activity level is still quite low), and a Polymath wiki page.

## July 8, 2010

### Minipolymath2 project: IMO 2010 Q5

Filed under: polymath proposals — Terence Tao @ 3:56 pm

This post marks the official opening of the mini-polymath2 project to solve a problem from the 2010 IMO.  I have selected the fifth question (which appears to be slightly more challenging than the sixth, for a change) as the problem to focus on:

Problem. In each of six boxes $B_1, B_2, B_3, B_4, B_5, B_6$ there is initially one coin. There are two types of operation allowed:
1. Type 1: Choose a nonempty box $B_j$ with $1 \leq j \leq 5$. Remove one coin from $B_j$ and add two coins to $B_{j+1}$.
2. Type 2: Choose a nonempty box $B_k$ with $1 \leq k \leq 4$. Remove one coin from $B_k$ and exchange the contents of (possibly empty) boxes $B_{k+1}$ and $B_{k+2}$.
Determine whether there is a finite sequence of such operations that results in boxes $B_1, B_2, B_3, B_4, B_5$  being empty and box $B_6$ containing exactly $2010^{2010^{2010}}$ coins. (Note that $a^{b^c} := a^{(b^c)}$.)
The comments to this post shall serve as the research thread for the project, in which participants are encouraged to post their thoughts and comments on the problem, even if (or especially if) they are only partially conclusive.  Participants are also encouraged to visit the discussion thread for this project, and also to visit and work on the wiki page to organise the progress made so far.
This project will follow the general polymath rules.  In particular:
1. All are welcome. Everyone (regardless of mathematical level) is welcome to participate.  Even very simple or “obvious” comments, or comments that help clarify a previous observation, can be valuable.
2. No spoilers! It is inevitable that solutions to this problem will become available on the internet very shortly.  If you are intending to participate in this project, I ask that you refrain from looking up these solutions, and that those of you have already seen a solution to the problem refrain from giving out spoilers, until at least one solution has already been obtained organically from the project.
3. Not a race. This is not intended to be a race between individuals; the purpose of the polymath experiment is to solve problems collaboratively rather than individually, by proceeding via a multitude of small observations and steps shared between all participants.   If you find yourself tempted to work out the entire problem by yourself in isolation, I would request that you refrain from revealing any solutions you obtain in this manner until after the main project has reached at least one solution on its own.
4. Update the wiki. Once the number of comments here becomes too large to easily digest at once, participants are encouraged to work on the wiki page to summarise the progress made so far, to help others get up to speed on the status of the project.
5. Metacomments go in the discussion thread. Any non-research discussions regarding the project (e.g. organisational suggestions, or commentary on the current progress) should be made at the discussion thread.
6. Be polite and constructive, and make your comments as easy to understand as possible. Bear in mind that the mathematical level and background of participants may vary widely.

Have fun!

« Previous PageNext Page »

Theme: Customized Rubric. Blog at WordPress.com.


text:
Problem 59E

59. Find all points on the curve $x^{2} y^{2}+x y=2$ where the slope of the tangent line is $-1$.


text:
To submit this assignment, upload the full document on blackboard, including the original questions, your code, and the output. Submit you assignment as a knitted .pdf (prefered) or .html file.

1. Plotting (1 mark)

Run the block below to create a categorical variable of the activ column. This will make dplyr recognize that there are only two levels of activity (0 and 1), rather than a continuous range 0-1, which will facilitate plotting.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✔ ggplot2 3.2.1     ✔ purrr   0.3.3
## ✔ tibble  2.1.3     ✔ dplyr   0.8.4
## ✔ tidyr   1.0.2     ✔ stringr 1.4.0
## ✔ readr   1.3.1     ✔ forcats 0.4.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::lag()    masks stats::lag()
beaver1 <- beaver1 %>%
mutate(factor_activ = factor(activ))
1. In the previous assignment, we saw that the beaver’s body temperature was the highest when the beaver was outside the retreat. However, we did not explore the distribution of temperatures for the active and inactive conditions. Create a histogram with the temperature on the x-axis and color the bins corresponding to the activity variable. Hint: You need to use the fill parameter rather than color; and make sure you are using the correct activ column! (0.25 marks)

2. We already know that the beaver’s body temperature is correlated with whether it is outside the retreat or not. However, we did not control for the time of day, maybe the beaver’s temperature is even better predicted by knowing what time of day it is. To satisfactorily answer this question, we should perform a regression analysis, but we easily can get a good overview by plotting the data. Make a scatter plot with the time of day on the x-axis and the body temperature on the y-axis. Color the scatter points according the beaver’s activity level and separate the measurements into one plot per day. Hint: To separate measurements per day, you could use filter() and two chunks of code, but try the more efficient way of facetting into subplots, which we talked about in the lecture. (0.75 marks)

2. Read in and pre-process data (1.5 marks)

Ok, that’s enough about beaver body temperatures. Now you will apply your data wrangling skills on the yearly change in biomass of plants in the beautiful Abisko national park in northern Sweden. We have preprocessed this data and made it available as a csv file via this link. You can find the original data and a short readme on figshare and dryad. The original study1 is available with an open access license. Reading through the readme on figshare, and the study abstract will increase your understanding for working with the data.

1. Read the data directly from the provided URL into a variable called plant_biomass and display the first six rows. (0.25 mark)

2. Convert the Latin column names into their common English names: lingonberry, bilberry, bog bilberry, dwarf birch, crowberry, and wavy hair grass. After this, display all column names. Hint: Search online to find out which Latin and English names pair up. There is a function in the dplyr cheat sheet that might help you rename these columns. Finally, check the tidyverse style guide to make sure your new column names are formatted correctly. (0.5 marks)

3. This is a wide data frame (species make up the column names). A long format is easier to analyze, so gather the species names into one column (species) and the measurement values into another column (biomass). Assign it to the variable plant_biomass to overwrite the previous data frame. Make sure you don’t lose any columns in the reshaping process! Hint: Make sure the output is correct before overwriting the old variable. (0.75 marks)

3. Data exploration (4.5 marks)

Now that our data is in a tidy format, we can start exploring it!

1. What is the average biomass in g/m^2 for all observations in the study? (0.25 marks)

2. How does the average biomass compare between the grazed control sites and those that were protected from herbivores. (0.25 marks)

3. Display a table of the average plant biomass for each year. (0.25 marks)

4. What is the mean plant biomass per year for the grazedcontrol and rodentexclosure groups (spread these variables as separate columns in a table). (0.5 marks)

5. Compare the biomass for grazedcontrol with that of rodentexclosure graphically in a line plot. What could explain the big dip in biomass year 2012? Hint: The published study might be able to help with the second question… (0.5 marks)

6. How many distinct species are there? (0.25 marks)

7. Check whether there is an equal number of observations per species. (0.25 marks)

8. Compare the yearly change in mean biomass for each species in a lineplot. (0.5 marks)

9. From the previous two questions, we found that the biomass is higher in the sites with rodent exclosures (especially in recent years), and that the crowberry is the dominant species. Notice how the lines for rodentexclosure (refer back to 3.d above) and crowberry are of similar shape. Coincidence? Let’s find out! Use a facetted line plot to explore whether all plant species are impacted equally by grazing. (0.75 mark)

10. The habitat could also be affecting the biomass of different species. Explore graphically if this is the case. Hint: Think about how to change your dataset groupings to make this plot (0.5 marks)

11. It looks like both habitat and treatment have an effect on most of the species! Let’s dissect the data further by visualizing the effect on each species of both the habitat and treatment by facetting the plot accordingly. Hint: This is a hard one! You may want to explore R’s documentation for ggplot’s facet_grid (0.5 marks)

4. Create a new column that represents the square of the biomass. Display the three largest squared_biomass observations in descending order. Only include the columns year, squared_biomass and species and only observations between the years 2003 and 2008 from the forest habitat. Hint: Break this down into single criteria and add one at a time. You will be able to obtain the desired result with five operations. (1 mark)

1. Olofsson J, te Beest M, Ericson L (2013) Complex biotic interactions drive long-term vegetation dynamics in a subarctic ecosystem. Philosophical Transactions of the Royal Society B 368(1624): 20120486. https://dx.doi.org/10.1098/rstb.2012.0486


text:
# Preserves conjugacy classes for a generating set not implies class-preserving

This article gives the statement and possibly, proof, of a non-implication relation between two automorphism properties. That is, it states that every automorphism satisfying the first automorphism property (i.e., automorphism that preserves conjugacy classes for a generating set) need not satisfy the second automorphism property (i.e., class-preserving automorphism)
View a complete list of automorphism property non-implications | View a complete list of automorphism property implications
Get more facts about automorphism that preserves conjugacy classes for a generating set|Get more facts about class-preserving automorphism

## Statement

It is possible to have a group $G$, a generating set $S$ for $G$, and an automorphism $\sigma$ of $G$ such that $\sigma(x)$ is in the conjugacy class of $x$ (in $G$) for all $x \in S$, but there exists $y \in G, y \notin S$ such that $\sigma(y)$ is not conjugate to $y$.

## Proof

### Finite group examples

#### Alternating group of degree five

Further information: alternating group:A5, element structure of alternating group:A5

We can take $G$ to be alternating group:A5, the alternating group of degree five. For convenience, we take this to be the alternating group on the set $\{ 1,2,3,4,5 \}$.

We take $S$ to be the conjugacy class of $(1,2)(3,4)$ in $G$. This set has size 15 and is precisely the set of elements of $G$ that have order exactly two. Therefore, it is preserved under any automorphism. Moreover, it is easy to see that this set generates $G$ (in fact, $G$ has no proper subgroups of order equal to or larger than the size of this subset).

We take $\sigma$ to be any outer automorphism of $G$, such as that induced by any odd permutation in $S_5$. For instance, we can take $\sigma$ to be the outer automorphism induced by conjugation by $(1,2)$.

Now:

• As noted above, $S$ is a generating set of $G$ and is invariant under all automorphisms. It is also a single conjugacy class. Thus, $\sigma(x)$ is conjugate to $x$ for all $x \in S$.
• If we take $y = (1,2,3,4,5)$, then $\sigma(y)$ is not conjugate to $y$. This is because the conjugacy classes in the symmetric group of even permutations that correspond to partitions with distinct odd parts split inside the alternating group (see splitting criterion for conjugacy classes in the alternating group).

#### More general examples

Finite simple non-abelian groups are good sources of examples. In general, the following strategy works for a finite simple non-abelian group $G$ :

• Find a conjugacy class $S$ that is preserved under all automorphisms. Since the group is simple, this conjugacy class must generate the whole group.
• Find another conjugacy class that is not preserved under all automorphisms, and pick an outer automorphism $\sigma$ that does not preserve it.

For instance, the alternating group $A_n, n \ge 5$ always gives such examples. For $n \ne 6$, this follows immediately from the fact that the automorphism group is $S_n$, combined with the splitting criterion for conjugacy classes in the alternating group. The statement also holds for alternating group:A6 ($n = 6$), though it needs more careful examination of the element structure of alternating group:A6.


text:
CHAOTIC HOMEOMORPHISMS OF C INDUCED BY HYPERBOLIC TORAL AUTOMORPHISMS AND BRANCHED COVERINGS OF C

Title & Authors
CHAOTIC HOMEOMORPHISMS OF C INDUCED BY HYPERBOLIC TORAL AUTOMORPHISMS AND BRANCHED COVERINGS OF C
Lee, Joo-Sung;

Abstract
It is well known that there exists a regular branched covering map from T$\small{^2}$ onto $\small{\={C}}$ iff the ramification indices are (2,2,2,2), (2,4,4), (2,3,6) and (3,3,3). In this paper we construct (count-ably many) chaotic homeomorphisms induced by hyperbolic toral automorphism and regular branched covering map corresponding to the ramification indices (2,2,2,2). And we also gave an example which shows that the above construction of a chaotic map is not true in general if the ramification indices is (2,4,4) and also show that there are no chaotic homeomorphisms induced by hyperbolic toral automorphism and regular branched covering map corresponding to the ramification indices (2,3,6) and (3,3,3).
Keywords
branched covering;chaotic map;hyperbolic toral automorphism;Weierstrass P function and the Riemann sphere;
Language
English
Cited by
References
1.
Amer. Math. Monthly, 1992. vol.99. pp.332-334

2.
Functions of One Complex Variable(2nd ed.), 1978.

3.
An Introduction to Chaotic Dynamical Systems, 1987.

4.
Acta Math., 1993. vol.171. pp.263-297

5.
London Math. Soc. Lecture Notes Series, 1973. vol.9.

6.
C. R. Acad. Sci. Paris, 1918. vol.166. pp.26-28

7.
Friedr. Vieweg and Sohn Verlagsgesellschft mbH, 1999.

8.
Pitman Research Notes in Math. Series, 1987. vol.161.

9.
Amer. Math. Monthly, 1997. vol.104. pp.411-414

10.
Translations of Mathematical Monographs;Amer. Math. Soc., 1997. vol.170.


text:
# Need some advice and feedback on my C code calling Bash functions

My intent is to use Bash functions defined in functions.sh in a C program. I am doing this so that I don't have to rewrite the Bash functionality again in C. I want to use one common library for functions I need. Here is my C code and functions.sh.

#include <stdlib.h>
#include <sys/wait.h>
#include <stdio.h>

void shellCall(char * command)
{
int status, commandexitcode=0;

if(command == NULL)
{
printf("NULL command string sent\n");
exit(1);
}

status = system(command);

if(status == -1)
{
printf("Error during call, value %d\n", status);
exit(1);
}

if (WIFEXITED(status))
{
commandexitcode =  WEXITSTATUS(status);
if (commandexitcode != 0)
{
printf("non zero exit code: %d\n", commandexitcode);
exit(1);
}
}
else if (WIFSIGNALED(status))
{
printf("killed by signal: %d\n", WTERMSIG(status));
exit(1);
}
else if (WIFSTOPPED(status))
{
printf("stopped by signal: %d\n", WSTOPSIG(status));
exit(1);
}
else if (WIFCONTINUED(status))
{
printf("continued, unexpected..bailing\n");
exit(1);
}
}

int main(int argc,char **argv)
{
char  command[100]; //command
int i = 0;
for (i = 1 ; i <= 10 ; i++)
{
sprintf( command, "source $PWD/functions.sh ; i=%d ; myfunc %d", i,i ); shellCall(command); } }  Please note that here I have only shown a very simple example of the way I am using functions in functions.sh. In reality functions.sh has many functions, some of which implement decent logic. #!/bin/sh # functions.sh myfunc() { echo "I received$1"
}

Question: I need feedback on the following aspects.

1. Is it a bad programming practice (something that will make experienced and senior developers mad when they see this) to use system() calls to call functions in functions.sh as I have done?
2. What are the reasons (technical and other) for which it is considered a bad programming practice?
3. What changes should I make to my C code so that experienced and senior developers will find it acceptable?
-
Could you either post the real functions.sh, or remove that from your post (as it is extraneous if it doesn't have the actual code)? –  Kazark Feb 2 '13 at 1:32

Because your question is marked and I see that you have commented your declaration of the variable command with the comment command, let me make a note about comments. There are good comments, and bad comments; in my experience, a very high numbers of comments written by many developers are bad. For a thoughtful exposition of comments, see Bob Martin's chapter on them in Clean Code (an invaluable book). In short, if you are going to insert a comment, make sure it actually adds something. Then, make sure you can't add that information into the code itself, by renaming variables, etc. Then, if you can't, carefully craft your comment.

### Functions

Because you are asking about the general cleanliness of your code, let me advice that you use smaller functions. There are many benefits to small functions, which I will not get into here; many of the best software books discuss this, including Martin's book, mentioned above.

### Magic Numbers

Replace numbers like -1 and 10 in your code with a constant that has an explicit name explaining these numbers. This increases the readability and maintainability of your code.

### Stdout and Stderr

In Unix, C and C-based languages, you have three streams attached to your process by default: standard in, standard out, and standard error. Don't write error messages to standard out—write them to standard error.

### Calling Bash from C

Consider that calling Bash...

• ...makes your code much, much less portable, by tying it down to a system with Unix utilities—and more specifically than that, one that has Bash—and more than that, one that has a version of Bash which supports all the features you decide to use.
• ...makes your code harder to test
• by creating external dependencies. If you are not familiar with the problem of dependencies, try reading up on it. Roy Osherove, in The Art of Unit Testing, and Michael Feathers, in Working Effectively with Legacy Code, both have much discussion of it.
• Bash scripts do not have the debugging tools for than that C has (Valgrind, GDB, IDEs, etc).
• by lessening its homogeneity
• by making the user move around move between various source files
• by lessening your IDE's ability to aid you in traversing the code, since some of the calls are embedded in strings as calls to an external
• because Bash is often even harder to read than C
• ...makes your code harder to maintain, because of being harder to test and read.
• ...is unnecessary, because under the covers Bash is just calling the Unix C API anyway.
• ...is artistically distasteful— it smells like a kludge.
• ...adds a failure point to your code. Just look how many possible error messages you output, and then abort!
• ...presumably, this will also be a performance hit because of the overhead of running Bash.

I would strongly advise you not to use sys calls unless you are calling a very complex external application that would be difficult to reproduce in your C code in reasonable time and doesn't have a C API (and serious applications are not generally written in Bash) or you are performing an extremely low-level function that there is no C API for. Work for homogeneity—it's much cleaner.

-
Anything on the technical drawbacks? –  abc Feb 2 '13 at 1:53
Testability, portability and failure points (just added) are technological metrics. –  Kazark Feb 2 '13 at 2:04

I think objections to using system are often about the security holes it opens up. The call is generally frowned on. system spawns a copy of the shell (presumably your default shell) and this shell runs the script, using the search path to find it etc. I imagine it is because of this intermediate process and the possibility for interference with it or the command it runs that the security problems arise, but I'm not the right person to give you details. Perhaps ask on Stack Overflow, without the code example, just a general question about the desirability of system for your purposes.

As for your code, it is a lot better now than when first posted. A few points though:

• the parameter to shellCall should be const
• commandexitcode is verbose and could be declared closer to it point of use
• possible buffer overflow printing command in main
-
Thanks for talking about the technical aspects. I was looking for some feedback on that front. –  abc Feb 2 '13 at 18:35


text:
# The Algorithm Design Manual - Working with the Big Oh

I'm reading The Algorithm Design Manuel and one part is kind of confusing to me

The part that's confusing to me is how in the "Proving the Theta" section he proves that selection sort is Ω(n^2). I mean, I understand that for some (c) c.n^2 can be a lower bound for selection sort, however I don't understand how he proves this in that section.

I would really appreciate it if you could help me understand that part. Thanks. .

It is difficult to avoid what is repeating what is in the text, but you have exactly:

$$T(n) = (n-1)+(n-2)+\ldots+1+0 =n\tfrac{n-1}{2} = \tfrac12n^2 -\tfrac12n$$

and as an upper bound taking each value up to $$n-1$$:

$$T(n) \le (n-1)+(n-1)+\ldots+(n-1)+(n-1) =n(n-1) = n^2-n$$

and as an lower bound taking values of at least $$\tfrac n2$$ down to $$\tfrac n2$$ and other down to $$0$$ $$($$assuming $$n$$ is even; the odd case gives $$\tfrac14n^2+\tfrac14 n)$$:

$$T(n) \ge \tfrac n2 +\ldots +\tfrac n2 +0+\ldots +0 = \tfrac n2 \times \tfrac n2 +\tfrac n2 \times 0 = \tfrac14n^2$$

Since all three are essentially of the order of $$n^2$$ up to a constant, you can conclude $$T(n)$$ is $$O(n^2)$$ and $$\Omega(n^2)$$ and so $$\Theta(n^2)$$

• Thanks, really helped a lot :). – kasra Jan 18 at 19:30


text:
# Backup of user-defined entries of autocompletion in Texmaker?

Where does Texmaker store the user-defined entries for the autocompletion feature? I'd like to back up (as well as export) my own entries...

-
Welcome to TeX.sx! You don't have to sign with your name since it automatically appears in the lower right corner of your post. –  yo' Nov 7 '12 at 23:43
You can backup all of your settings via Options->Settings File->Save a copy of the settings file and restore them with Replace the settings file by a new one in the same menu, which I assume to include autocompletion, but I haven't tested it. Is that sufficient for your purposes? Edit: Yes, they are saved in the `.ini` backup file; in my test it was line 27, which starts with `Editor\UserCompletion=`. –  doncherry Nov 7 '12 at 23:52

`Editor\UserCompletion=\\ex, \\documentclass{\x2022}, \\addfontfeatures{\x2022}, \\makeatletter, \\makeatother, \\newfontfamily\x2022{\x2022}, \\newfontfamily\x2022[\x2022]{\x2022}, \\tiny, \\scriptsize, \\footnotesize, \\small, \\normalsize, \\large, \\Large, \\LARGE, \\huge, \\Huge, \\toprule, \\midrule, \\bottomrule, \\begingroup, \\endgroup, \\parbox{\x2022}{\x2022}`


text:
View Single Post

 Quote by Oudeis Eimi I believe this is only true for the simplest Fock states, i.e., those with a sharp number of quanta (eigenstates of the relevant number operator), but not for other states. For instance, <ψ>≠0 for coherent states.
I'm aware of that, but I think coherent states aren't eigenstates of time-evolution.


text:
# Evaluating Limits

Limits of functions are evaluated using many different techniques such as recognizing a pattern, simple substitution, or using algebraic simplifications. Some of these techniques are illustrated in the following examples.

Example 1: Find the limit of the sequence:

Because the value of each fraction gets slightly larger for each term, while the numerator is always one less than the denominator, the fraction values will get closer and closer to 1; hence, the limit of the sequence is 1.

Example 2: Evaluate .

When x is replaced by 2, 3 x approaches 6, and 3 x − 1 approaches 5; hence, .

Example 3: Evaluate .

Substituting −3 for x yields 0/0, which is meaningless. Factoring first and simplifying, you find that

The graph of (x 2 − 9)/(x + 3) would be the same as the graph of the linear function y = x − 3 with the single point (−3,−6) removed from the graph (see Figure 1).

Figure 1 The graph of y = ( x 2 − 9)/( x + 3).

Example 4: Evaluate .

Substituting 3 for x yields 0/0, which is meaningless. Simplifying the compound fraction, you find that

Example 5: Evaluate .

Substituting 0 for x yields 0/5 = 0; hence,

Example 6: Evaluate

Substituting 0 for x yields 5/0, which is meaningless; hence, DNE. (Remember, infinity is not a real number.)


text:
• entries
18
34
• views
28824

# Pongout 0.83 WIP

1952 views

Well, it's about time I posted some progress pics of the game I've been working on the past month or so.

Pongout is a crossover of breakout and pong, written in moonscript. It originally started as a test to see how Box2D will behave in a breakout game, and then suddenly the rest of this happened. This week was spent bug fixing, polishing, and reworking the third level. Those who have been following my earlier alpha and beta versions in the chat will be delighted to know that the game now runs in borderless fullscreen.

The game currently doesn't have any in-game menus or in-game instructions, so I've included the instructions below.

Platform-independent: pongout_0.83.love (0.11 MB), requires LOVE
Prepackaged Windows x64: pongout_0.83_win_x64.zip (3.63 MB)

Feedback is appreciated.
There is an odd issue on some machines (read: my machines) that causes the game to be extra choppy unless an application that uses a high-performance timer is running in the background. If you run into this issue as well, please let me know.

# Controls

Mouse Controls paddlesLeft mouse Launches ballsleft/right Apply torquer Resetescape QuitDebug controls: (forfeits highscore)] Hit all bricks oncen Next level?

# Objective

The goal of the game is to score as many points as possible by skillfully using the ball and paddle to destroy all bricks on the playing field.

# Legend

(A) Ball
(B) Brick
(D) Unbreakable brick
(E) Ghost
(F) Score earned and score earned from global multiplier
(G) Lives remaining
(H) Current score
(I) Global multiplier
(J) High score

# Ball

A ball accumulates multiplier by hitting normal bricks, up to 10x multiplier. As it does so, its speed will increase up to 50%. Hitting a paddle will reset the ball's multiplier and speed.

Use torque to get your ball unstuck or skillfully launch your ball back into the playing field. Use with discretion, as each use applies an increased speed penalty.

Can redirect balls depending on where on the paddle they hit. Use this to aim the ball in the right direction.

# Brick

Hit these for points and multiplier. Unbreakable bricks are worth less and do not increment multiplier.

Once all the breakable bricks are destroyed, the field is cleared and a new level will begin.

# Ghost

Occupies breakable bricks. Hitting a brick inhabited by a ghost will grant a small amount of global multiplier and the ghost will attempt to locate to another vacant brick.

If there are no remaining bricks to occupy or if all breakable bricks are occupied with ghosts, then the ghosts will begin to panic and bonus time begins.

# Bonus Time

Panicked ghosts will consume their host bricks over a period of time. Destroy them quickly before the level ends to get up to 1500 bonus points each.

# Scoring

There are four parts to scoring: Base score, multiplier, flat score, and global multiplier. Base score is affected by multiplier whereas flat score is not, and both are affected by global multiplier:

score += global*(flat + base*multiplier)

Normal brick: 10 base and 1 multiplier
Unbreakable brick: 1 base
Ghost: 1/16% global multiplier and/or between 100 and 1500 flat during bonus time.

# Screenshots

Level 1

Level 3 rework

The play field isn't entirely visible with 16:9 resolutions... Currently looking into it.

But I liked the previous LVL3!

Even though I admit this fits better the evolution.

yeah I liked the previous level 3 too, though I like this one too

The circular level (previously level 3, now level 4) was originally a test of differently shaped bricks. It'll need the same amount of love the tilted level received. Right now, the circular level a bit unbalanced having too many ghosts and giving out more score and global multiplier that I'd like.

Thanks for trying it out.

## Create an account

Register a new account


text:
1. Nov 2, 2014

### dynawics

Hello all,

I have not studied general relativity only special relativity, I apologize therefore if my questions seem low level. Thank you for your help.

Three questions:

The way in which I learned that the twin paradox is resolved is through the illustration of the way in which the observer in the rocket would necessarily immediately detect a change in the frequency of the regular signals being sent to him by his twin on earth, but, that the twin on earth would not detect a change in frequency until a certain time later (unless the earth was the one which underwent acceleration away from and back towards the rocket). This seems to me to indicate that there is something about the process of acceleration itself which defines any particular frame of reference as a functionally new physical system with respect to its time characteristics. Is my instinct on this issue correct?

Second: Imagine a scenario in which two twins exist on different stationary planets which are known distances apart. One twin hops in his rocket and moves towards the other twin in a straight line. It would seem that each twin would see the other twin's clock move slower. According to the theory of relativity what would happen when the twin in the rocket arrives on the planet with his other twin? Would the flying twin be younger since he was the one that was flying? How could that be if both twins saw each other's clocks moving slowly and there was no change in direction? What if the twins were sending identical regular signals to each other immediately before and during the rocket flight? It seems as if they would both experience exactly the same pattern of frequency changes. Although, I suppose that, indeed, the twin flying in the rocket would, again, experience the changes in frequency before the stationary twin did. It seems as if the twin who hopped into the rocket would witness the other twins clock running slower for longer than the twin on the earth who would only see the rocket twin's clock moving slowly until the regular signal from his transmitter reached the earth, the time during which the rocket twin had already been moving and witnessing the earth twin as having a slow clock. If this be the case, then it seems necessary that the rocket twin would arrive older, not younger.

Third: Lastly, would not any increase in the frequency of signal registered by either twin make the clock of the other twin seem to move faster? For example, if the signal sent out was regularly timed with a clock, every second representing one signal, if you were moving towards the originating point of the signals then it seems as though you would register them faster. Would this kind of increased speed of signal registration cancel out the relativistic slowing of the clock with respect to both twins? Would in fact the clocks seem to maintain the same relative rate to each observer as a result of this combining of opposite effects in the case that the rocket was moving straight towards the other observer? Does special relativity hold only in the case of motion perpendicular to the observer?

Thank you,
Ian

2. Nov 3, 2014

### Staff: Mentor

A frame of reference isn't a "physical system"; it's an abstraction that we use to help us understand how physical systems behave. You don't "switch frames" by changing your state of motion (i.e., accelerating). You change your relationship to other physical things--such as the immediate change the traveling twin observes in the Doppler shift of light signals from the other twin, when he accelerates to turn around. In fact, you can analyze the twin paradox entirely using the Doppler shift that each twin observes in the signals from the other twin, without ever bringing in frames at all; that's basically what the solution you describe amounts to. The Usenet Physics FAQ article on the twin paradox calls this the Doppler Shift Analysis.

Actually, each twin would directly observe a Doppler blueshift in the other twin's light signals--i.e., he would directly observe the other twin's clock ticking faster. (But the twin who hops in his rocket would see the blueshift as soon as he starts traveling, while the twin who stays on his planet would only see it after a time delay.) Each twin would calculate, if he uses a frame of reference in which he is at rest, that the other twin's clock is ticking slower, once he corrects for light travel time; but that's a calculation, not something he observes directly. This point is often glossed over in discussions of the twin paradox, which is a shame, because it's an important one to keep in mind; it has evidently confused you (see further comments below).

He would have aged less. The Doppler shift analysis gives this answer directly, as should be evident from the parenthetical comment I made above. You can also get the answer by doing a calculation in either frame (the rest frame of the planets or the rest frame of the traveling twin), but it will take more effort.

Yes. Your scenario of the two planets and one twin traveling between them illustrates this, as I noted above.

No. The two are not really different phenomena; they're just different aspects of the same underlying physics. See my comments above.

Yes, but the change is the opposite of what you were thinking, because the "running slower" of the other twin's clock is not what is actually observed directly, as I noted above. Furthermore, if you use just the time dilation (the calculation each twin makes that the other's clock is running slower, after correcting for light travel time), you will get the wrong answer, because you are leaving out relativity of simultaneity; in the traveling twin's frame, the other twin's clock runs slower, but the event at which the traveling twin leaves his planet, assuming that this event is at time t = 0 by the traveling twin's clock, is not, in the traveling frame, simultaneous with the event at which the other twin's clock, on the other planet shows t = 0 (although it is in the rest frame of the planets and the other twin).

Certainly not. See above.

Last edited: Nov 3, 2014
3. Nov 3, 2014

### ghwellsjr

When the rocket twin leaves earth, both twins see the other ones clock ticking slower than their own and by the same factor. When the rocket twin turns around, he immediately sees the earth twin's clock ticking faster than his own but the earth twin won't see this same thing happen until a long time later. If the rocket twin travels at the same speed coming back as he did leaving (according to the earth's rest frame), then the slower factor and the faster factor are the inverse of each other. Since it takes him just as long to reach his turnaround point as it does for him to get back, we can average those two factors and this will tell us the ratio of the earth twin's aging to the rocket twin's aging. For example, let's suppose that the rocket twin sees the earth twin's clock ticking at a factor of one-half during the outbound half. Then he will see a factor of two on the way back. The average of 0.5 and 2 is 1.25 so the earth twin ages 1.25 times whatever the rocket twin ages.

Here is a spacetime diagram to illustrate what I have been saying. The earth twin is shown as the thick blue line with dots marking off increments of one year. The thick red line is the rocket twin. The thin lines show yearly signals propagating at the speed of light from each twin to the other one.

Notice how the red twin's clock takes 1.25 times longer to tick out one year while he is traveling than when he is stationary. Time Dilation is only affected by speed, not by acceleration. Also note the relative factors of 0.5 at the beginning and 2 at the end and note their average is the same as the ratio of the twins' aging. Blue ages by 5 years while red ages by 4.

Let's assume that prior to the rocket twin departing from the distant planet toward earth, their clocks have been synchronized according to their mutual rest frame which means that they each see the other ones clock at an earlier time than their own and by the same amount. Let's assume they were three light-years apart. They would each see the other ones clock three years earlier than their own. Then when the rocket twin starts his trip toward earth, he will immediately see the earth twin's clock advancing faster than his own. Eventually, he will see the earth twin's clock go through those three years of time plus whatever length of time it took for him to make the trip (according to the earth frame). Meanwhile, the earth twin won't see the rocket twin leave for earth until three more years go by. Then he will see the rocket twin's clock advance rapidly but for a much shorter amount of time. This results in the earth twin seeing the rocket twin age less than the rocket twin sees of the earth twin aging.

Here is another spacetime diagram to illustrate this scenario:

While the rocket twin is moving toward the earth twin according to the earth's rest frame, it is only the rocket twin's clock that is ticking slowly. So the increased speed of the signals coming toward the earth twin is reduced by the slower ticking clock of the rocket twin. On the other hand, the increased speed of the signals coming toward the rocket twin is increased by the slower moving clock of the rocket twin. The net result is that both twins see the other ones clock ticking faster than their own by exactly the same amount. You can see these effects illustrated in the previous drawing.

4. Nov 3, 2014

### dynawics

Thanks for the response! Now that you have clarified a few things let me ask another question.

Is there a particular velocity at which the increased frequency registered with the parallel observer of that velocity due to the Doppler effect would precisely equal the decreased registered frequency due to the relativistic effect? Could we simply set the relevant equations equal to each other to find this velocity? It seems that if this were the case, an observer detecting a moving object from this direction would not be able to tell we the the object was even moving or not -at least until it became directly observable. But even then the time of the moving system would appear to be in sync with the reference frame of the observer.

5. Nov 3, 2014

### ghwellsjr

No, this never happens. Think of it this way: if there were no Doppler shift, then the stationary observer would be able to see the slowly ticking clock at its actual rate. But the motion of the clock toward the stationary observer will make it appear to tick faster.

6. Nov 3, 2014

### dynawics

I am still stuck on this: Let's say that there is a clock moving at a particular velocity past you, but you only look at it (detect it) as it passes in front of you from left to right. In this case there would be no, or only negligible Doppler effect, and the clock would be seen as ticking slower than the identical clock in your reference frame.

Now, let's say that the effects of relativity don't exist and that someone else with another identical clock is observing the moving clock in parallel such that it is coming straight at them. In this case, due to the Doppler effect the moving clock would seem to tick faster than the identical clock which they had. The moving clock would be seen as speeding up until it reached the same time as the clock of the observer's clock upon arrival.

It seems then that if these two processes are combined in just the right way- one being the decrease in the detected ticking rate of the moving clock due to relativity, and the other being the increase in the detected ticking rate due to the Doppler effect- then we would observe that one could reduce the other to such a precise extent that it would not be possible to detect wether or not something was actually moving towards you, at least on the basis of the detection of the variations in the clock ticking signals.

7. Nov 3, 2014

### Staff: Mentor

No, this is not correct; there would be a Doppler effect. This is called the transverse Doppler effect, and it has no counterpart in non-relativistic physics. It is present in relativity because of time dilation--the moving clock ticks slower.

Yes, but this is not something separate from the Doppler effect. It's just a different way of looking at the same thing.

They're not two processes; they're different ways of looking at the same process (relative motion). Mixing them up is going to lead to confusion.

I suggest taking another look at the spacetime diagrams ghwellsjr gave in post #3, and thinking hard about what they are telling you.

8. Nov 3, 2014

### A.T.

Look at the formula for the relativistic Doppler effect, which already includes the time dilation between source and observer:

http://en.wikipedia.org/wiki/Relativistic_Doppler_effect#Motion_along_the_line_of_sight

Is there any other value for beta (relative speed) than 0, which gives you a Doppler factor of 1 (no
frequency change)?

Last edited: Nov 3, 2014
9. Nov 3, 2014

### A.T.

What dynawics means is spiting the relativistic Doppler effect in two factors:
- classical Doppler
- time dilation

He thinks that since classical Doppler > 1 and time dilation < 1, their product could become 1 at some relative velocity other than 0. But that is not the case, when you look at the
actual formulas: The classical Doppler grows so fast, that the time dilation never reaches the reciprocal value of it. So their product, the relativistic Doppler factor, never becomes 1. It's always > 1 (blue shift) in the case of an approaching source.

Last edited: Nov 3, 2014
10. Nov 5, 2014

### m4r35n357

The doppler effect calculation combines the Lorentz transormation together with the light delay all in one mathematical step, in other words the doppler effect already includes time dilation.

11. Nov 6, 2014

### A.T.

That is correct (as I pointed out in post #8). But you can still separate those factors (as I pointed out in post #9). dynawics asks if they are ever reciprocal (so their product is 1) for a approach velocity > 0. The answer is no, because classical Doppler tends towards infinity faster, than the time dilation tends towards zero (velocity vs. velocity2 dependency).

12. Nov 6, 2014

### m4r35n357

Acknowledged, beg your pardon for that. But after revisiting my notes on the matter (looks like I need to rewrite my notes in a clearer form!) I think I've changed my mind, in a way; I believe there is a viewing angle (for a moving observer) which I think is defined by:

$$\cos(\alpha') = \frac {\gamma - 1} {\gamma v}$$

where the doppler factor ($DF$) is 1. Theoretically, along this circle, you could directly observe time dilation (modulo the difficulty of observing clocks and their rates virtually instantaneously whilst moving at large relative velocities). (light grey circle of dots in the video)

Furthermore, I reckon there is a smaller viewing angle for which $DF = \gamma$, which I think is $\cos(\alpha') = v$ (magenta circle of dots in the video)

In this video the observer first accelerates away from a home station, then returns. It is on this return leg that you will see the two "circles" of dots move into view.

To see all the details of clocks, speedo etc please view in full HD. There is a fuller description of what is happening in the playlist top level: https://www.youtube.com/playlist?list=PLvGnzGhIWTGR-O332xj0sToA0Yk1X7IuI

13. Nov 6, 2014

### A.T.

That makes sense, because the rel. Doppler along the line of sight (that I was considering in post #8 and #9) is always a blue shift for a source approaching you. But the transverse rel. Doppler (at closest approach) is just the kinetic time dilation, a red shift. So when the source is not approaching you directly, there must be an angle where it switches from blue to red shift, for any relative speed of the source, not just a specific one.

Going back to post #6 this seems what dynawics was actually asking about. So he was actually right assuming there is such a combination, if the source doesn't approach you directly.

Last edited: Nov 6, 2014
14. Nov 6, 2014

### m4r35n357

Agreed. I am a little ashamed that I could have answered earlier and better simply by remembering my own work of a couple of months ago! I really should write it up properly, but I've moved onto other areas now . . .

15. Nov 6, 2014

### A.T.

And I considered only different velocities of direct approach, not different viewing angles. (based on post #4, but #6 is more general).

16. Nov 6, 2014

### ghwellsjr

No, he wasn't right. Your posts prior to #13 were all correct. Don't change your mind. He has always been talking about observing a clock coming directly towards an observer. He thinks there is a speed at which an approaching clock appears to be stationary due to the observed rate of ticking on that clock being identical to the observer's clock. He thinks this observation would be the same from far away to close up until the moment the clock reaches him. His arguments involve a clock not directly coming toward an observer but that is not the situation he wants to know about.

17. Nov 6, 2014

### A.T.

I'm not changing my mind. My post where correct for the direct approach.

Doesn't hurt to consider that situation too.

18. Nov 6, 2014

### ghwellsjr

But he is wondering about a particular value of v for which the Doppler cancels out the Time Dilation. What you are saying about the transverse situation is true for all values of v, not just one. It has nothing to do with what he is asking about.

19. Nov 6, 2014

### stevendaryl

Staff Emeritus
Something that's kind of interesting about time dilation and Doppler shift. Even though, in a sense, they are two different effects, there is a way to think of time dilation as being derivable from Doppler shift plus the principle of relativity.

Assuming nonrelativistic Doppler, then you get different Doppler shifts depending on whether the sender is moving or the receiver is moving.

Assume that a sender is sending light signals at a rate of 1 every $T$ seconds (according to his clock). Then the receiver will receive those signals at the rate of 1 every $T'$ seconds (according to his clock). The relationship between $T$ and $T'$ is, classically:

$\frac{T'}{T} = \frac{1}{1-\frac{v}{c}}$

$\frac{T'}{T} = 1+\frac{v}{c}$

So the two cases are observably different, classically. So classically, the Doppler shift can tell you who is "really" moving, in violation of the principle of relativity.

But now, let's not assume that the two clocks are the same. Instead, let's assume that there is an unknown velocity dependent effect on clocks: A moving clock slows by an unknown factor $g$.

Then if we redo the calculation using $g$, then we get the following results:

$\frac{T'}{T} = g \frac{1}{1-\frac{v}{c}}$

$T'$, the measured time according to the receiver, is decreased by the factor $g$.

$\frac{T'}{T} = \frac{1}{g} (1+\frac{v}{c})$
This time, the measured time according to the sender is decreased by the factor $g$.
Then if $g$ is chosen correctly, we can get these two cases to be the same (restoring the principle of relativity):
$g \frac{1}{1-\frac{v}{c}} = \frac{1}{g} (1+\frac{v}{c})$
$\Rightarrow g^2 = (1 - \frac{v}{c})(1+\frac{v}{c})$
$\Rightarrow g = \sqrt{1-\frac{v^2}{c^2}}$


text:
# Set image texture node label based upon characters in filename/filepath string

I want to import a set of 4 images. Upon import, I want to rename the image texture node that is created for each imported image to represent the type of image that is being loaded, i.e. (Diffuse, Normal, Spec, Roughness). How do I pass the filepath/filename of the image I am importing as a string, tell the script to look for certain characters in the passed string (COL, NRM, SPEC, ROUGH) and rename based upon the returned characters?

I would assume I can complete the rename function by using if-else statements. Any help or examples you could provide would be greatly appreciated.

The script below creates a new node category, places a custom node inside of it to import pbr textures, and allows you to import multiple import multiple images at one time into the node editor. I am looking to expand this script to include the functionality I have mentioned above.

Here is the working code:

import bpy
from bpy.types import NodeTree, Node, NodeSocket
import bpy, blf, bgl
from bpy.types import Operator, Panel, Menu
from bpy.props import FloatProperty, EnumProperty, BoolProperty, IntProperty, StringProperty, FloatVectorProperty, CollectionProperty
from bpy_extras.io_utils import ImportHelper
from mathutils import Vector
from math import cos, sin, pi, hypot
from os import path
from glob import glob
from copy import copy

def node_mid_pt(node, axis):
if axis == 'x':
d = node.location.x + (node.dimensions.x / 2)
elif axis == 'y':
d = node.location.y - (node.dimensions.y / 2)
else:
d = 0
return d

space = context.space_data
tree = space.node_tree
nodes = tree.nodes
active = nodes.active
context_active = context.active_node
# check if we are working on regular node tree or node group is currently edited.
# if group is edited - active node of space_tree is the group
# if context.active_node != space active node - it means that the group is being edited.
# in such case we set "nodes" to be nodes of this group, "links" to be links of this group
# if context.active_node == space.active_node it means that we are not currently editing group
is_main_tree = True
if active:
is_main_tree = context_active == active
if not is_main_tree:  # if group is currently edited
tree = active.node_tree
nodes = tree.nodes

# Implementation of custom nodes from Python
# Derived from the NodeTree base type, similar to Menu, Operator, Panel, etc.
class MyCustomTree(NodeTree):
bl_idname = "CustomTreeType"
bl_label = "Custom Node Tree"
bl_icon = "NODE"

# Defines a poll function to enable filtering for various node tree types.
class MyCustomTreeNode:
@classmethod
def poll(cls, ntree):
b = False
# Make your node appear in different node trees by adding their bl_idname type here.
if ntree.bl_idname == 'ShaderNodeTree': b = True
return b

# Derived from the Node base type.
class MyCustomNode(Node, MyCustomTreeNode):
'''A custom node'''
bl_idname = 'CustomNodeType'
bl_label = 'Import PBR Textures'
bl_icon = 'NODETREE'

# Additional buttons displayed on the node.
def draw_buttons(self, context, layout):

# Optional: custom label
# Explicit user label overrides this, but here we can define a label dynamically.
def draw_label(self):
return "Import PBR Textures"

bl_icon = 'NODETREE'
bl_label = 'Open Selected Images'
bl_options = {'REGISTER', 'UNDO'}
directory = StringProperty(subtype="DIR_PATH")
files = CollectionProperty(type=bpy.types.OperatorFileListElement, options={'HIDDEN', 'SKIP_SAVE'})

def execute(self, context):
nodes_list = [node for node in nodes]
if nodes_list:
nodes_list.sort(key=lambda k: k.location.x)
xloc = nodes_list[0].location.x - 220  # place new nodes at far left
yloc = 0
for node in nodes:
node.select = False
yloc += node_mid_pt(node, 'y')
yloc = yloc/len(nodes)
else:
xloc = 0
yloc = 0

elif context.space_data.node_tree.type == 'COMPOSITING':
node_type = "CompositorNodeImage"
else:
self.report({'ERROR'}, "Unsupported Node Tree type!")
return {'CANCELLED'}

new_nodes = []
for f in self.files:
fname = f.name

node = nodes.new(node_type)
new_nodes.append(node)
node.label = fname
node.hide = True
node.width_hidden = 100
node.location.x = xloc
node.location.y = yloc
yloc -= 40

node.image = img

# shift new nodes up to center of tree
list_size = new_nodes[0].location.y - new_nodes[-1].location.y
for node in new_nodes:
node.select = True
node.location.y += (list_size/2)
return {'FINISHED'}

### Node Categories ###
import nodeitems_utils
from nodeitems_utils import NodeCategory, NodeItem

# our own base class with an appropriate poll function,
# so the categories only show up in our target tree type
class MyNodeCategory(NodeCategory):
@classmethod
def poll(cls, context):
b = False
# Make your node appear in different node trees by adding their bl_idname type here.
if context.space_data.tree_type == 'ShaderNodeTree': b = True
return b

# all categories in a list
node_categories = [
# identifier, label, items list
MyNodeCategory("SOMENODES", "Import", items=[
NodeItem("CustomNodeType"),
]),
]

#col = self.layout.column(align=True)
#col.separator()

def register():
bpy.utils.register_class(MyCustomNode)
nodeitems_utils.register_node_categories("CUSTOM_NODES", node_categories)

bpy.utils.register_module(__name__)

def unregister():
nodeitems_utils.unregister_node_categories("CUSTOM_NODES")
bpy.utils.unregister_class(MyCustomNode)

bpy.utils.unregister_module(__name__)

def pre_frame_change(scene):
if scene.render.engine == 'CYCLES':
# Scan materials to see if I have a custom node within any of the trees.
for m in bpy.data.materials:
if m.node_tree != None:
for n in m.node_tree.nodes:
if n.bl_idname == 'CustomNodeType':
print(n.bl_idname)
# One of our custom nodes, let's update it.
# When we set the value that will trigger an update inside the node.
# Even if we change it to the same value it was.
v = n.some_value
n.some_value = v

if __name__ == "__main__":
register()
bpy.app.handlers.frame_change_pre.append(pre_frame_change)

• Okay, I'm taking a look at this really fast... Why do you need to create a node to import image texture nodes? Can't you just import from the Import PBR Textures operator you created in the toolshelf? Also, you are importing things like bgl and blf, which you don't need. – Nathan Craddock Jun 9 '16 at 15:08

So in order to scan a filename and return a string based on what is found, you need to create a function similar to this

def get_label_from_filename(filename):
# Here we anticipate what kind of map names users might use. For example COL, COLOR, DIF, DIFFUSE, etc all mean the same thing
# To add another category (say reflection) then do this 'reflection':["ref", "reflect", "reflection"]
# The list of synonyms can be as large as you want!
map_names = {'diffuse':["col", "color", "colour", "dif", "diffuse"]}

# Strip the extension and lowercase
filename = path.splitext(filename)[0].lower()

original = filename

# We will iterate over the dictionary and then over each of the
for key, synonyms in map_names.items():
for s in synonyms:
if s in filename:
filename = key.upper() # You could fill map_names with the uppercase version, but I find typing in lowercase easier

# If the filename remained the same, let the user know the image wasn't named correctly
if filename == original:
filename = "UNRECOGNIZED TYPE"

return filename

Then call the function right after you load the image in your operator. Then you can set node.label = get_label_from_filename().

I have commented the code, but here are some more detailed explanations of the more confusing parts.

map_names = {'diffuse':["col", "color", "colour", "dif", "diffuse"]}

This is a dictionary. It holds key-value pairs. You can add more to this by creating a new key, and pairing it with a list. The reason we are using a dictionary is because it allows us to have a single variable to reference when iterating through it later. You could create separate variables for each list, but that would be a bit more cumbersome to code.

for key, synonyms in map_names.items():

We assign the variable key and the variable synonyms to the key-value pairs found in map_names. We are required to call .items() when iterating over the dictionary. The next layer in the loop iterates over the synonym list for each key. Then if the synonym is found in the filename, we set the filename to the key in uppercase.

Now, this isn't the only way to do this. And this system is very user-dependent. If the user is too lazy to name the textures, this method will not work.


text:
A prism with height 2cm and a pyramid with height 5cm have congruent triangular base. Find the ratio of their volumes.
.
.
.
.
.
Thank You

2. Volume of a Prism = Area of cross section * Height

Volume of Pyramid = (1/3) * Area of base * Height

Let the area of the triangle be x.

Volume of Prism = x * 2

Volume of Pyramid = (1/3) * x * 5

Volume of Prism $= 2x
$

Volume of Pyramid $= \frac{5x}{3}
$

Ratio of volumes:

$
2x : \frac{5x}{3}
$

Can you simply that?

3. ## Hello

Thank u so much for replying...^^


text:
<<  2014N01  >>
 y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
 Re:~NuSmile for you悵 (4/2 6:41) Re:~NuSmile for you@ԈƂɉł (3/23 20:56) Re:~Nu~NvJ悵 (2/18 18:58) Re:~Nu~NvJ (2/18 15:19) Re:~Nu~NvJ悵 (2/18 11:29) ꗗ
 2014N̊\
 悵 2014N0108 02:09


text:
• entries
152
85
• views
99546

# Vroom! Vroom!

108 views

I've been without a car for a year and half. A side from seeing lots of nice sceneray and keeping my cardiovascular system in good shape, it really has been rather annoying. For instance it took me an hour to walk to work, and was like this for about a year and a half. That was until yesterday, when I was finally able to get a 1991 Honda Accord. This is great news for all! Let the towns people sing up as one voice, and let there be drinks and food and women for everyone, even the women!

Congrats mate. Just watch out for the sudden possible weight gain!

That and gas prices. Gas is over $1.50 more expensive then it was a year and a half ago. Why I remember when gas was$0.86 a gallon. This was all but four years ago. Now, it's \$2.50 a gallon. I may end up walking to work and other close places anyways, but it'll be good to have the option to drive if the need be. Ah.. who am I kidding, I'll probably drive to work.

## Create an account

Register a new account


text:
# Production of sulfuric acid

1. May 27, 2005

### LURCH

I was recently reading about the method by which sulfuric acid was produced in the old days. Apparently, copper sulfate pentahydrate (green vitriol), when heated up, breaks down into copper dioxide, water, and sulfur trioxide. The sulfur trioxide and water then bond to form sulfuric acid. Now, I'm really weak on chemistry, but by looking at the chemical signatures of these substances it appears that an oxygen molecule is missing. Does this method give off oxygen as a byproduct?

Also, can the process be reversed? Can copper dioxide and sulfuric acid be combined to form green vitriol?

2. May 28, 2005

### quetzalcoatl9

what is missing?

$$SO_3(g) + H_2O(l) \longrightarrow H_2SO_4(l)$$

where are we missing oxygen?


text:
## Files in this item

FilesDescriptionFormat

application/pdf

2639.pdf (21kB)
(no description provided)PDF

## Description

 Title: LASER INDUCED FLUORESCENCE SPECTROSCOPY OF JET-COOLED MgOMg Author(s): Sullivan, Michael N. Contributor(s): Fawzy, Wafaa M; Heaven, Michael; Frohman, Daniel J. Subject(s): Metal containing Abstract: par The group IIA metals have stable hypermetallic oxides of the general form MOM. Theoretical interest in these species is associated with the multi-reference character of the ground states. It is now established that the ground states can be formally assigned to the $mathrm{M^{+}O^{2-}M^{+}}$ configuration, which leaves two electrons in orbitals that are primarily metal-centered $ns$ orbitals. Hence the MOM species are diradicals with very small energy spacings between the lowest energy singlet and triplet states. Previously, we have characterized the lowest energy singlet transition ($mathrm{^{1}Sigma^{+}_{u}leftarrow ^{1}Sigma^{+}_{g}}$) of BeOBe. Preliminary data for the first electronic transition of the isovalent species, CaOCa, was presented previously (71$mathrm{^{st}}$ ISMS, talk RI10). _x000d_ _x000d_ par We now report the first electronic spectrum of MgOMg. Jet-cooled laser induced fluorescence spectra were recorded for multiple bands that occurred within the 21,000 - 24,000 $mathrm{cm^{-1}}$ range. Most of the bands exhibited simple P/R branch rotational line patterns that were blue-shaded. Only even rotational levels were observed, consistent with the expected X $mathrm{^{1}Sigma^{+}_{g}}$ symmetry of the ground state ($mathrm{^{24}Mg}$ has zero nuclear spin). Molecular constants were extracted from the rovibronic bands using PGOPHER. The experimental results and interpretation of the spectrum, which was guided by the predictions of electronic structure calculation, will be presented. _x000d_ Issue Date: 6/21/2017 Publisher: International Symposium on Molecular Spectroscopy Citation Info: APS Genre: CONFERENCE PAPER/PRESENTATION Type: Text Language: English URI: http://hdl.handle.net/2142/97001 DOI: 10.15278/isms.2017.WK01 Date Available in IDEALS: 2017-07-27


text:
Minimum cost flow problem with negative cost arcs

As far as I know, if there is a directed arc with a negative cost, we change its direction to its opposite and get a positive cost. But in the following question, if we change the direction of the arc with the negative cost, we can't get to node 4 or node 1. How do you think I should approach this?


text:
DI Management Home > Cryptography > Public key cryptography using discrete logarithms > Part 4: Digital Signature Algorithm (DSA)

# Public key cryptography using discrete logarithms. Part 4: Digital Signature Algorithm (DSA)

The Digital Signature Algorithm (DSA) is a method to create a digital signature based on the Diffie-Hellman Key Exchange method.

 << previous: Elgamal Encryption

## Digital Signature Algorithm (DSA)

The Digital Signature Algorithm (DSA) was introduced in 1994 by the U.S. Department of Commerce and National Institute of Standards and Technology [FIPS186]. It uses the same Diffie-Hellman domain parameters $(p,q,g)$ and private/public key pair $(a,A=g^a\mod p)$ for a signing party A.

In the original standard, the prime factor $q$ was specified to be 160 bits long and the message representative to be signed was the 160-bit SHA-1 hash of the message $M$. See the remarks below for more recent recommendations.

Algorithm: DSA Signature Generation
INPUT: Domain parameters $(p,q,g)$; signer's private key $a$; message-to-be-signed, $M$, with message digest $h=\text{Hash}(M)$.
OUTPUT: Signature $(r,s)$.
1. Choose a random $k$ in the range $[1,q-1]$.
2. Compute $X=g^k\mod p$ and $r=X\mod q$. If $r=0$ (unlikely) then go to step 1.
3. Compute $k^{-1}\mod q$.
4. Compute $h=\text{Hash}(M)$.
5. Compute $s=k^{-1}(h+ar)\mod q$. If $s=0$ (unlikely) then go to step 1.
6. Return $(r,s)$.

Algorithm: DSA Signature Verification
INPUT: Domain parameters $(p,q,g)$; signer's public key $A$; signed-message, $M$, with message digest $h=\text{Hash}(M)$; signature $(r,s)$.
OUTPUT: "Accept" or "Reject".
1. Verify that $r$ and $s$ are in the range $[1,q-1]$. If not then return "Reject" and stop.
2. Compute $w = s^{-1}\mod q$.
3. Compute $h=\text{Hash}(M)$.
4. Compute $u_1=hw \mod q$ and $u_2=rw\mod q$.
5. Compute $X = g^{u_1}A^{u_2}\mod p$ and $v=X\mod q$.
6. If $v=r$ then return "Accept" otherwise return "Reject".

### ▷ Why does this work?

We have
$s=k^{-1}(h+ar)\mod q, \quad$ so
$w=s^{-1} = \left[k^{-1}(h+ar)\right]^{-1} = k(h+ar)^{-1} \mod q$
and
$X = g^{hw\mod q}\cdot A^{rw\mod q} \pmod{p}$
$\quad = g^{hw}\left(g^a\right)^{rw} \pmod{p},\quad$ (omitting the mod $q$ in the exponents for clarity)
$\quad = g^{hw+arw} \pmod{p}$
$\quad = g^{w(h+ar)} \pmod{p}$
The exponent becomes
$w(h+ar) = k(h+ar)^{-1}(h+ar) = k \pmod{q}$.
Hence
$X = g^k \pmod{p}, \quad$ and thus
$v = X \mod q = (g^k \mod p) \mod q = r,\quad$ as required.

You might ask whether we are allowed to be so cavalier with our exponents computed modulo $q$ inside an expression computed modulo $p$? Well, yes we can, but we need to prove it. The issue is whether the relation $g^{x\mod q} \equiv g^{y \mod q}\pmod{p}$ still holds when $x$ and $y$ are distinct integers. While doing this, remember we chose $g$ so that $g^q \mod p = 1$.

Suppose $x\equiv y\pmod{q}$ for $x\neq y$. That is, $x=y+kq$ for some integer $k\neq 0$. Then
$g^x \equiv g^{y+kq} \pmod{p}$
$\quad\; \equiv g^y\cdot g^{kq}$
$\quad\; \equiv g^y\cdot \left(g^q\right)^k$
$\quad\; \equiv g^y \pmod{p},\quad$ since $g^q\equiv 1\pmod{p}$.

Note that “$x\mod q = y\mod q$” is equivalent to “$x\equiv y\pmod{q}$”.

### Example of DSA signing by Alice

In practice, $q$ is a 160-bit prime and $h$ is a 160-bit SHA-1 hash of the message $M$, but the algorithm still works for our small numbers.
• INPUT: Domain parameters $(p=283, q=47, g=60)$
• INPUT: Alice's private key, $a=24$
• INPUT: Message $M$ with message digest $h=\text{Hash}(M)=41$.
1. Alice chooses a random $k=15$ in the range $[1,q-1]$
2. Alice computes $X = g^k \mod p = 60^{15}\mod 283 = 207$ and
$r=X\mod q = 207\mod 47 = 19$.
$r\neq 0$ so continue.
3. Alice computes $k^{-1} \mod q = 15^{-1}\mod 47 = 22$.
4. Alice computes $h=\text{Hash}(M)=41$.
5. Alice computes $s = k^{-1}(h+ar)\mod q = 22(41+24\cdot 19)\mod 47 = 30$.
$s\neq 0$ so continue.
6. Alice issues the message $M$ and signature $(r, s)=(19,30)$.

### Example of DSA verification by Bob (or anyone)

• INPUT: Domain parameters $(p=283, q=47, g=60)$
• INPUT: Alice's public key, $A=158$
• INPUT: Message $M$ with message digest $h=\text{Hash}(M)=41$.
• INPUT: Signature $(r, s)=(19,30)$.
1. Bob verifies that $0 \lt r=19 \lt 47$ and $0 \lt s=30 \lt 47$ $\Rightarrow$ OK, so continue.
2. Bob computes $w=s^{-1}\mod q = 30^{-1}\mod 47 = 11$.
3. Bob computes $h=\text{Hash}(M)=41$.
4. Bob computes $u_1 = hw\mod q = 41\cdot 11\mod 47 = 28$ and
$u_2 = rw\mod q = 19\cdot 11\mod 47 = 21$.
5. Bob computes $X = g^{u_1}A^{u_2}\mod p = 60^{28}\cdot 158^{21}\mod 283 = 106\cdot 42\mod 283 = 207$ and
$v = X\mod q = 207\mod 47 = 19$.
6. Bob checks that $v=19=r$, so he accepts the signature.

1. The signature $(r, s)$ is just two integers of size $q$, which makes it conveniently compact relative to the size $p$ of the group.
2. $r$ is a "masked" $k$ and $s$ is a "clue" to help the holder of the secret key $a$ unmask the value of $k$.
3. The message digest $h$ cannot be recovered from the signature. It can only be verified.
4. Note the subtlety that $h$ might be greater than $q$ even though they are both 160-bit integers. This actually does not matter because we effectively use $h\mod q$ when computing $s$.
5. More recent versions of [FIPS186] specify permissible combinations of ($|p|,|q|)$ to be $(1024,160)$, $(2048,224)$ and $(2048/3072,256)$ to use with SHA-1, SHA-224 and SHA-256, respectively. More guidance is given in [SP800-57].

## References

• [FIPS186] Federal Information Processing Standard, FIPS PUB 186-4 Digital Signature Standard (DSS), U.S. Department of Commerce/National Institute of Standards and Technology, July 2013, <pdf-link>.
• [SP800-57] NIST Special Publication 800-57, Recommendation for Key Management, National Institute of Standards and Technology, <link>.