Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Brian D. Hahn is active.

Publication


Featured researches published by Brian D. Hahn.


Ecological Modelling | 1983

A deterministic model of an anthrax epizootic: threshold results

Brian D. Hahn; Peter R. Furniss

Abstract A deterministic mathematical model of an anthrax epizootic is presented, based on the hypothesis that the disease is spread primarily by environmental contamination. An analytic form is found for the generation multiplication rate, defined as the number of new cases arising from a single isolated case. Analytical expressions are also derived for the threshold of the disease, in terms of the generation multiplication rate, and for the total size of the epizootic. Further interesting properties of the model are derived, and themodel output is compared favourably with data collected during a recent epizootic.


Ecological Modelling | 1982

Rock-lobsters, mussels and man: A mathematical model

L.J. Seiderer; Brian D. Hahn; L. Lawrence

The palinurid rock-lobster Jasus lalandii (H. Milne-Edwards), which forms the basis of an important South African fishery, feeds mainly on the mussel Aulacomya ater (Molina). Natural populations of A. ater exhibit a bimodal size frequency distribution, believed to be caused by intense predation pressure upon medium-sized mussels. This may lead to situations in which rock-lobster productivity is severely restricted by food availability even in the presence of a large standing crop of prey. The present rock-lobster harvesting strategy is based on a minimum size limit; however, by not catching small rock-lobsters, an imbalance may be created in the lobster size distribution, resulting in an overabundance of small rock-lobsters which have insufficient food to grow fast. The need to predict an economically and biologically optimal harvesting strategy provided motivation for the present model, in which an alternative harvesting strategy, involving decrease of the minimim size limit, was compared with the present strategy. It appears that the mussel biomass could be increased by 87% and the rock-lobster yield by 19%. Simultaneously, the rock-lobster density and egg production are seen to decrease by 24 and 35%, respectively. The model assumes that rock-lobster populations have constant recruitment; therefore, the effect of the decline in fecundity cannot be predicted. Therefore, any major policy change should be delayed until the larval biology of J. lalandii has been researched more fully.


International Journal of Mathematical Education in Science and Technology | 1990

A description of Driver: an interactive modelling aid

Brian D. Hahn; Peter R. Furniss

Driver is a modelling aid implemented as an IBM PC‐compatible software package. It allows the interactive manipulation of the parameters and variables of difference and differential equation models. A choice of output formats, which can be changed interactively, is available. Parameter and variable values can be stored on a disk. A brief description of Driver and some examples of its use are given. The software is available on request.


Essential Java for Scientists and Engineers | 2002

Arrays and matrices

Brian D. Hahn; Katherine M. Malan

This chapter examines the importance of arrays and matrices. An array is used to hold a collection of items of the same data type. Arrays allows declaring multiple data values as a single variable, which is a much more elegant way of working with data. An array is set up in two distinct stages. Firstly, the array name (reference) and the fact that it is an array, is declared. Secondly memory for each element of the array is allocated, by using the new keyword and specifying a size. The subscript of the last element therefore is one less than the value used when the array is created. Loops are very useful for accessing and manipulating arrays. It is found that through each iteration of the loop, the particular array element is initialized by the value read in from the keyboard and is added to sum. Multidimensional arrays are used to represent tables. The sorting of an array is also elaborated. Certain mathematical properties are, however, defined for matrices, which makes them a cut above mere tables. Matrix multiplication is the most important such property. It is used widely in such areas as network theory, coordinate transformation in computer graphics, solution of linear systems of equations, and population modelling.


Essential Java for Scientists and Engineers | 2002

More on loops

Brian D. Hahn; Katherine M. Malan

This chapter elaborates various aspects of indeterminate loops. The type of structure, where the numbers of repetitions are determined in advance, is sometimes called determinate repetition. It often happens that the condition to end a loop is only satisfied during the execution of the loop itself. Such a structure is called indeterminate. The binomial coefficient is widely used in mathematics and statistics. The chapter also explains plotting a projectile trajectory with essential grapher. Drawing graphs is easy with handy graphics tool, Essential Grapher, which is part of the essential package. There are numerous programs described related to Essential Grapher. The parameters of the Projectile constructor have the same name as the data members being initialized. This simplification is made possible by the use of this. The constructor converts the launch angle from degrees to radians. The method setAxes sets the limits of the axes of the graph display. Its four parameters stand for xmin, xmax, ymin, and ymax respectively. The setColour method sets the drawing color of traj object. This method in turns selects a color from the Java API class Color.


Essential Java for Scientists and Engineers | 2002

Modelling with matrices

Brian D. Hahn; Katherine M. Malan

