9 votos

¿Qué fórmula podría imitar la siguiente curva?

Con el fin de deformar una malla 3D, estoy buscando una fórmula para generar una curva que podría evaluar como la siguiente:

enter image description here

Su forma sería más o menos una versión simplificada de las olas del viento sobre un océano, donde comienza lentamente y termina de forma más abrupta.

¿Qué fórmula, en su caso, podría permitirme dibujar esa curva?

6 votos

Cualquiera para función golf en el Área 51? (similar a código golf ) ;-)

1 votos

Me he tomado la libertad de añadir la etiqueta "geometría" a la etiqueta "curvas" ( una etiqueta "forma" habría sido lo más preciso)

17voto

Haris Gusic Puntos 6

Pruebe la función

$$f(x)=\arctan\left(\frac{a\sin(x-c)}{b+a\cos x}\right) + d$$

Pruebe también $f(f(x))$ y otras composiciones de $f$ consigo misma.

Screenshot La imagen muestra la función $f(f(x))$ con $a=0.9$ , $b=1$ , $c=0.7$ , $d=0.4$ .

Le recomiendo que utilice desmos para previsualizar la función. Para su comodidad, ici es una plantilla que he creado. Sólo tienes que cambiar los controles deslizantes para ajustar las constantes a tu gusto. También puede escalar el $x$ -si los picos están demasiado dispersos.

Espero que esto ayude.

EDITAR: De acuerdo con la sugerencia de @J. M. no es matemático puede sustituir $\arctan$ con la función $$g(x) = \frac{px}{\sqrt{q+(px)^2}}$$ si necesita una mayor variedad de ondas.

1 votos

Gracias, exactamente lo que buscaba :)

6 votos

Qué función más bonita. ¿Podría explicarnos cómo se le ocurrió?

1 votos

@Haris Gusic Estoy tratando de 'mapear' el rango interesante al rango de 0 a 1 pero estoy luchando, ¡si tienes una idea es bienvenida!

11voto

JeanMarie Puntos 196

@Haris Gusic : He visto tu solución que se ajusta muy bien a los objetivos del solicitante con sus diferentes parámetros sintonizables.

Propongo aquí dos alternativas, una intuitiva, utilizando álgebra lineal, y otra más orientada al "análisis numérico".

1) Me ha llamado la atención el hecho de que la curva deseada por Aybe puede considerarse como una vista en perspectiva (o sombra) de una curva senoidal (o una potencia de una curva senoidal) : véase la Fig. 1 que muestra la curva (roja) de $y=\sin(x)^n$ y su imagen en perspectiva (azul), con ecuaciones paramétricas dadas por

$$\begin{cases}x&=&t+a\sin(t)^n\\y&=&b\sin(t)^n\end{cases} \ \ \text{here, with } \ \begin{cases}n&=&4\\a&=&0.8\\b&=&0.1\end{cases}$$

enter image description here

Fig. 1. La curva azul como "sombra" de la curva roja.

¿Por qué? Este "efecto de sombra" se consigue mediante un "mapa de cizalladura" horizontal ( https://en.wikipedia.org/wiki/Shear_mapping ) o "transvección", una operación lineal con una matriz triangular superior:

$$\color{blue}{\binom{x}{y}}=\begin{pmatrix}1&a\\0&b\end{pmatrix}\color{red}{\binom{t}{\sin(t)^n}}$$

(La primera columna de esta matriz refleja el hecho de que se conserva la dirección horizontal, mientras que la segunda columna con $a,b>0$ da a la dirección vertical anterior una cierta inclinación hacia la derecha).

enter image description here

Fig. 2 : Representación gráfica mediante Desmos. Tenga en cuenta que $\sin$ se ha colocado entre signos de valor absoluto para permitir exponentes no enteros. Un parámetro suplementario $m$ también se ha introducido. Se trata de una solución muy sintonizable: de este modo se pueden obtener incluso ondas rompientes...

2) Un método de "análisis numérico" mediante splines cuadráticos.

No entraré en detalles porque no es seguro en absoluto que conozcas esas curvas, que están formadas por arcos de parábolas conectados de forma "suave" ( https://wordsandbuttons.online/quadric_splines_are_useful_too.html ).

enter image description here

Fig. 3 : Una solución spline cuadrática basada en 3 parábolas (rojo, magenta, azul) conectadas de forma suave, repetidas "ad libidum".

He aquí el programa Matlab que ha generado la Figura 3 (obsérvense las tres operaciones de trazado para las parábolas roja, magenta y azul con variable de traslación a la derecha $k$ ) :

clear all;close all;hold on;
t=0:0.01:1;
for k=0:6:18
    plot(t.^2 + 2*t+k, t.^2,'r');
    plot(-2*t.^2+4*t+3+k,-2*t.^2+2*t+1,'m');
    plot(t.^2+5+k,(1-t).^2,'b');
end;

Si quieres hacer lo mismo con Desmos, aquí tienes una forma de hacerlo (puede ser muy instructivo ampliar un poco el dominio de parámetro $t$ tomando por ejemplo $-0.5 \leq t \leq 1.5$ para entender qué son estas parábolas):

enter image description here

Fig. 4.

1 votos

Gracias, esto parece muy interesante pero no entiendo como puedo dibujarlo a partir de las fórmulas que has puesto :)

0 votos

@Aybe : Desmos, por ejemplo, maneja también gráficos cartesianos ( $y=f(x)$ ) y gráficos paramétricos ( $x=x(t),y=y(t)$ ). Acabo de incluir una forma de hacerlo en mi texto.

1 votos

@Aybe, para obtener una función periódica a partir de la segunda construcción de Jean, puedes componer la función a trozos parabólica que tiene con una función diente de sierra, como en esta respuesta .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X