1 | initial version |

You should tell us different approaches, and what was wrong with them. I am not sure whether you ask about defining a function or plotting it. Here would be my direct approach, without more informations about your needs. To define a periodic function, use the `.frac()`

method of real numbers. In your case:

```
sage: f = lambda x: 1 if RR(x).frac() < 1/2 else 0
sage: plot(f,0,4)
```

If you do not like the vertical line at the discontinuities, you can look at the options of the `plot()`

function:

```
sage: plot?
```

In your case, you can try:

```
sage: plot(f, 0, 4, plot_points='1000', linestyle='', marker='.')
```

2 | No.2 Revision |

You should tell us different approaches, and what was wrong with them. I am not sure whether you ask about defining a function or plotting it. Here would be my direct approach, without more informations about your needs. To define a periodic function, use the `.frac()`

method of real numbers. In your case:

```
sage: f = lambda x: 1 if RR(x).frac() < 1/2 else 0
sage: plot(f,0,4)
```

If you do not like the vertical line at the discontinuities, you can look at the options of the `plot()`

function:

```
sage: plot?
```

In your case, you can try:

```
sage: plot(f, 0, 4, plot_points='1000', linestyle='', marker='.')
```

For the integral, since the finction is defined point by points (not a symbolic function), you can do a numerical integration:

```
sage: numerical_integral(f,0,4)
(2.0, 2.2315482794965646e-14)
```

3 | No.3 Revision |

You should tell us about your different approaches, and what was wrong with them. I am not sure whether you ask about defining a function or plotting it. Here would be my direct approach, without more informations about your needs. To define a periodic function, use the `.frac()`

method of real numbers. In your case:

```
sage: f = lambda x: 1 if RR(x).frac() < 1/2 else 0
sage: plot(f,0,4)
```

If you do not like the vertical line at the discontinuities, you can look at the options of the `plot()`

function:

```
sage: plot?
```

In your case, you can try:

```
sage: plot(f, 0, 4, plot_points='1000', linestyle='', marker='.')
```

For the integral, since the finction is defined point by points (not a symbolic function), you can do a numerical integration:

```
sage: numerical_integral(f,0,4)
(2.0, 2.2315482794965646e-14)
```

4 | No.4 Revision |

You should tell us about your different approaches, and what was wrong with them. I am not sure whether you ask about defining a function or plotting it. Here would be my direct lazy approach, without more informations about your needs. To define a periodic function, use the `.frac()`

method of real numbers. In your case:

```
sage: f = lambda x: 1 if RR(x).frac() < 1/2 else 0
sage:
```~~plot(f,0,4)
~~plot(f, 0, 4)

`plot()`

function:

```
sage: plot?
```

In your case, you can try:

```
sage: plot(f, 0, 4, plot_points='1000', linestyle='', marker='.')
```

For the integral, since the finction is defined point by points (not a symbolic function), you can do a numerical integration:

`sage: `~~numerical_integral(f,0,4)
~~numerical_integral(f, 0, 4)
(2.0, 2.2315482794965646e-14)

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.