This chapter describes various aspects of modeling with matrices. The use of the Matrix class to multiply the two matrices is presented. Matrix objects are printed directly with System, out .printIn, because the class Matrix has a to String method. The throws MatrixException clause is required, because the Matrix methods may throw this exception. The getRowCount method of the Matrix class returns the number of rows in the adjacency matrix. The copy method creates a copy of the calling matrix. The readMatrix method without a parameter enables to input a matrix from the keyboard. It is found that the Leslie method setAgeClass uses the Matrix method setElementAt to set the initial value of the population vector X. The Leslie method getAgeClass uses the Matrix method getElementAt to return the size of a particular age class. The Leslie method getTotal returns the total population size at any time by summing the elements of X.


Essential Java for Scientists and Engineers | 2002

Solving a problem in Java

Brian D. Hahn; Katherine M. Malan

This chapter deals with the explanation of solving a problem in Java. When problems become more complicated, it is easier to tackle the problem by breaking it up into bite-sized chunks and solving it in parts, rather than trying to solve the whole problem all at once. The best way of structuring code is to use an object-oriented approach. Thinking in objects (rather than processes) is often a more natural way of thinking of a problem. The data and the processes (methods) that operate on that data are grouped together into a logical unit called an object. Such an object is a well-contained unit, which can very easily be re-used as a component, by other programmers, without them needing to know the details of how it is implemented. In addition, the chapter explains objects and classes. The class is more than a just a structure, however, since it also contains a method, which draws a square. The appearance of the square depends on the current values of the size and pattern data members. In the main method of Use Square, the first statement creates a Square object called s1. Further, the chapter discusses numerous approaches in solving the problem, such as decide on data numbers.


Essential Java for Scientists and Engineers | 2002

Java programming basics

Brian D. Hahn; Katherine M. Malan

This chapter deals with the explanation of Java programming basics. When one compiles a Java program with the javac command the result is a bytecode file with the extension .class. During compilation, space in the computers random access memory is allocated for any numbers (data) which is generated by the program. This part of the memory may be thought of as a bank of boxes, or memory locations, each of which can hold only one number at a time. These memory locations are referred to by symbolic names in the program. Logical expressions can be combined with each other using logical operators. Java has a primitive data type called Boolean. Variables of this type can take on the values true or false. One can assign a constant or a logical expression to a Boolean variable. It is found that an if-else-if ladder can become rather unwieldy if one wants to test for a number of specific values. Furthermore, this chapter also discusses how to write short Java programs to solve simple problems involving basic arithmetic operations, repetition and decisions.


Essential Java for Scientists and Engineers | 2002

13 – Introduction to numerical methods

Brian D. Hahn

Publisher Summary This chapter presents an introduction to numerical methods. A major use of computers in science and engineering is in finding numerical solutions to mathematical problems, which have no analytical solutions. In some areas, numerical methods are highly developed, such as solving nonlinear equations, evaluating integrals, and solving differential equations. Newtons method is perhaps the easiest numerical method to implement for solving equations. This method is an iterative procedure, meaning that it repeatedly attempts to improve an estimate of the root. A nice spin-off of Newtons method is that it can be used to find complex roots, but only if the starting guesses is complex. The essential package has a Complex class for creating and manipulating complex numbers. The Bisection method is an alternative to Newtons method for solving equations. It is found that Simpsons rule is a method of numerical integration which is a good deal more accurate than the Trapezoidal rule. Further, the chapter explains Runge–Kutta method; there are a variety of algorithms, under the general name of Runge-Kutta, which are used to integrate initial-value ordinary differential equations.


Essential Java for Scientists and Engineers | 2002

9 – Input/output

Brian D. Hahn

Publisher Summary This chapter elaborates the role of input and output in running programs. Usually a program needs some form of input to do the job and produces some form of output. There are a number of ways of obtaining data as input to a running program. Some of these ways include input on startup of the program through the command line parameters, input from the keyboard while the program is running using System, and input through a graphical user interface. It is found that if one wants to obtain data from somewhere outside the program, one needs to have an input stream corresponding to that input device. The System class is defined in the Java. lang package, which is automatically imported by Java. The class PrintStream is a specialized class of OutputStream, which has the ability to print data in a convenient way. The various print and print in methods for different data types are housed in the PrintStream class. It is found that Java provides a useful class called StringTokenizer for extracting tokens from a string which is common delimited. Lastly, the chapter explains streams and Internet.

Collaboration


Dive into the Brian D. Hahn's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

M.T. Hoffman

University of Cape Town

View shared research outputs
Top Co-Authors

Avatar

L. Lawrence

University of Cape Town

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

S.W. Todd

University of Cape Town

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge