Defina y construya líneas de nivel de función en línea. Una clase sencilla para trazar líneas de nivel de una función de cuadrícula 2D. Funciones de varias variables.

Al procesar datos en áreas temáticas relacionado con actividad científica, a menudo es necesario construir y visualizar una función de dos variables independientes. Un ejemplo típico es la necesidad de representar visualmente los resultados de la resolución de ecuaciones diferenciales parciales bidimensionales, obtenidos en forma de las llamadas funciones de cuadrícula.

Se propone una clase simple para construir líneas de nivel (isolíneas) de la función: Z=F(X,Y) en forma de líneas en el plano X-Y que satisfacen las ecuaciones Z=const (donde const es un conjunto de valores dados) .

Se supone que la función Z se especifica como una matriz z en una cuadrícula arbitraria con celdas cuadrangulares. La cuadrícula se especifica mediante dos matrices x, y, donde J y K son los tamaños de la cuadrícula.

Los valores de la función se definen en las esquinas de la celda del cuadrilátero. En cada celda se verifica el paso de la línea de nivel calculada a través de sus caras y, siempre que la línea pase por la celda, se calculan las coordenadas de la intersección de la línea de nivel con las caras. Dentro de la celda, la línea se dibuja como un segmento recto.

El texto fuente incluye comentarios detallados.

Archivo LinesLevels.cs:

Usando System.Collections.Generic; usando System.Linq; usando System.Windows; espacio de nombres WpfLinesLevels ( clase pública LinesOfLevels ( privado int J, K; privado doble[,] X; privado doble[,] Y; privado doble[,] Z; // Lista de isolíneas lista pública Líneas (obtener; establecer;) ///

/// Preparación /// /// variedad de niveles /// Coordenadas del área X /// Coordenadas Y del área /// Función de cuadrícula líneas públicas de niveles (doble _niveles, doble [,] _x, doble [,] _y, doble [,] _z) (Líneas = nueva lista (_levels.Count()); foreach (doble l en _levels) ( Lines.Add(new LineLevel(l)); ) X = _x; Y = _y;< J - 1; j++) for (int k = 0; k < K - 1; k++) { Ceil ir = new Ceil(j, k, X, Y, Z); for (int l = 0; l < Lines.Count(); l++) ir.AddIntoLineLevel(Lines[l]); } } } /// Z = _z; J = X.GetLength(0); K = X.GetLength(1); (); } } /// ) ////// Cálculo de isolíneas. Puntos ( get; set; ) public PairOfPoints() ( Puntos = nueva lista (); } } /// /// Ángulo de la celda./// Índices para definir una esquina de una celda cuadrilátera /// estructura interna Dot ( internal int j ( get; set; ) internal int k ( get; set; ) internal Dot (int _j, int _k) ( j = _j; k = _k; ) ) ////// Celda de cuadrícula cuadrangular. Determina la celda actual. /// Calcula segmentos de isolíneas en una celda /// clase interna Ceil ( // Esquinas de la celda punto privado d = nuevo Punto; // Puntos de coordenadas de las esquinas punto privado r = nuevo Punto; // Conjuntos de coordenadas de toda el área privado doble[,] X; privado doble[,] Y ; // Función de cuadrícula de matriz private double[,] Z;/// Definición de celda /// Definida por la esquina inferior izquierda. Los ciclos de iteración del índice deben ser 1 menos. /// dimensiones J,K /// matrices /// /// j - índice de la esquina inferior izquierda /// k - índice de la esquina inferior izquierda /// Matriz X Matriz Y Matriz de funciones de cuadrícula Z /// techo interno(int _j, int _k, doble[,] _x, doble[,] _y, doble[,] _z) ( d = nuevo Punto(_j, _k); d = nuevo Punto(_j + 1, _k); d = nuevo Punto(_j + 1, _k + 1); r = puntoPunto(d); /// /// Determinación del punto de coordenadas Punto del ángulo /// Ángulo definido por estructura de puntos /// techo interno(int _j, int _k, doble[,] _x, doble[,] _y, doble[,] _z) ( d = nuevo Punto(_j, _k); d = nuevo Punto(_j + 1, _k); d = nuevo Punto(_j + 1, _k + 1); r = puntoPunto(d); /// Punto privado PuntoPunto(Punto _d) (retorna nuevo Punto(X[_d.j, _d.k], Y[_d.j, _d.k]); ) /// /// Definición de una función en un ángulo dado /// /// privado doble dotZ(Dot _d) ( return Z[_d.j, _d.k]; ) /// /// /// Definir un par de puntos a través de los cuales pasa la línea de nivel /// Los puntos en los límites de la celda se determinan mediante interpolación lineal.< _l) || (dotZ(d) >///<= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); } // Ребро 1 if ((dotZ(d) >Valor del nivel de característica< _l) || (dotZ(d) >///<= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); if (p.Points.Count == 2) return p; } // Ребро 2 if ((dotZ(d) >Valor del nivel de característica< _l) || (dotZ(d) >///<= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); if (p.Points.Count == 2) return p; } // Ребро 3 if ((dotZ(d) >Valor del nivel de característica< _l) || (dotZ(d) >///<= _l)) { double t = (_l - dotZ(d)) / (dotZ(d) - dotZ(d)); double x = r.X * t + r.X * (1 - t); double y = r.Y * t + r.Y * (1 - t); p.Points.Add(new Point(x, y)); } return p; } /// privado PairOfPoints ByLevel(double _l) ( PairOfPoints p = new PairOfPoints(); // Borde 0 if ((dotZ(d) >= _l && dotZ(d) /// _l && puntoZ(d)= _l && puntoZ(d)
/// Agregando un par de puntos a la línea de ecuación /// línea de nivel vacío interno AddIntoLineLevel(LineLevel _lL) ( PairOfPoints lp = ByLevel(_lL.Level); if (lp.Points.Count > 0) _lL.Pairs.Add(lp); ) ) )

Para demostrar el trabajo de la clase, un pequeño


WPF, que construye líneas de nivel para una función de la forma: z = x^2 + y^2 en una cuadrícula de 10 por 10.

Archivo MainWindow.xaml:

Isolinas Z = X^2+Y^2 clase parcial pública MainWindow: Ventana (privado doble Xmax; privado doble Xmin; privado doble Ymax; privado doble Ymin; privado doble xSt; privado doble ySt; público MainWindow() (InitializeComponent(); // Definiendo los niveles que se mostrarán doble niveles = ( 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 ); doble[,] X = nuevo doble[,] Y = nuevo doble[,] Z = nuevo doble; ; // Variables para convertir coordenadas físicas a coordenadas de pantalla Xmin = 0; Ymin = 0; xSt = 525 / (Xmax - Xmin);< 10; k++) for (int j = 0; j < 10; j++) { X = j; Y = k; Z = j * j + k * k; } // Создание изолиний LinesOfLevels lol = new LinesOfLevels(levels, X, Y, Z); // Их расчет lol.Calculate(); // Построение DrowLevelLine(lol, X, Y); } /// /// Método para construir isolíneas /// /// Objeto calculado con isolíneas /// matriz de coordenadas X /// conjunto de coordenadas Y private void DrowLevelLine(LinesOfLevels lL, double[,] x, double[,] y) ( Canvas can = new Canvas(); foreach (LineLevel l en lL.Lines) ( foreach (PairOfPoints pp en l.Pairs) ( if ( pp.Points.Count() == 2) ( Línea pl = nueva Línea(); pl.Stroke = nuevo SolidColorBrush(Colors.BlueViolet); pl.X1 = xCalc(pp.Points.X); pl.X2 = xCalc (pp.Points.X); pl.Y1 = yCalc(pp.Points.Y); pl.Y2 = yCalc(pp.Points.Y); can.Children.Add(pl) ) can.new Grosor( 10, 10, 10, 10); can.VerticalAlignment = VerticalAlignment.Stretch can.HorizontalAlignment = HorizontalAlignment.Stretch; /// Conversión de la coordenada física X a la coordenada de pantalla /// /// Coordenada física X /// Coordenada X de pantalla privado doble xCalc(doble _x) ( return xSt * (_x - Xmin); ) /// /// Conversión de la coordenada Y física a la coordenada de pantalla /// /// Coordenada física Y /// Coordenada Y de pantalla privado doble yCalc(doble _y) ( return ySt * (Ymax - _y); ) ) )
El resultado del ejemplo de prueba se muestra en la figura.

Si cada punto X = (x 1, x 2, ... x n) del conjunto (X) de puntos del espacio n-dimensional está asociado con un valor bien definido de la variable z, entonces se dice que el dado función de n variables z = f(x 1, x 2, ...x n) = f (X).

En este caso, las variables x 1, x 2, ... x n se llaman variables independientes o argumentos funciones, z - variable dependiente, y el símbolo f denota ley de correspondencia. El conjunto (X) se llama dominio de definición funciones (este es un cierto subconjunto del espacio n-dimensional).

Por ejemplo, la función z = 1/(x 1 x 2) es una función de dos variables. Sus argumentos son las variables x 1 y x 2, y z es la variable dependiente. El dominio de definición es todo el plano de coordenadas, con excepción de las rectas x 1 = 0 y x 2 = 0, es decir sin ejes x y de ordenadas. Sustituyendo cualquier punto del dominio de definición en la función, de acuerdo con la ley de correspondencia obtenemos cierto número. Por ejemplo, tomando el punto (2; 5), es decir x 1 = 2, x 2 = 5, obtenemos
z = 1/(2*5) = 0,1 (es decir, z(2; 5) = 0,1).

Una función de la forma z = a 1 x 1 + a 2 x 2 + … + a n x n + b, donde a 1, a 2,…, y n, b son números constantes, se llama lineal. Puede considerarse como la suma de n funciones lineales de las variables x 1, x 2, ... x n. Todas las demás funciones se llaman no lineal.

Por ejemplo, la función z = 1/(x 1 x 2) no es lineal y la función z =
= x 1 + 7x 2 - 5 – lineal.

Cualquier función z = f (X) = f(x 1, x 2, ... x n) se puede asociar con n funciones de una variable si fijamos los valores de todas las variables excepto una.

Por ejemplo, funciones de tres variables z = 1/(x 1 x 2 x 3) se pueden asociar con tres funciones de una variable. Si fijamos x 2 = a y x 3 = b, entonces la función tomará la forma z = 1/(abx 1); si fijamos x 1 = a y x 3 = b, entonces tomará la forma z = 1/(abx 2); si fijamos x 1 = a y x 2 = b, entonces tomará la forma z = 1/(abx 3). EN en este caso las tres funciones tienen la misma forma. Este no es siempre el caso. Por ejemplo, si para una función de dos variables fijamos x 2 = a, entonces tomará la forma z = 5x 1 a, es decir función de potencia, y si arreglamos x 1 = a, entonces tomará la forma, es decir función exponencial.

Cronograma función de dos variables z = f(x, y) es el conjunto de puntos en el espacio tridimensional (x, y, z), cuya aplicación z está relacionada con la abscisa x y la ordenada y por una relación funcional
z = f (x, y). Este gráfico representa alguna superficie en un espacio tridimensional (por ejemplo, como en la Figura 5.3).

Se puede demostrar que si una función es lineal (es decir, z = ax + by + c), entonces su gráfica es un plano en el espacio tridimensional. Se recomienda que estudie otros ejemplos de gráficos tridimensionales por su cuenta utilizando el libro de texto de Kremer (págs. 405-406).

Si hay más de dos variables (n variables), entonces cronograma La función es un conjunto de puntos en el espacio (n+1)-dimensional para el cual la coordenada x n+1 se calcula de acuerdo con una ley funcional dada. Tal gráfico se llama hipersuperficie(para una función lineal – hiperplano), y también representa una abstracción científica (es imposible representarla).

Figura 5.3 – Gráfica de una función de dos variables en un espacio tridimensional

Superficie nivelada una función de n variables es un conjunto de puntos en un espacio n-dimensional tal que en todos estos puntos el valor de la función es el mismo e igual a C. El número C en este caso se llama nivel.

Generalmente, para la misma función, es posible construir un número infinito de superficies de nivel (correspondientes a diferentes niveles).

Para una función de dos variables, la superficie de nivel toma la forma líneas de nivel.

Por ejemplo, considere z = 1/(x 1 x 2). Tomemos C = 10, es decir 1/(x 1 x 2) = 10. Entonces x 2 = 1/(10x 1), es decir en el plano, la línea de nivel tomará la forma que se muestra en la Figura 5.4 línea continua. Tomando otro nivel, por ejemplo, C = 5, obtenemos la línea de nivel en forma de gráfica de la función x 2 = 1/(5x 1) (que se muestra con una línea de puntos en la Figura 5.4).

Figura 5.4 - Líneas de nivel de función z = 1/(x 1 x 2)

Veamos otro ejemplo. Sea z = 2x 1 + x 2. Tomemos C = 2, es decir 2x 1 + x 2 = 2. Entonces x 2 = 2 - 2x 1, es decir en el plano la línea de nivel tomará la forma de una línea recta, representada en la Figura 5.5 por una línea continua. Tomando otro nivel, por ejemplo C = 4, obtenemos una línea de nivel en forma de línea recta x 2 = 4 - 2x 1 (que se muestra con una línea de puntos en la Figura 5.5). La línea de nivel para 2x 1 + x 2 = 3 se muestra en la Figura 5.5 como una línea de puntos.

Es fácil verificar que para una función lineal de dos variables, cualquier línea de nivel será una línea recta en el plano y todas las líneas de nivel serán paralelas entre sí.

Figura 5.5 - Líneas de nivel de función z = 2x 1 + x 2

Definición de una función de varias variables.

Al considerar funciones de una variable, señalamos que al estudiar muchos fenómenos uno tiene que encontrar funciones de dos o más variables independientes. Pongamos algunos ejemplos.

Ejemplo 1. Cuadrado S rectángulo con lados cuyas longitudes son iguales incógnita Y en, se expresa mediante la fórmula S = xy. Cada par de valores incógnita Y en corresponde a un cierto valor de área S; S es una función de dos variables.

Ejemplo 2. Volumen V paralelepípedo rectangular con aristas cuyas longitudes son iguales incógnita, en, z, se expresa mediante la fórmula V= xyz. Aquí V hay una función de tres variables incógnita, en, z.

Ejemplo 3. Rango R vuelo de proyectiles disparados a velocidad inicial v 0 de un arma cuyo cañón está inclinado hacia la horizontal en un ángulo  se expresa mediante la fórmula
(si descuidamos la resistencia del aire). Aquí gramo– aceleración de la gravedad. Para cada par de valores v 0 y  esta fórmula da un cierto valor R, es decir. R es una función de dos variables v 0 y .

Ejemplo 4.
. Aquí Y hay una función de cuatro variables incógnita, en, z, t.

Definición 1. Si cada par ( incógnita, en) valores de dos variables independientes entre sí incógnita Y en desde algún área de su cambio D, corresponde a un cierto valor de la cantidad z, entonces decimos que z hay una función dos variables independientes x Y en, definido en el área D.

Simbólicamente, una función de dos variables se denota de la siguiente manera:

z= F(incógnita, y), z = F(incógnita, y), etc.

Una función de dos variables se puede especificar, por ejemplo, mediante una tabla o analíticamente, mediante una fórmula, como se hizo en los ejemplos comentados anteriormente. Según la fórmula, puede crear una tabla de valores de función para algunos pares de valores de variables independientes. Entonces, para el primer ejemplo, puedes crear la siguiente tabla:

S = xy

En esta tabla, en la intersección de una fila y una columna correspondientes a ciertos valores incógnita Y en, se introduce el valor de función correspondiente S. Si dependencia funcional z= F(incógnita, y) se obtiene como resultado de mediciones de la cantidad z Al estudiar experimentalmente cualquier fenómeno, inmediatamente se obtiene una tabla que determina z en función de dos variables. En este caso, la función se especifica únicamente en la tabla.

Como en el caso de una variable independiente, una función de dos variables no existe, en términos generales, para ningún valor. incógnita Y en.

Definición 2. Un conjunto de pares ( incógnita, en) valores incógnita Y en, en el que se determina la función z= F(incógnita, y), llamado dominio de definición o área de existencia esta función.

El dominio de definición de una función está claramente ilustrado geométricamente. Si cada par de valores incógnita Y en lo representaremos con un punto METRO(incógnita, en) en el avión Ohhh, entonces el dominio de definición de la función se representará como una determinada colección de puntos en el plano. A esta colección de puntos también la llamaremos dominio de definición de la función. En particular, el dominio de definición puede ser todo el plano. A continuación nos ocuparemos principalmente de áreas que representan partes del avion, delimitado por líneas. La línea limitante esta área, llamaremos bordeáreas. Los puntos de la región que no se encuentran en el límite se llamarán interno puntos de la zona. Un área que consta únicamente de puntos interiores se llama abierto o abierto. Si los puntos límite también pertenecen a la región, entonces la región se llama cerrado. Un área se dice acotada si existe tal constante CON, que la distancia de cualquier punto METROárea desde el origen ACERCA DE menos CON, es decir. | om| < CON.

Ejemplo 5. Determinar el dominio natural de una función.

z = 2incógnitaen.

Expresión analítica 2 incógnitaen tiene sentido para cualquier valor incógnita Y en. En consecuencia, el dominio natural de definición de la función es todo el plano. Ohhh.

Ejemplo 6.
.

Con el fin de z tenía un valor real, es necesario que haya un número no negativo debajo de la raíz, es decir incógnita Y en debe satisfacer la desigualdad 1 – incógnita 2 – en 2  0, o incógnita 2 + en 2  1.

Todos los puntos METRO(incógnita, en), cuyas coordenadas satisfacen la desigualdad indicada, se encuentran en un círculo de radio 1 con centro en el origen y en el límite de este círculo.

Ejemplo 7.
.

Dado que los logaritmos se definen sólo para números positivos, la desigualdad debe satisfacerse incógnita + en> 0, o en >  incógnita.

Esto significa que el dominio de definición de la función z es la mitad del plano situada encima de la recta en =  incógnita, sin incluir la propia línea recta.

Ejemplo 8. Área de un triángulo S representa la función base incógnita y alturas en: S= xy/2.

El dominio de definición de esta función es el dominio incógnita  0, en 0 (ya que la base de un triángulo y su altura no pueden ser negativas ni cero). Tenga en cuenta que el dominio de definición de la función considerada no coincide con el dominio natural de definición de la expresión analítica con la que se especifica la función, ya que el dominio natural de definición de la expresión xy/ 2 es obviamente todo el avión Ohhh.

La definición de función de dos variables se puede generalizar fácilmente al caso de tres o más variables.

Definición 3. Si cada conjunto considerado de valores variables incógnita, en, z, …, tu, t corresponde a un determinado valor de variable w, entonces llamaremos w función de variables independientes incógnita, en, z, …, tu, t y escribe w= F(incógnita, en, z, …, tu, t) o w= F(incógnita, en, z, …, tu, t) etc.

Al igual que para una función de dos variables, podemos hablar del dominio de definición de una función de tres, cuatro o más variables.

Entonces, por ejemplo, para una función de tres variables, el dominio de definición es un determinado conjunto de tripletes de números ( incógnita, en, z). Observemos de inmediato que cada triple de números define un punto determinado. METRO(incógnita, en, z) en el espacio Ohhhz. En consecuencia, el dominio de definición de una función de tres variables es un determinado conjunto de puntos en el espacio.

De manera similar, podemos hablar del dominio de definición de una función de cuatro variables. tu= F(incógnita, y, z, t) como sobre alguna colección de cuádruplos de números ( incógnita, y, z, t). Sin embargo, el dominio de definición de una función de cuatro o más Las variables ya no permiten una interpretación geométrica simple.

El ejemplo 2 muestra una función de tres variables definidas para todos los valores. incógnita, en, z.

El ejemplo 4 muestra una función de cuatro variables.

Ejemplo 9. .

Aquí w– función de cuatro variables incógnita, en, z, Y, definido con valores de variables que satisfacen la relación:

Concepto de función de varias variables.

Introduzcamos el concepto de función de varias variables.

Definición 1. Deja que cada punto METRO a partir de un conjunto de puntos ( METRO) Espacio euclidiano mimetro según alguna ley, un determinado número se pone en correspondencia Y de un conjunto numérico Ud. Entonces diremos que en el set ( METRO) se da la función y =f(M). Además, los conjuntos ( METRO) Y Ud. se denominan, respectivamente, dominio de definición (asignación) y dominio de cambio de la función f(M).

Como sabes, una función de una variable. en = F(incógnita) se representa en el avión como una línea. En el caso de dos variables, el dominio de definición ( METRO norte) funciones z = f(x,y) representa un cierto conjunto de puntos en el plano de coordenadas Ohhh(Figura 8.1). Coordinar z llamado aplicar, y luego la función misma se representa como una superficie en el espacio mi3 . De manera similar, la función de t variables

definido en el conjunto ( METRO) Espacio euclidiano mimetro, representa una hipersuperficie en el espacio euclidiano mim+1.

Algunos tipos de funciones de varias variables.

Veamos ejemplos de funciones de varias variables y encontremos sus dominios de definición.

mi3 . El dominio de definición de esta función es el conjunto completo de puntos del plano. Oh. El rango de esta función es el intervalo)


Arriba