text:
# What is the tesion between the two masses?

1. May 8, 2005

### UrbanXrisis

there are two masses connected by a string:

1kg-----2kg---->F

the 2 masses are being pulled by a force of F

what is the tesion between the two masses?

the total acceleration is a=F/3

this means that the tesion is either 2kg*F/3 or 1kg*F/3

not sure which one?

2. May 8, 2005

### Staff: Mentor

Correct.

Figure it out! Pick one of the masses and apply Newton's 2nd law. (You already know the acceleration.)

3. May 8, 2005

### UrbanXrisis

right, that's what I'm asking, do I apply it to the 1kg mass or the 2 kg mass?

4. May 8, 2005

### Staff: Mentor

You think Newton's 2nd law only works for one of them?

It better work for either mass. Now, of course, if you pick the correct mass to analyze the problem is easier.

Start by identifying the forces that act on each mass.

5. May 8, 2005

### UrbanXrisis

if I apply it to the 1 kg mass... it will be T=F/3

if I apply it to the 2 kg mass... it will be T=2F/3

6. May 8, 2005

### Staff: Mentor

Obviously that's not right since there is only one tension in the string.

How many forces act on the 1kg mass? How many forces act on the 2kg mass?

7. May 8, 2005

### UrbanXrisis

one force acts on the 1kg mass, 2 forces act on the 2kg mass

does that mean the tension force is only exerted on the 1kg mass?

8. May 8, 2005

### Staff: Mentor

You tell me. The string exerts its tension force on anything it's attached to.

9. May 8, 2005

### UrbanXrisis

oh, so only the 1 kg mass is effected, so that means the T=F/3

10. May 8, 2005

### whozum

Both masses are affected, but hte tension in the string generally results from a force applied on BOTH ends. In this problem, both ends have atleast a force of 1kg*F/3 on them, therefore that is the tension.

11. May 8, 2005

### Staff: Mentor

Analyzing the 1 kg mass:
$F_{net} = ma$
$T = (1)(F/3) = F/3$

Analyzing the 2 kg mass:
$F_{net} = ma$
$F - T = (2)(F/3) = (2/3)F$ ==> $T = F/3$


text:
# Challenge Macrophages III

Macrophages III is in-game challenge number 7 of Cell Lab.

## Objective

We are going to try to use your new cell, the Flagellocyte, for this challenge.
This cell can not gain energy from the environment, but it can swim!
Note that this cell immediately dies if attached to another cell such that flagellum is obstructed.
The viscosity of this substrate is higher than previous "Macrophages" challenge.
Can you nevertheless make a species multiply to 420 cells?

Difficulty: Easy

Cell Types Allowed: Phagocytes, Flagellocytes, and Photocytes

Inserted Cells: 10

Hints $\quad$
To solve this challenge you will need your organism's life cycle to include three different modes.
Ticking "Contaminate with random cells" in experimental mode and running for a little while might give you some ideas in how to solve this challenge.
Spoiler $\quad$
Have modes 1 split to mode 2 and 3.
Have modes 3 to split 3 and 1.
Let mode 1 and 3 be Phagocytes and mode 2 Flagellocyte.
Tick "Make Adhesin" for mode 1.
Note that is one of among many different ways to solve this challenge.

This is a level where you must reach a certain cell count.

## Substrate

This substrate has a high viscosity, which means that cells will not move very far from the momentum of cell division.

[The closest Substrate Replica isn't currently avaliable]

## Solutions

This challenge requires you to engineer a genome. With a Flagellocyte attached behind a Phagocyte, and the Phagocyte collecting food and spitting out eggs for the new swimmers, this challenge should be easy to beat.

## Trivia

• This challenge requires you to visit the Genome Tab to engineer a genome.
• A basic swimmer averages a number of 450 cells in this challenge.
• Without Flagellocytes, this challenge cannot be solved.

format: plain


text:
# Homework Help: Relativistic electrodynamics

1. Nov 20, 2006

### bcoats

If someone could help me with this one that would be great. My prof has not been in his office in quite some time...

-A wire of cross-sectional area A carries a current I, and has zero net electric charge in frame O.
(a) Find the magnetic field a distance r from the axis of the wire
(b) Find the charge density ρ' and current density j' in frame O' moving with velocity v parallel to axis of wire relative to O.
(c) Using Ampere's law and Gauss' law with the charge and current densities found in (b), calculate the electric and magnetic fields in O' at a point a distance r from the axis of the wire.
(d) Verify that these fields agree with the ones obtained by transforming from O.

OK, so here's where I'm at:
(a) I expect B to be the same as in non-relativistic e.d., μ0*I/2πr.

(b) This is the tricky part. I don't know how to look at ρ. If simply looking at the ρ+ (charge density for positive charges), then ρ' should be greater than ρ0 by a factor of gamma due to length contraction. But if we are looking at ρ- (negative charges), then it's more complicated since it increases by more than a factor of gamma if v is moving in the same direction as the electrons. But if we just use the invariant, and ρ is the net charge density, then ρ0=0, and we have j^2=(c^2)(ρ'^2)+(j'^2). I'm assuming that j'=I'/A (where A is the cross-sectional area). So then we have an equation relating j to ρ', but how to solve for either?

(c) Of course, I can't figure this out until I figure out (b), but I think that ε0*E'*A=q', meaning that E'=q'/(ε0*2*pi*r*l)=ρ'/(ε0*2*pi*r). So once I figure out ρ' I should have that part. Then I have B'=μ0*I'/2πr. I' should be less than I by a factor of gamma due to time dilation, I think. So I believe B'=μ0*(I/γ)/2πr.

Anyways, if anyone gets a chance to help me, thanks so much. It's due tomorrow, but posts after that will still help me understand.

Ben

2. Nov 21, 2006

### OlderDan

Is v meant to be an arbitrary velocity, or the drift velocity of the current charge carriers? If it is arbitrary, the drift velocity in O should still come into play. You will need th relativistic velocity addition formula to find the velocity of the drifting charges in O'

3. Nov 21, 2006

### bcoats

v is the arbitrary linear velocity of frame O' wrt frame O. I thought about using relativistic velocity addition to determine the velocity of the electrons in the O' frame...but how can you figure that out? I suppose that the velocity of the electrons carrying the current should be some function of the current itself (among other things), but we've never talked about anything like that in class....although that's not exactly unusual.

4. Nov 22, 2006

### OlderDan

I think you need the drift velocity to do the problem. There has to be a different effective density of the opposite charges in the wire, so different length contractions come into play. The current is related to the charge density and the drift velocity.


text:
GMAT Question of the Day - Daily to your Mailbox; hard ones only

 It is currently 18 Dec 2018, 09:57

# In Progress:

Admit Calls from Ross Join Chat Room | McCombs Join Chat Room for Latest Updates

### GMAT Club Daily Prep

#### Thank you for using the timer - this advanced tool can estimate your performance and suggest more practice questions. We have subscribed you to Daily Prep Questions via email.

Customized
for You

we will pick new questions that match your level based on your Timer History

Track

every week, we’ll send you an estimated GMAT score based on your performance

Practice
Pays

we will pick new questions that match your level based on your Timer History

## Events & Promotions

###### Events & Promotions in December
PrevNext
SuMoTuWeThFrSa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Open Detailed Calendar
• ### Happy Christmas 20% Sale! Math Revolution All-In-One Products!

December 20, 2018

December 20, 2018

10:00 PM PST

11:00 PM PST

This is the most inexpensive and attractive price in the market. Get the course now!
• ### Key Strategies to Master GMAT SC

December 22, 2018

December 22, 2018

07:00 AM PST

09:00 AM PST

Attend this webinar to learn how to leverage Meaning and Logic to solve the most challenging Sentence Correction Questions.

# A terrible disease sweeps around the world, luckily only affecting 1

Author Message
TAGS:

### Hide Tags

Math Expert
Joined: 02 Sep 2009
Posts: 51280
A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Oct 2017, 00:49
3
16
00:00

Difficulty:

95% (hard)

Question Stats:

8% (02:06) correct 92% (01:55) wrong based on 167 sessions

### HideShow timer Statistics

CHALLENGE QUESTIONS

A terrible disease sweeps around the world, luckily only affecting 1 in 10,000, but for that one, the disease is lethal. Shortly after the disease was discovered, scientists developed a test that is 99% accurate regardless of whether you have the disease. In other words, the test yields the correct positive or correct negative result 99% of the time. You take the test and a week later, you receive the lab report. The outcome of the test is positive. What is the probability you have the disease?

A. $$\frac{99}{1,000,000}$$

B. $$\frac{1}{102}$$

C. $$\frac{1}{100}$$

D. $$\frac{10,099}{1,000,000}$$

E. $$\frac{99}{100}$$

_________________
Math Expert
Joined: 02 Aug 2009
Posts: 7112
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

07 Oct 2017, 04:27
5
6
Bunuel wrote:

CHALLENGE QUESTIONS

A terrible disease sweeps around the world, luckily only affecting 1 in 10,000, but for that one, the disease is lethal. Shortly after the disease was discovered, scientists developed a test that is 99% accurate regardless of whether you have the disease. In other words, the test yields the correct positive or correct negative result 99% of the time. You take the test and a week later, you receive the lab report. The outcome of the test is positive. What is the probability you have the disease?

A. $$\frac{99}{1,000,000}$$

B. $$\frac{1}{102}$$

C. $$\frac{1}{100}$$

D. $$\frac{10,099}{1,000,000}$$

E. $$\frac{99}{100}$$*

Hi...

It is a tough Q if you don't understand the wordings and is ofcourse TRICKY and that is why none have got the correct answer above.

The result is POSITIVE..
Two cases..
1) Correct:- 99%
So he is 1 out of 10000.
Probability= $$\frac{1}{10000}*\frac{99}{100}=\frac{99}{1000000}$$..
2) Wrong:- 1%
So he is out of 9999..
Probability= $$\frac{9999}{10000}*\frac{1}{100}=\frac{9999}{1000000}$$..

So PROBABILITY that it is correct = (99/1000000)/(99/1000000+9999/1000000) =$$\frac{99}{99(1+101)}=1/102$$
B
_________________

1) Absolute modulus : http://gmatclub.com/forum/absolute-modulus-a-better-understanding-210849.html#p1622372
2)Combination of similar and dissimilar things : http://gmatclub.com/forum/topic215915.html
3) effects of arithmetic operations : https://gmatclub.com/forum/effects-of-arithmetic-operations-on-fractions-269413.html

GMAT online Tutor

##### General Discussion
Manager
Joined: 30 Mar 2017
Posts: 66
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Oct 2017, 01:03
As there is no connection with 1 in 10000, and there are still 99% chances of him having the disease. So the probability will be 99/100.

Sent from my Moto G (5) Plus using GMAT Club Forum mobile app
Intern
Joined: 20 Sep 2017
Posts: 1
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Oct 2017, 02:55
Probability of having the disease * probability of test accuracy = (1/10000) * (99/100) = 99/1,000,000
A is the correct ans
Intern
Joined: 02 Feb 2016
Posts: 27
Location: United States
GMAT 1: 710 Q49 V38
GPA: 3.5
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Oct 2017, 15:41
The question indicates that only 1 person took the test, so the results are only related to this sample size. The 1/10000 probability of having disease seems like extra information(?). I think the answer is 99/100.
Director
Joined: 18 Aug 2016
Posts: 623
Concentration: Strategy, Technology
GMAT 1: 630 Q47 V29
GMAT 2: 740 Q51 V38
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

07 Oct 2017, 00:51
Bunuel wrote:

CHALLENGE QUESTIONS

A terrible disease sweeps around the world, luckily only affecting 1 in 10,000, but for that one, the disease is lethal. Shortly after the disease was discovered, scientists developed a test that is 99% accurate regardless of whether you have the disease. In other words, the test yields the correct positive or correct negative result 99% of the time. You take the test and a week later, you receive the lab report. The outcome of the test is positive. What is the probability you have the disease?

A. $$\frac{99}{1,000,000}$$

B. $$\frac{1}{102}$$

C. $$\frac{1}{100}$$

D. $$\frac{10,099}{1,000,000}$$

E. $$\frac{99}{100}$$

out of 10000 people 1 has the disease
if 10000 people are tested, 1% of people will lie in grey area i.e. wrong test result (test showing positive but negative or test showing negative but positive)
1/100
_________________

We must try to achieve the best within us

Thanks
Luckisnoexcuse

Senior Manager
Joined: 02 Apr 2014
Posts: 473
GMAT 1: 700 Q50 V34
A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Dec 2017, 23:39
2
2
Great question on conditional probability.

P(A happening / given B occured) = P(A AND B)/P(B)

P(You have disease/given outcome is positive) = P(you have disease AND outcome is positive)/P(outcome is positive)

P(outcome is positive) = false positive + true positive = $$(9999/10000)$$ * $$(1/100)$$ + $$(1/10000)$$ * $$(99/100)$$

P(you have disease AND outcome is positive) = $$(1/10000) * (99/100)$$

So P(A given B) = P(You have disease/given outcome is positive) = $$(1/10000) * (99/100)$$ / ($$(9999/10000)$$ * $$(1/100)$$ + $$(1/10000)$$ * $$(99/100)$$)

= $$99 / (9999 + 99)$$

= 1/ (1 + $$9999/99$$) = 1 / (1 + 101) = 1/ 102

Intern
Joined: 08 Oct 2017
Posts: 24
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

26 Jun 2018, 16:44
It should be E. 1 in 10000 not connected with taking test and still 99% chances are there for having the disease. So the probability is 99/100.
Intern
Joined: 29 Aug 2017
Posts: 29
Location: India
GMAT 1: 640 Q49 V27
GPA: 4
Re: A terrible disease sweeps around the world, luckily only affecting 1  [#permalink]

### Show Tags

06 Jul 2018, 10:49
BeingHan wrote:
As there is no connection with 1 in 10000, and there are still 99% chances of him having the disease. So the probability will be 99/100.

Sent from my Moto G (5) Plus using GMAT Club Forum mobile app

No. After being declared that he has disease, there are two possible cases.
1) He is among 1 of 10,000 and test result is correct (99 percent case)
2) He is among 99,99 people who dont have disease and test result is negative (1 percent case).
Re: A terrible disease sweeps around the world, luckily only affecting 1 &nbs [#permalink] 06 Jul 2018, 10:49
Display posts from previous: Sort by


text:
# Quadrotor Control and Actuator Fault Detection: LQG Versus Robust $H_{-}/H_{\infty}$ observer

Abstract : This paper proposes a robust model based observer for actuators fault detection and diagnosis (FDD), applied to an unmanned aerial vehicle: quadrotor. The observer is designed aiming at maximizing the fault to residual sensitivity by using the H - index properties, and minimizing the H ∞ norm for worst case exogenous signals attenuation. Fault detection is formulated as LMI feasibility problem for minimizing a cost function based on a trade-off between fault sensitivity and robustness against disturbances. The effectiveness of the proposed observer is demonstrated through its application to a quadrotor and comparing the results with that from a Kalman filter.
Keywords :
Document type :
Conference papers
Domain :

https://hal.archives-ouvertes.fr/hal-02415879
Contributor : Frédéric Davesne <>
Submitted on : Tuesday, December 17, 2019 - 1:13:12 PM
Last modification on : Monday, January 13, 2020 - 1:18:29 AM

### Citation

Eslam Abouselima, Dalil Ichalal, Saïd Mammar. Quadrotor Control and Actuator Fault Detection: LQG Versus Robust $H_{-}/H_{\infty}$ observer. 4th Conference on Control and Fault Tolerant Systems (SysTol 2019), Sep 2019, Casablanca, Morocco. pp.86--91, ⟨10.1109/SYSTOL.2019.8864775⟩. ⟨hal-02415879⟩

Record views


text:
# Homework Help: Nth term of a sequence

1. Sep 26, 2010

### zorro

1. The problem statement, all variables and given/known data
Is this statement correct?

If the nth term of a sequence is a quadratic expression in n, then the sequence is an A.P.

2. Relevant equations

3. The attempt at a solution

Take arbitrary t(n)=n^2-2n-2
I substituted 1,2,3 in the above expression and noted the c.d.
It is not constant.
But the book says that this statement is correct.
Any ideas?

2. Sep 26, 2010

### Staff: Mentor

The book's statement doesn't seem correct to me. The simplest sequence that fits the description is an = {n2} = {1, 4, 9, 16, ..., n2, ...} This is definitely not an arithmetic sequence for the reason you stated - the difference between pairs of successive terms is not constant.

3. Sep 26, 2010

### zorro

Thanks!

4. Sep 26, 2010

### Office_Shredder

Staff Emeritus
If the terms of a sequence are from a quadratic formula, then the difference between the nth and (n-1)st terms form an arithmetic progression.

For example if the sequence is 1,4,9,16,25,...

then the differences are

4-1, 9-4, 16-9, 25-16,...
3,5,7,9,...

That might be what they meant to refer to

5. Sep 26, 2010

### zorro

It is true only in case on n^2 (may be in some other cases too).
But if you take an expression like n^2 +2n-1, then Tn- T(n-1)=2n is not independent of n i.e. it is not a constant.

6. Sep 26, 2010

### Office_Shredder

Staff Emeritus
The sequence whose nth term is 2n is an arithmetic progression

7. Sep 26, 2010

### zorro

You did not get me. In my expression, 2n is the difference between two consecutive terms of the sequence. It is not the nth term.
If you take nth term of the sequence as 2n, it violates the question as it is not a quadratic expression.

8. Sep 26, 2010

### Office_Shredder

Staff Emeritus
What I said is that the sequence whose nth term is the difference between consecutive terms of the quadratic sequence is an arithmetic progression. So for your example, the nth term of the sequence I'm describing is T(n)-T(n-1), and this new sequence is an arithmetic progression

9. Sep 27, 2010

### HallsofIvy

If the sum (form i= 1 to n) of a sequence of numbers is a quadratic function of n, then the sequence is arthmetic.

10. Sep 27, 2010

### zorro

Can you give an example?

11. Sep 27, 2010

### Staff: Mentor

The sum of the first n integers.
$$\sum_{k= 1}^n k = \frac{n(n + 1)}{2}$$

12. Sep 27, 2010

Thanks!


text:
Proving the direct sum of two distinguished triangles is a distinguished triangle

Suppose that we are working in a triangulated category and there are two distinguished triangles $X_i\longrightarrow Y_i\longrightarrow Z_i\longrightarrow X_i[1]$ ($i=1,2$). I am stuck in proving that their direct sum $$X_1\oplus X_2\longrightarrow Y_1\oplus Y_2\longrightarrow Z_1\oplus Z_2\longrightarrow X_1\oplus X_2[1]$$ is a distinguished triangle.

Here is my incomplete proof:

Adopting the axiom $(TR1)$ we obtain a distinguished triangle $$X_1\oplus X_2\longrightarrow Y_1\oplus Y_2\longrightarrow Z\longrightarrow X_1\oplus X_2[1]$$ I wish to show that there is an isomorphism between these two triangles: $$\require{AMScd} \begin{CD} X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z_1\oplus Z_2@>>>X_1\oplus X_2[1]\\ @VV{\mathrm{id}}V@VV{\mathrm{id}}V @VV{\varphi}V @VV{\mathrm{id}}V\\ X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z@>>>X_1\oplus X_2[1]\end{CD}$$ and then $(TR1)$ verifies the statement. Next we contruct the $\varphi$. Applying $(TR3)$ we have a morphism $\varphi_i\colon Z_i\to Z$ ($i=1,2$) such that the diagram below is commutative: $$\require{AMScd} \begin{CD} X_i @>>> Y_i@>>>Z_i@>>>X_i[1]\\ @VVV@VVV @VV{\varphi_i}V @VVV\\ X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z@>>>X_1\oplus X_2[1] \end{CD}$$ where the three verticle arrows are given by $\left(\begin{smallmatrix}\mathrm{id}\\ 0\end{smallmatrix}\right)$ for $i=1$ and $\left(\begin{smallmatrix}0\\ \mathrm{id}\end{smallmatrix}\right)$ for $i=2$. Analogously we have a morphism $\psi_i\colon Z\to Z_i$ ($i=1,2$). Define $\varphi=(\varphi_1,\varphi_2)\colon Z_1\oplus Z_2\to Z$ and $\psi=\left(\begin{smallmatrix}\psi_1\\ \psi_2\end{smallmatrix}\right)\colon Z\to Z_1\oplus Z_2$. Then considering the following commutative diagram $$\require{AMScd} \begin{CD} X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z@>>>X_1\oplus X_2[1]\\ @VV{\mathrm{id}}V@VV{\mathrm{id}}V @VV{\psi}V @VV{\mathrm{id}}V\\ X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z_1\oplus Z_2@>>>X_1\oplus X_2[1]\\ @VV{\mathrm{id}}V@VV{\mathrm{id}}V @VV{\varphi}V @VV{\mathrm{id}}V\\ X_1\oplus X_2@>>> Y_1\oplus Y_2@>>>Z@>>>X_1\oplus X_2[1] \end{CD}$$ since the first and third rows are distinguished triangles, we may see that $\varphi\psi$ is an isomorphism. If moreover $\psi\varphi$ is an isomorphism, then we may conclude that $\varphi$ is an isomorphism and the proof is complete. However I am stuck here, as $$\psi\varphi=\left(\begin{matrix}\psi_1\\\psi_2\end{matrix}\right)(\varphi_1,\varphi_2)=\left(\begin{matrix}\psi_1\varphi_1&\psi_1\varphi_2\\ \psi_2\varphi_1&\psi_2\varphi_2\end{matrix}\right).$$ Similarly, it can be shown that $\psi_1\varphi_1$ and $\psi_2\varphi_2$ are isomorphisms, but it seems that $\psi_2\varphi_1$ and $\psi_1\varphi_2$ have to be $0$ if I want $\psi\varphi$ to admit an inverse.

Any help is appreciated.

• Now I have understood why $\psi\varphi$ is an isomorphism. Thanks for your hint! – josephz Apr 15 '18 at 5:13


text:
# Extracting coefficients from a partial differential equation

Frequently, I come across the following problem: How to rewrite a complicated partial differential equation in a more clear way? I would like to create some order by collecting terms that are equal.

For example, this rather messy equation $0 = \frac{1}{4} l^4 m^4 y F^{(0,1)}(x,y)-6 l^2 M^2 y F^{(0,1)}(x,y)+\Lambda F^{(0,1)}(x,y)$,

can be written more clear as

$0 = \text{newform} = a_{0001} F^{(0,1)}(x,y)+a_{0101} y F^{(0,1)}(x,y)$

with $a_{0101}=\frac{l^4 m^4}{4}-6 l^2 M^2$ and $a_{0001}=\Lambda$.

My question is how to determine the coefficients from a given PDE? To make it more tangible, suppose I have a partial differential equation of f(x,y) that is quadratic in f and has order 6 derivatives in derivatives. It can be written as

$0 = \sum_{i,j,k,l} a_{i j k l} x^i y^{j}F^{(k,l)}(x,y) + \sum_{i,j,k,l,m,n} b_{i j k l m n} x^i y^{j}F^{(k,l)}(x,y)F^{(m,n)}(x,y)$

I want to use Mathematica to

1. Rewrite the PDE into the above form; i.e. replace calculate all the coefficients
2. Do not include terms with that have a zero coefficient in this new form
3. Create a replacement rule for each coefficient.
4. Check that this new form of writing eq is indeed equivalent.

How can I do this? If point 1 - 3 are established, then point 4 is easy: Just check that the following adds up to zero

oldform - newform /. substitutionrule

To give you an idea, these are some of the terms that appear in my PDE. $\small{l^4 m^4 F(x,y) -57 l^4 \Lambda M^2 F(x,y) + l^4 m^4 y F^{(0,1)}(x,y)+ 57 l^4 \Lambda M^2 y F^{(0,1)}(x,y)-24 l^2 M^2 y F^{(0,1)}(x,y)}$ $+ \small{2 M^2 y^8 F^{(0,1)}(x,y) F^{(0,5)}(x,y)-4 M^2 y^8 F^{(2,4)}(x,y)+4 M^2 y^6 F(x,y) F^{(0,4)}(x,y) = 0}$

Here is the InputForm of this 'toy PDE'

eqn = l^4*m^4*F[x, y] - 57*l^4*Lambda*M^2*F[x, y] + l^4*m^4*y*Derivative[0, 1][F][x, y]
- 24*l^2*M^2*y*Derivative[0, 1][F][x, y]
+ 57*l^4*Lambda*M^2*y*Derivative[0, 1][F][x, y]
+ 4*M^2*y^6*F[x, y]*Derivative[0, 4][F][x, y]
+  2*M^2*y^8*Derivative[0, 1][F][x, y]*Derivative[0, 5][F][x, y]
- 4*M^2*y^8*Derivative[2, 4][F][x, y]

And more convenient to copy into a notebook is this form

eqn = l^4*m^4*F[x, y] - 57*l^4*Lambda*M^2*F[x, y] + l^4*m^4*y*Derivative[0, 1][F][x, y] - 4*l^2*M^2*y*Derivative[0, 1][F][x, y] +  57*l^4*Lambda*M^2*y*Derivative[0, 1][F][x, y] + 4*M^2*y^6*F[x, y]*Derivative[0, 4][F][x, y] +  2*M^2*y^8*Derivative[0, 1][F][x,y]*Derivative[0, 5][F][x, y] - 4*M^2*y^8*Derivative[2, 4][F][x, y]

Update:

Pillsy gave a nice solution that does exactly (1)-(4). To see what kind of powers of x, y, $\partial_x$ and $\partial_y$ are contained in the example PDE I use his code, and I add

Total[coeffRules /. {(a[i_, j_, k_, l_] -> coeff_) :>
Subscript[a, i, j, k, l]*x^i*y^j*
Derivative[k, l][F], (b[i_, j_, k_, l_, m_, n_] -> coeff_) :>
Subscript[b, i, j, k, l, m, n]*x^i*y^j*
Derivative[k, l][F] Derivative[m, n][F]}]

This gives $\small{y^8 a_{0,8,2,4} F^{(2,4)}+3 y a_{0,1,0,1} F^{(0,1)}+2 F a_{0,0,0,0}+y^8 b_{0,8,0,1,0,5} F^{(0,1)} F^{(0,5)}+F y^6 b_{0,6,0,0,0,4} F^{(0,4)}}$

Now it is much easer to see what kind of PDE this is. There is one more thing I would like to ask. How can I avoid the double counting of terms that results for example in the factor 3 in $3 y a_{0,1,0,1} F^{(0,1)}$?

This works, I think

% /. {Times[a_Integer, b_] -> b, Times[b_, a_Integer] -> b}

$\small{y^8 a_{0,8,2,4} F^{(2,4)}+y a_{0,1,0,1} F^{(0,1)}+F a_{0,0,0,0}+y^8 b_{0,8,0,1,0,5} F^{(0,1)} F^{(0,5)}+F y^6 b_{0,6,0,0,0,4} F^{(0,4)}}$

-
I see a -1 for my question. What could be the reason for that? How can I improve my question? –  sjdh Feb 22 '12 at 11:45
I added hopefully more readable InputForm of the expression in your eq. Please check if it correctly represents the expression you intended. –  kguler Feb 22 '12 at 11:52
@kguler It seems you have replaced x with 1 by a mistake. –  Artes Feb 22 '12 at 12:16
@Artes, Thank you; just noticed it and fixed it. –  kguler Feb 22 '12 at 12:47
@Artes thank you for the improvements. I made a mistake myself by adding a cubic term in F. I will repair it. –  sjdh Feb 22 '12 at 13:46

So, this is a solvable problem, but my solution is hacky, not cookbook by any means. It involves using Apply to make algebraic expressions into lists of terms and factors, and it relies the optional levelspec arguments for Cases and DeleteCases being infinity.

Also note the use of Block to temporarily suspend the evaluation rules for Derivative, so that I can make things more regular by replacing F[x, y] with Derivative[0, 0][F][x, y]. This is a frequently useful trick when doing algebraic manipulations.

coeffRules = Block[{Derivative},
With[{terms =
Apply[List, eqn /. F[x, y] :> Derivative[0, 0][F][x, y]]},
Cases[
Flatten@Map[CoefficientRules[#, {x, y}] &, terms],

(pows_ -> rhs_) :>
With[{degs =
Flatten[Cases[rhs, Derivative[degs___][F][x, y] :> degs,
Infinity]]},
With[{args = Join[pows, degs]},
If[Length@args == 4, a @@ args, b @@ args]]
-> DeleteCases[rhs, Derivative[___][F][x, y], Infinity]]]]];

Here, coeffRules is just a list of rules for the a and b coefficients you described:

{a[0, 0, 0, 0] -> l^4 m^4, a[0, 0, 0, 0] -> -57 l^4 Lambda M^2,
a[0, 1, 0, 1] -> l^4 m^4, a[0, 1, 0, 1] -> -4 l^2 M^2,
a[0, 1, 0, 1] -> 57 l^4 Lambda M^2, b[0, 6, 0, 0, 0, 4] -> 4 M^2,
b[0, 8, 0, 1, 0, 5] -> 2 M^2, a[0, 8, 2, 4] -> -4 M^2}

You can then verify that this answer is correct like so:

In[17]:= Total[coeffRules /. {
(a[i_, j_, k_, l_] -> coeff_) :>
coeff*x^i*y^j*Derivative[k, l][F][x, y],
(b[i_, j_, k_, l_, m_, n_] -> coeff_) :>
coeff*x^i*y^j*
Derivative[k, l][F][x, y] Derivative[m, n][F][x, y]}] - eqn
Out[17]= 0

Hopefully this is enough to get you started.

EDIT to add: In reply to @sjdh's comment, you can collect all the terms with the same left-hand side using Map, GatherBy and Total:

In[69]:= gatheredRules = Map[
(#[[1, 1]] -> Total@#[[All, -1]]) &,
GatherBy[coeffRules, First]]
Out[69]= {a[0, 0, 0, 0] -> l^4 m^4 - 57 l^4 Lambda M^2,
a[0, 1, 0, 1] -> l^4 m^4 - 4 l^2 M^2 + 57 l^4 Lambda M^2,
b[0, 6, 0, 0, 0, 4] -> 4 M^2, b[0, 8, 0, 1, 0, 5] -> 2 M^2,
a[0, 8, 2, 4] -> -4 M^2}

In order to verify that this matches the original equation, use Simplify:

In[70]:= Simplify[eqn -
Total[gatheredRules /. {
(a[i_, j_, k_, l_] -> coeff_) :>
coeff*x^i*y^j* Derivative[k, l][F][x, y],
(b[i_, j_, k_, l_, m_, n_] -> coeff_) :>
coeff*x^i*y^j*Derivative[k, l][F][x, y] Derivative[m, n][F][x, y]}]]
Out[70]:= 0

The secret to doing these kind of algebraic manipulations in Mathematica is that algebraic expressions are just list structures with some fancy heads, and thus can be manipulated with exactly the same functions (like Map and Cases) as lists. Indeed, as you become more familiar with Mathematica, you'll discover that pretty much everything, from graphics to imported XML to notebooks themselves, can be manipulated this way.

-
Now there are two rules for the same coefficient: a[0, 0, 0, 0] -> l^4 m^4 and a[0, 0, 0, 0] -> -57 l^4 Lambda M^2. How can I replace them by one rule a[0, 0, 0, 0] -> l^4 m^4 + -57 l^4 Lambda M^2 ? –  sjdh Feb 23 '12 at 9:50


text:
xtd.forms - Reference Guide  0.1.0 Modern c++17 library containing classes for creating Windows-based applications that take full advantage of the rich user interface features available in the Microsoft Windows, Apple macOS and Linux like Ubuntu operating system.
xtd::forms::progress_bar Class Reference

Represents a Windows progress bar control. More...

#include <progress_bar.hpp>

Inheritance diagram for xtd::forms::progress_bar:

## Public Member Functions

progress_bar ()
Initializes a new instance of the progress_bar class. More...

drawing::size default_size () const override
Gets the default size of the control. More...

void increment (int32_t value)
Advances the current position of the progress bar by the specified amount. More...

virtual size_t marquee_animation_speed ()
Gets he time period, in milliseconds, that it takes the progress block to scroll across the progress bar. More...

virtual progress_barmarquee_animation_speed (size_t marquee_animation_speed)
Sets the time period, in milliseconds, that it takes the progress block to scroll across the progress bar. More...

virtual int32_t maximum ()
Gets the maximum value of the range of the control. More...

virtual progress_barmaximum (int32_t maximum)
Sets the maximum value of the range of the control. More...

virtual int32_t minimum ()
Gets the minimum value of the range of the control. More...

virtual progress_barminimum (int32_t minimum)
Sets the minimum value of the range of the control. More...

virtual forms::orientation orientation () const
Gets a value indicating the horizontal or vertical orientation of the progress bar. More...

virtual progress_barorientation (forms::orientation orientation)
Sets a value indicating the horizontal or vertical orientation of the progress bar. More...

void perform_step ()
Advances the current position of the progress bar by the amount of the Step property. More...

void set_range (int min_value, int max_value)

virtual int32_t step ()
Gets the amount by which a call to the PerformStep() method increases the current position of the progress bar. More...

virtual progress_barstep (int32_t step)
Sets the amount by which a call to the PerformStep() method increases the current position of the progress bar. More...

virtual progress_bar_style style () const
Gets the manner in which progress should be indicated on the progress bar. More...

virtual progress_barstyle (progress_bar_style style)
Sets the manner in which progress should be indicated on the progress bar. More...

std::string to_string () const override
Returns a string that represents the progress_bar control. More...

virtual int32_t value ()
Gets the current position of the progress bar. More...

virtual progress_barvalue (int32_t value)
Sets the current position of the progress bar. More...

Public Member Functions inherited from xtd::forms::control
control ()
Initializes a new instance of the Control class with default settings. More...

control (const std::string &text)
Initializes a new instance of the control class with specific text. More...

control (const control &parent, const std::string &text)
nitializes a new instance of the control class as a child control, with specific text. More...

control (const std::string &text, int32_t left, int32_t top, int32_t width, int32_t height)
Initializes a new instance of the control class with specific text, size, and location. More...

control (const control &parent, const std::string &text, int32_t left, int32_t top, int32_t width, int32_t height)
Initializes a new instance of the control class as a child control, with specific text, size, and location. More...

virtual anchor_styles anchor () const
Gets the edges of the container to which a control is bound and determines how a control is resized with its parent. More...

virtual controlanchor (anchor_styles anchor)
Gets the edges of the container to which a control is bound and determines how a control is resized with its parent. More...

virtual drawing::point auto_scroll_point () const
Gets where this control is scrolled to in scroll_control_into_view(control). More...

virtual bool auto_size () const
Gets a value that indicates whether the control resizes based on its contents. More...

virtual controlauto_size (bool auto_size)
Sets a value that indicates whether the control resizes based on its contents. More...

virtual drawing::color back_color () const
Gets the background color for the control. More...

virtual controlback_color (const drawing::color &color)
Sets the background color for the control. More...

async_result_invoke begin_invoke (delegate< void(std::vector< std::any >)> value, const std::vector< std::any > &args)

async_result_invoke begin_invoke (delegate< void()> value)

virtual int32_t bottom () const
Gets the distance, in pixels, between the bottom edge of the control and the top edge of its container's client area. More...

virtual drawing::rectangle bounds () const
Gets the size and location of the control including its nonclient elements, in pixels, relative to the parent control. More...

virtual controlbounds (const drawing::rectangle &bounds)
Sets the size and location of the control including its nonclient elements, in pixels, relative to the parent control. More...

virtual bool can_focus () const
Gets a value indicating whether the control can receive focus. More...

bool can_raise_events () const override
Determines if events can be raised on the control. More...

virtual bool can_select () const
Gets a value indicating whether the control can be selected. More...

virtual const drawing::rectangleclient_rectangle () const
Gets the rectangle that represents the client area of the control. More...

virtual const drawing::sizeclient_size () const
Gets the height and width of the client area of the control. More...

virtual controlclient_size (const drawing::size &client_size)
Sets the height and width of the client area of the control. More...

virtual std::string compagny_name () const
Gets the name of the company or creator of the application containing the control. More...

virtual control_collectioncontrols ()
Gets the collection of controls contained within the control. More...

virtual const control_collectioncontrols () const
Gets the collection of controls contained within the control. More...

void create_control ()

drawing::graphics create_graphics () const

virtual void create_handle ()

virtual bool created ()
Gets a value indicating whether the control has been created. More...

virtual forms::cursor cursor () const

virtual controlcursor (const forms::cursor &cursor)

virtual drawing::color default_back_color () const
Gets the default background color of the control. More...

virtual forms::cursor default_cursor () const

virtual drawing::font default_font () const

virtual drawing::color default_fore_color () const

void destroy_control ()

virtual void destroy_handle ()

virtual drawing::rectangle display_rectangle () const

virtual dock_style dock () const
Gets or sets which control borders are docked to its parent control and determines how a control is resized with its parent. More...

virtual controldock (dock_style dock)

virtual bool double_buffered () const

virtual controldouble_buffered (bool double_buffered)

virtual bool enabled () const

virtual controlenabled (bool enabled)

void end_invoke (async_result_invoke async)

bool focus ()

virtual bool focused () const

virtual drawing::font font () const

virtual controlfont (const drawing::font &font)

virtual drawing::color fore_color () const

virtual controlfore_color (const drawing::color &color)

intptr_t handle () const override
Gets the handle to the window represented by the implementer. More...

virtual int32_t height () const

virtual controlheight (int32_t height)

virtual void hide ()

virtual void invalidate () const

virtual void invalidate (bool invalidate_children) const

virtual void invalidate (const drawing::rectangle &rect) const

virtual void invalidate (const drawing::rectangle &rect, bool invalidate_children) const

void invoke (delegate< void(std::vector< std::any >)> value, const std::vector< std::any > &args)

void invoke (delegate< void()> value)

bool is_handle_created () const

virtual int32_t left () const

virtual controlleft (int32_t left)

virtual drawing::point location () const

virtual controllocation (const drawing::point &location)

virtual const std::string & name () const

virtual controlname (const std::string &name)

virtual std::optional< control_refparent () const

virtual controlparent (const control &parent)

virtual controlparent (std::nullptr_t)

void perform_layout ()
Forces the control to apply layout logic to all its child controls. More...

xtd::drawing::point point_to_client (const xtd::drawing::point &p)

xtd::drawing::point point_to_screen (const xtd::drawing::point &p)

virtual std::string product_name () const

bool recreating_handle () const

virtual void refresh () const

void resume_layout ()
Resumes usual layout logic. More...

void resume_layout (bool perform_layout)
Resumes usual layout logic, optionally forcing an immediate layout of pending layout requests. More...

virtual int32_t right () const

intptr_t send_message (intptr_t hwnd, int32_t msg, intptr_t wparam, intptr_t lparam) const

void set_auto_size_mode (auto_size_mode auto_size_mode)

void set_bounds (int32_t x, int32_t y, int32_t width, int32_t height)

void set_bounds (int32_t x, int32_t y, int32_t width, int32_t height, bounds_specified specified)

virtual void show ()

virtual drawing::size size () const

virtual controlsize (const drawing::size &size)

void suspend_layout ()
Temporarily suspends the layout logic for the control. More...

virtual std::any tag () const
Gets the object that contains data about the control. More...

virtual controltag (std::any tag)
Sets the object that contains data about the control. More...

virtual const std::string & text () const

virtual controltext (const std::string &text)

virtual int32_t top () const

virtual controltop (int32_t top)

virtual std::optional< control_reftop_level_control () const

virtual void update () const

virtual bool visible () const

virtual controlvisible (bool visible)

virtual int32_t width () const

virtual controlwidth (int32_t width)

## Protected Member Functions

forms::create_params create_params () const override
Gets the required creation parameters when the control handle is created. More...

void on_handle_created (const event_args &e) override
Overrides control::on_handle_created(const event_args&) More...

Protected Member Functions inherited from xtd::forms::control
virtual void def_wnd_proc (message &message)

bool get_style (control_styles flag) const
Retrieves the value of the specified control style bit for the control. More...

virtual drawing::size measure_control () const
Measure this control. More...

drawing::size measure_text () const

virtual void on_auto_size_changed (const event_args &e)

virtual void on_back_color_changed (const event_args &e)

virtual void on_click (const event_args &e)

virtual void on_client_size_changed (const event_args &e)

virtual void on_control_added (const control_event_args &e)

virtual void on_control_removed (const control_event_args &e)

virtual void on_create_control ()

virtual void on_cursor_changed (const event_args &e)

virtual void on_dock_changed (const event_args &e)

virtual void on_double_click (const event_args &e)

virtual void on_enabled_changed (const event_args &e)

virtual void on_font_changed (const event_args &e)

virtual void on_fore_color_changed (const event_args &e)

virtual void on_got_focus (const event_args &e)

virtual void on_handle_destroyed (const event_args &e)

virtual void on_key_down (key_event_args &e)

virtual void on_key_press (key_press_event_args &e)

virtual void on_key_up (key_event_args &e)

virtual void on_layout (const event_args &e)

virtual void on_location_changed (const event_args &e)

virtual void on_lost_focus (const event_args &e)

virtual void on_mouse_click (const mouse_event_args &e)

virtual void on_mouse_double_click (const mouse_event_args &e)

virtual void on_mouse_down (const mouse_event_args &e)

virtual void on_mouse_enter (const event_args &e)

virtual void on_mouse_horizontal_wheel (const mouse_event_args &e)

virtual void on_mouse_leave (const event_args &e)

virtual void on_mouse_move (const mouse_event_args &e)

virtual void on_mouse_up (const mouse_event_args &e)

virtual void on_mouse_wheel (const mouse_event_args &e)

virtual void on_paint (paint_event_args &e)

virtual void on_parent_back_color_changed (const event_args &e)

virtual void on_parent_changed (const event_args &e)

virtual void on_parent_cursor_changed (const event_args &e)

virtual void on_parent_font_changed (const event_args &e)

virtual void on_parent_fore_color_changed (const event_args &e)

virtual void on_resize (const event_args &e)

virtual void on_size_changed (const event_args &e)

virtual void on_text_changed (const event_args &e)

virtual void on_visible_changed (const event_args &e)

virtual void recreate_handle ()

virtual void set_bounds_core (int32_t x, int32_t y, int32_t width, int32_t height, bounds_specified specified)
Performs the work of setting the specified bounds of this control. More...

virtual void set_client_size_core (int32_t width, int32_t height)
Sets the size of the client area of the control. More...

void set_style (control_styles flag, bool value)
Sets a specified control_styles flag to either true or false. More...

virtual void wnd_proc (message &m)
Processes Windows messages. More...

Protected Member Functions inherited from xtd::forms::component
bool design_mode () const
Gets a value that indicates whether the component is currently in design mode. More...

Public Types inherited from xtd::forms::control
using control_collection = layout::arranged_element_collection< control_ref >
Represents a collection of controls. More...

Static Public Member Functions inherited from xtd::forms::control
template<typename control_t >
static std::unique_ptr< control_t > create (const drawing::point &location={-1, -1}, const drawing::size &size={-1, -1}, const drawing::color &back_color=drawing::color::empty, const drawing::color &fore_color=drawing::color::empty)

template<typename control_t >
static std::unique_ptr< control_t > create (const control &parent, const drawing::point &location={-1, -1}, const drawing::size &size={-1, -1}, const drawing::color &back_color=drawing::color::empty, const drawing::color &fore_color=drawing::color::empty)

template<typename control_t >
static std::unique_ptr< control_t > create (const std::string &text, const drawing::point &location={-1, -1}, const drawing::size &size={-1, -1}, const drawing::color &back_color=drawing::color::empty, const drawing::color &fore_color=drawing::color::empty)

template<typename control_t >
static std::unique_ptr< control_t > create (const control &parent, const std::string &text, const drawing::point &location={-1, -1}, const drawing::size &size={-1, -1}, const drawing::color &back_color=drawing::color::empty, const drawing::color &fore_color=drawing::color::empty)

static std::optional< control_reffrom_child_handle (intptr_t handle)

static std::optional< control_reffrom_handle (intptr_t handle)

static forms::mouse_buttons mouse_buttons ()

Public Attributes inherited from xtd::forms::control
event< control, event_handler< control & > > auto_size_changed

event< control, event_handler< control & > > back_color_changed

event< control, event_handler< control & > > click

event< control, event_handler< control & > > client_size_changed

event< control, control_event_handler< control & > > control_added

event< control, control_event_handler< control & > > control_removed

event< control, event_handler< control & > > cursor_changed

event< control, event_handler< control & > > dock_changed

event< control, event_handler< control & > > double_click

event< control, event_handler< control & > > enabled_changed

event< control, event_handler< control & > > font_changed

event< control, event_handler< control & > > fore_color_changed

event< control, event_handler< control & > > got_focus

event< control, event_handler< control & > > handle_created

event< control, event_handler< control & > > handle_destroyed

event< control, key_event_handler< control & > > key_down

event< control, key_press_event_handler< control & > > key_press

event< control, key_event_handler< control & > > key_up

event< control, event_handler< control & > > layout
Occurs when a control should reposition its child controls. More...

event< control, event_handler< control & > > location_changed

event< control, event_handler< control & > > lost_focus

event< control, mouse_event_handler< control & > > mouse_click

event< control, mouse_event_handler< control & > > mouse_double_click

event< control, mouse_event_handler< control & > > mouse_down

event< control, event_handler< control & > > mouse_enter

event< control, mouse_event_handler< control & > > mouse_horizontal_wheel

event< control, event_handler< control & > > mouse_leave

event< control, mouse_event_handler< control & > > mouse_move

event< control, mouse_event_handler< control & > > mouse_up

event< control, mouse_event_handler< control & > > mouse_wheel

event< control, paint_event_handler< control & > > paint

event< control, event_handler< control & > > parent_changed

event< control, event_handler< control & > > resize

event< control, event_handler< control & > > size_changed

event< control, event_handler< control & > > text_changed

event< control, event_handler< control & > > visible_changed

## Detailed Description

Represents a Windows progress bar control.

Remarks
A ProgressBar control visually indicates the progress of a lengthy operation in one of three styles:
• Segmented blocks that increase in steps from left to right.
• A continuous bar that fills in from left to right.
• A block that scrolls across a ProgressBar in a marquee fashion.
The style property determines the style of progress_bar that is displayed. Note that the progress_bar control can oriented horizontally or verticaly. The progress_bar control is typically used when an application performs tasks such as copying files or printing documents. Users of an application might consider an application unresponsive if there is no visual cue. By using the progress_bar in your application, you alert the user that the application is performing a lengthy task and that the application is still responding.
The maximum and minimum properties define the range of values to represent the progress of a task. The minimum property is typically set to a value of 0, and the maximum property is typically set to a value indicating the completion of a task. For example, to properly display the progress when copying a group of files, the maximum property could be set to the total number of files to be copied.
The value property represents the progress that the application has made toward completing the operation. The value displayed by the progress_bar only approximates the current value of the value property. Based on the size of the progress_bar, the value property determines when to display the next block or increase the size of the bar.
There are a number of ways to modify the value displayed by the progress_bar other than changing the value property directly. You can use the step property to specify a specific value to increment the Value property by, and then call the perform_step method to increment the value. To vary the increment value, you can use the increment method and specify a value with which to increment the value property.
Note
fore_color and back_color changes for the progress_bar will not be honored.
Example
The following code example demonstrate the use of progress_bar control.
#include <xtd/xtd.forms>
using namespace xtd::forms;
namespace examples {
class form1 : public form {
public:
form1() {
text("Progress bar example");
client_size({300, 300});
progress_bar1.parent(*this);
progress_bar1.location({50, 50});
progress_bar1.width(200);
progress_bar2.parent(*this);
progress_bar2.location({50, 80});
progress_bar2.value(50);
progress_bar2.width(200);
progress_bar3.parent(*this);
progress_bar3.location({50, 110});
progress_bar3.maximum(300);
progress_bar3.increment(300);
progress_bar3.width(200);
progress_bar4.parent(*this);
progress_bar4.location({50, 140});
progress_bar4.step(1);
progress_bar4.width(200);
progress_bar5.parent(*this);
progress_bar5.location({50, 170});
progress_bar5.maximum(200);
progress_bar5.minimum(100);
progress_bar5.style(progress_bar_style::marquee);
progress_bar5.width(200);
timer1.interval(50);
timer1.tick += [&] {
progress_bar4.value(progress_bar4.value() < progress_bar4.maximum() ? progress_bar4.value() + 1 : progress_bar4.minimum());
};
timer1.enabled(true);
}
private:
timer timer1;
progress_bar progress_bar1;
progress_bar progress_bar2;
progress_bar progress_bar3;
progress_bar progress_bar4;
progress_bar progress_bar5;
};
}
int main() {
application::run(examples::form1());
}

## § progress_bar()

 xtd::forms::progress_bar::progress_bar ( )

Initializes a new instance of the progress_bar class.

Remarks
By default, the minimum property is set to 0, the maximum property is set to 100, and the step property is set to 10.

## § create_params()

 forms::create_params xtd::forms::progress_bar::create_params ( ) const
overrideprotectedvirtual

Gets the required creation parameters when the control handle is created.

Returns
A create_params that contains the required creation parameters when the handle to the control is created.

Reimplemented from xtd::forms::control.

## § default_size()

 drawing::size xtd::forms::progress_bar::default_size ( ) const
inlineoverridevirtual

Gets the default size of the control.

Returns
A size that represents the default size of the control.

Reimplemented from xtd::forms::control.

## § increment()

 void xtd::forms::progress_bar::increment ( int32_t value )
inline

Advances the current position of the progress bar by the specified amount.

Parameters
 value The amount by which to increment the progress bar's current position.
Remarks
The increment method enables you to increment the value of the progress bar by a specific amount. This method of incrementing the progress bar is similar to using the step property with the perform_step method. The value property specifies the current position of the progress_bar. If, after calling the increment method, the value property is greater than the value of the maximum property, the value property remains at the value of the maximum property. If, after calling the increment method with a negative value specified in the value parameter, the Value property is less than the value of the minimum property, the value property remains at the value of the minimum property.
Because a progress_bar object whose style is set to marquee displays a continuously scrolling bar instead of its value, calling increment is unnecessary and will do nothing.

## § marquee_animation_speed() [1/2]

 virtual size_t xtd::forms::progress_bar::marquee_animation_speed ( )
inlinevirtual

Gets he time period, in milliseconds, that it takes the progress block to scroll across the progress bar.

Returns
The time period, in milliseconds, that it takes the progress block to scroll across the progress bar.
Remarks
A marquee-style progress indicator does not display progress; instead it indicates that an operation is occurring by moving the progress block across the progress bar.
Since the marquee animation speed is a time period, setting the value to a higher number results in a slower speed and a lower number results in a faster speed.

## § marquee_animation_speed() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::marquee_animation_speed ( size_t marquee_animation_speed )
virtual

Sets the time period, in milliseconds, that it takes the progress block to scroll across the progress bar.

Parameters
 marquee_animation_speed The time period, in milliseconds, that it takes the progress block to scroll across the progress bar.
Remarks
A marquee-style progress indicator does not display progress; instead it indicates that an operation is occurring by moving the progress block across the progress bar.
Since the marquee animation speed is a time period, setting the value to a higher number results in a slower speed and a lower number results in a faster speed.

## § maximum() [1/2]

 virtual int32_t xtd::forms::progress_bar::maximum ( )
inlinevirtual

Gets the maximum value of the range of the control.

Returns
The maximum value of the range. The default is 100.
Remarks
This property specifies the upper limit of the value property. When the value of the maximum property is changed, the progress_bar control is redrawn to reflect the new range of the control. When the value of the value property is equal to the value of the maximum property, the progress bar is completely filled.
You can use this property to specify a value to which the value property must be set (by setting the value property or using the increment or perform_step methods) to indicate that an operation is complete. For example, you can set the value of the maximum property to the total number of files in a file copy operation. Each time a file is copied, the value property can be increased by 1 until the total number of files is copied. At that point, the progress bar would be completely filled.

## § maximum() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::maximum ( int32_t maximum )
virtual

Sets the maximum value of the range of the control.

Parameters
 maximum The maximum value of the range. The default is 100.
Remarks
This property specifies the upper limit of the value property. When the value of the maximum property is changed, the progress_bar control is redrawn to reflect the new range of the control. When the value of the value property is equal to the value of the maximum property, the progress bar is completely filled.
You can use this property to specify a value to which the value property must be set (by setting the value property or using the increment or perform_step methods) to indicate that an operation is complete. For example, you can set the value of the maximum property to the total number of files in a file copy operation. Each time a file is copied, the value property can be increased by 1 until the total number of files is copied. At that point, the progress bar would be completely filled.

## § minimum() [1/2]

 virtual int32_t xtd::forms::progress_bar::minimum ( )
inlinevirtual

Gets the minimum value of the range of the control.

Returns
The minimum value of the range. The default is 0.
Remarks
This property specifies the lower limit of the value property. When the value of the minimum property is changed, the progress_bar control is redrawn to reflect the new range of the control. When the value of the value property is equal to the value of the minimum property, the progress bar is empty. To change the value of the progress bar, use the step property with the perform_step method, use the increment method, or set the value of the value property directly.

## § minimum() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::minimum ( int32_t minimum )
virtual

Sets the minimum value of the range of the control.

Parameters
 minimum The minimum value of the range. The default is 0.
Remarks
This property specifies the lower limit of the value property. When the value of the minimum property is changed, the progress_bar control is redrawn to reflect the new range of the control. When the value of the value property is equal to the value of the minimum property, the progress bar is empty. To change the value of the progress bar, use the step property with the perform_step method, use the increment method, or set the value of the value property directly.

## § on_handle_created()

 void xtd::forms::progress_bar::on_handle_created ( const event_args & e )
overrideprotectedvirtual

Overrides control::on_handle_created(const event_args&)

Parameters
 e A EventArgs that contains the event data.

Reimplemented from xtd::forms::control.

## § orientation() [1/2]

 virtual forms::orientation xtd::forms::progress_bar::orientation ( ) const
inlinevirtual

Gets a value indicating the horizontal or vertical orientation of the progress bar.

Returns
One of the orientation values.
Remarks
When the orientation property is set to orientation::horizontal, the progress moves from left to right as the value increases. When the orientation property is set to orientation::vertical, the progress moves from bottom to top as the value increases.

## § orientation() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::orientation ( forms::orientation orientation )
virtual

Sets a value indicating the horizontal or vertical orientation of the progress bar.

Parameters
 orientation One of the orientation values.
Remarks
When the orientation property is set to orientation::horizontal, the progress moves from left to right as the value increases. When the orientation property is set to orientation::vertical, the progress moves from bottom to top as the value increases.

## § perform_step()

 void xtd::forms::progress_bar::perform_step ( )
inline

Advances the current position of the progress bar by the amount of the Step property.

Remarks
The perform_step method increments the value of the progress bar by the amount specified by the step property. You can use the Step property to specify the amount that each completed task in an operation changes the value of the progress bar. For example, if you are copying a group of files, you might want to set the value of the step property to 1 and the value of the maximum property to the total number of files to copy. When each file is copied, you can call the perform_step method to increment the progress bar by the value of the step property. If you want to have more flexible control of the value of the progress bar, you can use the increment method or set the value of the value property directly.

## § step() [1/2]

 virtual int32_t xtd::forms::progress_bar::step ( )
inlinevirtual

Gets the amount by which a call to the PerformStep() method increases the current position of the progress bar.

Returns
The amount by which to increment the progress bar with each call to the perform_step() method. The default is 10.
Remarks
You can use the step property to specify the amount that each completed task in an operation changes the value of the progress bar. For example, if you are copying a group of files, you might want to set the value of the step property to 1 and the value of the maximum property to the total number of files to copy. When each file is copied, you can call the perform_step method to increment the progress bar by the value of the step property. If you want to have more flexible control of the value of the progress bar, you can use the increment method or set the value of the value property directly.

## § step() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::step ( int32_t step )
virtual

Sets the amount by which a call to the PerformStep() method increases the current position of the progress bar.

Parameters
 step The amount by which to increment the progress bar with each call to the perform_step() method. The default is 10.
Remarks
You can use the step property to specify the amount that each completed task in an operation changes the value of the progress bar. For example, if you are copying a group of files, you might want to set the value of the step property to 1 and the value of the maximum property to the total number of files to copy. When each file is copied, you can call the perform_step method to increment the progress bar by the value of the step property. If you want to have more flexible control of the value of the progress bar, you can use the increment method or set the value of the value property directly.

## § style() [1/2]

 virtual progress_bar_style xtd::forms::progress_bar::style ( ) const
inlinevirtual

Gets the manner in which progress should be indicated on the progress bar.

Returns
One of the progress_bar_style values. The default is blocks
Remarks
You can use the marquee style when you need to indicate progress is being made, without indicating the quantity of progress. The marquee style is honored only when visual styles are enabled. The continuous style is honored when visual styles are not enabled.

## § style() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::style ( progress_bar_style style )
virtual

Sets the manner in which progress should be indicated on the progress bar.

Parameters
 style One of the progress_bar_style values. The default is blocks
Remarks
You can use the marquee style when you need to indicate progress is being made, without indicating the quantity of progress. The marquee style is honored only when visual styles are enabled. The continuous style is honored when visual styles are not enabled.

## § to_string()

 std::string xtd::forms::progress_bar::to_string ( ) const
inlineoverridevirtual

Returns a string that represents the progress_bar control.

Returns
A string that represents the current progress_bar.
Remarks
The return string includes the type and the values for the minimum, maximum, and value properties.

Reimplemented from xtd::forms::control.

## § value() [1/2]

 virtual int32_t xtd::forms::progress_bar::value ( )
inlinevirtual

Gets the current position of the progress bar.

Returns
The position within the range of the progress bar. The default is 0.
Remarks
If the value specified is greater than the value of the maximum property, the value property is set to maximum.
If the value specified is less than the value of the minimum property, the value property is set to minimum.
The minimum and maximum values of the value property are specified by the minimum and maximum properties. This property enables you to increment or decrement the value of the progress bar directly. To perform consistent increases in the value of the progress_bar control you can use the step property with the perform_step method. To increase the progress bar value by varying amounts, use the increment method.

## § value() [2/2]

 virtual progress_bar& xtd::forms::progress_bar::value ( int32_t value )
virtual

Sets the current position of the progress bar.

Parameters
 value The position within the range of the progress bar. The default is 0.
Remarks
If the value specified is greater than the value of the maximum property, the value property is set to maximum.
If the value specified is less than the value of the minimum property, the value property is set to minimum.
The minimum and maximum values of the value property are specified by the minimum and maximum properties. This property enables you to increment or decrement the value of the progress bar directly. To perform consistent increases in the value of the progress_bar control you can use the step property with the perform_step method. To increase the progress bar value by varying amounts, use the increment method.

The documentation for this class was generated from the following file:


text:
nLab (infinity,1)-Kan extension

under construction

Context

$(\infty,1)$-Category theory

(∞,1)-category theory

Models

Limits and colimits

limits and colimits

Contents

Idea

The notion if $(\infty,1)$-Kan extension is the generalization of the notion of Kan extension from category theory to (∞,1)-category theory.

Definition

General

Independent of any models or concrete realizations chosen, the notion of $(\infty,1)$-Kan extension is intrinsically determined from just the notions of

In terms of these, for $f : C \to C'$ any (∞,1)-functor and any (∞,1)-category $A$, there is an induced $(\infty,1)$-functor $f^* : Func_{(\infty,1)}(C',A) \to Func_{(\infty,1)}(C,A)$.

The left $(\infty,1)$-Kan extension functor is the left adjoint (∞,1)-functor to $f^*$.

The right $(\infty,1)$-Kan extension functor is the right adjoint (∞,1)-functor to $f^*$.

Given different incarnations of or models for the notion of (∞,1)-category, there are accordingly different incarnations and models of this general abstract prescription.

Properties

Pointwise (strong)

$\infty$-Kan extensions as above are pointwise/strong. That is in fact the very content of (LurieHTT, def. 4.3.2.2, 4.3.3.2).

left/right $\infty$-Kan extension is left/right adjoint (∞,1)-functor to restriction. (LurieHTT, prop. 4.3.3.7)

• Kan extension

• $(\infty,1)$-Kan extension

References

A general concept of $(\infty,1)$-Kan extensions in terms of quasi-categories are discussed in section 4.3 of

For simplicially enriched categories and model categories a discussion is in section A.3.3 there.

Coinciding left/righ (ambidextrous) $\infty$-Kan extensions along maps of ∞-groupoids are discussed in

Pointwise homotopy Kan extensions are discussed in


text:
## Random Fatigue Limit

Figure 1: s-N relationship for Ti-6Al-4V illustrating random fatigue limit behavior.

In the LCF region (upper left, $$N<10^7$$ cycles) it has long been sound engineering practice to read the curve at some operating level (stress, strain, SWT, or similar metric) and count cycles until the lower bound cycle count was exceed and the component would be retired from further service. With the recognition of the random fatigue limit comes the necessary, but unpopular, realization that similar cycle counting in the HCF region of the s-N curve (lower right, $$N \gg 10^7$$ cycles) isn’t feasible because the behavior of a given specimen, or component, depends on its own unique fatigue limit. For example, reading the curve at SWT=50 shows the behavior of some specimens with lower individual fatigue limits to have failed, while others, tested at the same stress level, ran out, producing censored observations, where actual failure time is unknown other than being greater than the censoring cycle count. Counting the cycles exhausted at SWT=50, then, would depend on knowing the individual RFL, which of course, being random, is unknowable a priori. Thus what is sound engineering practice in the LCF region is not feasible for HCF. This is only a modest setback, however because the RFL model proves a method of estimating the probability of failure, even if the cycle count is intractable.

#### The RFL Model is a Precursor to a “Probabilistic Goodman” Diagram.

The next step is to consolidate the s-N behavior described by the RFL model and illustrated in Figure 1, into a “Probabilistic Goodman”(1) diagram. It should be recognized that while this step will be a welcome advance, it will not be the ultimate destination. There is much more to the behavior of a material responding to HCF than can be described using only the mean stress, alternating stress measure of the Goodman approach.

#### Summary:

HCF data are characterized by more than just runouts (described elsewhere). Tests of $$10^7, 10^8$$ and
even $$10^9$$ cycles often display an asymptotic behavior, illustrated in figure 1.

Heretofore analyzing these data produced unsatisfactory results as the usual assumption of uniform variance (data scatter), over the many orders of magnitude in fatigue life, proved untenable. Attempts to deal with this ballooning variance by various variance-stabilizing transformations were similarly unsuccessful, as were attempts to model the behavior with a single-valued fatigue limit asymptote.

The difficulty is that the fatigue limit exhibited in a given s-N test is not a constant, as had been previously thought, but rather a random variable, just as the individual fatigue life of a specimen tested at a given stress is random. While this may seem self-evident in retrospect, it was only very recently recognized and described mathematically.

Alas, the devil IS in the details. While understanding the idea of a random fatigue limit is simple enough, estimating the parameters of such a model is a challenging task indeed.

Professor William Q. Meeker has graciously made his RSplida software, including the R codes used in his excellent book (below), available to all. To get the software visit his website:
http://www.public.iastate.edu/~wqmeeker/

#### Footnote:

$$^{(1)}$$ Goodman diagrams have been called Goodman diagrams for over a hundred years since Goodman popularized the idea of plotting constant life lines as a function of alternating and mean stresses. Recently revisionists have taken to referring to these curves as Haigh diagrams because Goodman was not the first to use such curves; this now being attributed to Haigh. This presents an interesting example of Stigler’s Law of Eponymy, which states that: “No scientific discovery is named after its original discoverer.” Stigler notes that he, himself, didn’t discover this phenomenon, and thus feels quite justified in applying his name to it.

#### References:

1. Pascual and Meeker, “Estimating Fatigue Curves with the Random Fatigue-Limit Model,” TECHNOMETRICS Vol. 41, No. 4, p.277-302, November 1999
2. Stephen M. Stigler, Statistics on the Table, a history of statistical concepts and methods, Harvard University Press, Cambridge, MA, 1999, p277-290.
3. Meeker and Escobar, Statistical Methods for Reliability Data, Wiley, 1998. This is a wonderful book. If your bookseller is out of stock, you can get it quickly from amazon.com.


text:
# Finding greatest common factor

What is the greatest common factor of: $$\underset{m}{\underbrace{111\dots111}}$$ and $$\underset{n}{\underbrace{111\dots111}}.$$ I am guessing that it involves using Euclidean algorithm (matrix-method).

-

Hint $\$ The Euclidean algorithm computing their GCD mimics that for $\rm\: gcd(m,n)\:$.

Put $\rm\ 1^{[n]}\: :=\ 1\cdots 1\ \ (n\ 1's)\ =\ (10^n-1)/9\:.\$ Then your gcd is $\rm\ gcd(1^{[m]},\:1^{[n]})$

But $\rm\ 1^{[m]}-1^{[n]}\ =\ 1^{[m-n]}\cdot 10^n\ \ \$ [e.g. $\rm\ 11111 - 111\ =\ 11000\ =\ 1^{[2]}\cdot 10^3\$]

and $\rm\ gcd(10,1^{[n]}) = 1\$ since $\rm\ 9\cdot 1^{[n]}\ =\ 10^n-1\$ and $\rm\ \rm\ gcd(10,\:10^n-1) = 1\:$.

Thus, choosing notation so that $\rm\:m\ge n\:,\$ and applying the above observations we have

$\rm\quad\ \ \ gcd(1^{[m]},1^{[n]})\ =\ gcd(1^{[m]}-1^{[n]},\:1^{[n]})\ =\ gcd(1^{[m-n]}\cdot 10^n,\:1^{[n]})\ =\ gcd(1^{[m-n]}\:,\:1^{[n]})$

So $\rm\ \ gcd(1^{[m]},1^{[n]})\ =\ gcd(1^{[m-n]}\:,\:1^{[n]})\$ just like $\rm\ gcd(m,n)\ =\ gcd(m-n,n)\:$.

So $\rm\ \ gcd(1^{[m]},1^{[n]})\ =\ 1^{[gcd(m,n)]}\$ follows from the above by a simple induction.

Remark $\$ For full proofs and more see the answers to this prior question, which prove

$$\rm \gcd(a^n\! - 1,\, a^m\! - 1)\ =\ a^{\gcd(n, m)}\! - 1$$

Your result follows by specializing $\rm\ a = 10,\$ then cancelling $\rm\:a\!-\!1 = 9.$

-

Hint: Remember that $GCF(a,b)=GCF(a-b,b)$ and $GCF(c,b)=1 \implies GCF(ac,b)=GCF(a,b)$. To be specific, assume $m \gt n$. Think about subtracting $n\ 1$'s from $m\ 1$'s. Then you can divide the difference by $10^n$ to get $GCF(m-n \ 1$'s$,n\ 1$'s$)$. Continue.

-


text:
# Text input field panel add-on blender 2.8

I am integrating a database in Blender. For this, I want to use text input fields. But at the moment I can't edit these fields. And I can't figure out whats wrong with it.

The code used for this is:

class SelectByQuery(bpy.types.Operator):

bl_idname = "object.select_by_query"
bl_label = "Selection of object by query"

query: bpy.props.StringProperty(default="testtest")

def execute(self, context):
try:
bpy.data.objects[self.query].select_set(True)
return {'FINISHED'}
except:
print('Could not select object')
return {'CANCELLED'}
class PanelThree(View3DPanel, bpy.types.Panel):
bl_idname = "VIEW3D_PT_SelectionQuery"
bl_label = "Selection Query"

def draw(self, context):
layout = self.layout

col = layout.column(align=True)
rowsub = col.row(align=True)

rowsub.label(text="SELECT *")

rowsub = col.row(align=True)
col2 = layout.column()
rowsub2 = col2.row()
props = rowsub2.operator("object.select_by_query", text="Query")
rowsub.prop(props, "query", text="")

I was able to add a default text and print the text by editting the SelectByQuery but I can't seem to make it that the user can edit the text.

• Not at my PC, the problem as far as I can tell is that you didn't declare your property in the right way not sure through it has been a while since I coded in Python with the blender api, I might take a look later shouldn't be to difficult to get it working. – Syler May 13 '19 at 16:06
• Check out bpy.ops.object.select_pattern() It pops up a modal dialog with input box for the pattern. – batFINGER May 13 '19 at 17:48
• @batFINGER It is connected with a database in the background the SelectByQuery is not done yet this was just to get the UI working – Gijs Schrijver May 13 '19 at 21:18
• @Syler if you could take a look that would be a great help already – Gijs Schrijver May 14 '19 at 10:56
• What you are trying to re have operator prop in general panel UI does not work, and has been answered before. Need a string property on say the window manager, and pass its value to the operator properties. IMO would do this with a string property and associated update method. The select pattern operator, or other registered operators set operator properties in the modal popup, or the active operator popup (or panel in < 2.8), where the operator is passed as self in the layout.prop(self, "foo"), the operator properties object from prop = layout.operator("foo.bar") – batFINGER May 14 '19 at 14:27

As i mentioned you declared the prop in the wrong way here is an example of how you could do what you want.

just copy and paste the code in the blender script editor and click the register checkbox (im not sure if you have to do that) then click run script, now if you go to the object tab in the properties area at the bottom you should have a Selection query panel, you can type bpy.context.scene.QueryProps.query in the console that should give you the current value for the query property, changing the property in the panel will change the property value to what you typed in.

import bpy

class QueryProps(bpy.types.PropertyGroup):

query: bpy.props.StringProperty(default="testtest")

class SelectByQuery(bpy.types.Operator):

bl_idname = "object.select_by_query"
bl_label = "Selection of object by query"

def execute(self, context):
try:
bpy.data.objects[self.query].select_set(True)
return {'FINISHED'}
except:
print('Could not select object')
return {'CANCELLED'}

class PanelThree(bpy.types.Panel):
bl_idname = "VIEW3D_PT_SelectionQuery"
bl_label = "Selection Query"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'

def draw(self, context):
props = bpy.context.scene.QueryProps
layout = self.layout

col = layout.column(align=True)
rowsub = col.row(align=True)

rowsub.label(text="SELECT *")

rowsub = col.row(align=True)
col2 = layout.column()
rowsub2 = col2.row()
rowsub2.operator("object.select_by_query", text="Query")
rowsub.prop(props, "query", text="")

classes = (
QueryProps,
SelectByQuery,
PanelThree
)

def register():

from bpy.utils import register_class
for cls in classes:
register_class(cls)
# Register QueryProps
bpy.types.Scene.QueryProps = bpy.props.PointerProperty(type=QueryProps)

def unregister():

from bpy.utils import unregister_class
for cls in classes:
unregister_class(cls)
# \$ delete QueryProps on unregister
del(bpy.types.Scene.QueryProps)

if __name__ == "__main__":
register()

also don't forget to mark the question as answered if it answered your question, if you have any question about the answer feel free to write a comment.