标签: nonlinear-functions

正弦表插值

我想把一个SDR系统放在一起,最初调整AM,后来调整FM等.我打算用来做这个的系统将有一个正弦查找表用于直接数字合成(DDS).为了正确调谐,我希望能够精确控制馈送到混频器的正弦波频率(在这种情况下为乘法器).我预计线性插值会很接近,但认为非线性方法会提供更好的结果.

什么是用于正弦表的良好且快速的插值方法.乘法和加法在目标系统上很便宜; 分工是昂贵的.

编辑:我计划使用乘法/移位函数实现常量,以将常量标准化为缩放整数.中间值将使用宽增加,乘法将使用18或17位.可以使用浮点"预计算",但不能在目标平台上使用.当我说"划分成本很高"时,我的意思是它必须使用乘法器和大量代码来实现.这不是不可想象的,但应该避免.但是,真正的浮点IEEE方法将在此平台上占用大量资源,以及自定义实现.

任何SDR经验都会有所帮助.

interpolation trigonometry signal-processing radio nonlinear-functions

2
推荐指数
1
解决办法
7191
查看次数

在R中的线性和非线性方程的交点处求x值

我有两个函数:一个用于行(y),另一个用于曲线(hnc).我想确定两个函数相交的一个x值

sigma = 0.075
mu = 0 
r=0.226 
theta=0.908 
H=0.16 

hnc <- function(x) (1/(sigma*sqrt(2*pi)))*(exp(-(x^2)/(2*(sigma^2))))
y <- function(x) 2*pi*x+(pi*r^2/((360/theta)/H))

curve(hnc,0,r,n=100,col="blue")
plot(y,0,r,add=T,col="red")
Run Code Online (Sandbox Code Playgroud)

我尝试过使用nleqslv软件包,但是这会产生两个不同意的x值(也许是因为我使用的不正确)

int <- function(x){
z <- numeric(2) 
z[1] <- (1/(sigma*sqrt(2*pi)))*(exp(-(x[1]^2)/(2*(sigma^2))))
z[2] <- 2*pi*x[2]+(pi*r^2/((360/theta)/H))
z}

nleqslv(c(0.14,0.14),int,method="Broyden")
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

谢谢,埃里克

intersection r nonlinear-functions

2
推荐指数
1
解决办法
2486
查看次数

用R分析非线性数据

我有以下数据,其中xx和yy之间似乎存在曲线关系:

head(ddf)
  xx yy
1  1 10
2  2  9
3  3 11
4  4  9
5  5  7
6  6  6

ddf = structure(list(xx = 1:23, yy = c(10L, 9L, 11L, 9L, 7L, 6L, 9L, 
8L, 5L, 4L, 6L, 6L, 5L, 4L, 6L, 8L, 4L, 6L, 8L, 11L, 8L, 10L, 
9L)), .Names = c("xx", "yy"), class = "data.frame", row.names = c(NA, 
-23L))

with(ddf, plot(xx,yy))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想分析一下并得到以下内容:

  1. 找出xx和yy之间的非线性关系
  2. 得到它的等式
  3. 获得它的P值
  4. 如果可能得到R(相关系数)(非线性)
  5. 绘制此曲线

我知道nls,它给了我一个等式,但我必须输入一个公式,这可能不正确.此外,我无法得到曲线和R和P值.

> nls(yy~a*(xx^b), data=ddf)
Nonlinear regression model
  model: yy …
Run Code Online (Sandbox Code Playgroud)

regression r nonlinear-functions

2
推荐指数
1
解决办法
878
查看次数

如何查询具有多参数和谐波函数的 GSL ODE

我正在使用 GSL 研究非线性微分方程。问题是我对 C 语言很陌生。我只是将 GNU 站点上的示例修改为我现在感兴趣的方程式。

这是等式:

d2x/dt2 + r*dx/dy + cos(x) + v*cos(2*x+0.4) E1*sin(wt) + E2*sin(2*w*t+a) = 0
Run Code Online (Sandbox Code Playgroud)

我被卡住的是我不知道如何在代码中插入多个参数。此外,我不知道如何在这段代码中使用余弦或正弦函数。

我一直在谷歌上搜索,试图找出这个问题。我找不到任何可以帮助我的东西。

#include <stdio.h>
#include <gsl/gsl_errno.h>
#include <math.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_odeiv2.h>

int func (double t, const double x[], double y[], void *params)
{
    double r = *(double *)params;
    double v = *(double *)params;
    double w = *(double *)params;
    double E1 = *(double *)params;
    double E2  = *(double *)params;
    double a  = *(double *)params;
    y[0] = x[1];
    y[1] …
Run Code Online (Sandbox Code Playgroud)

c nonlinear-functions gsl differential-equations

2
推荐指数
1
解决办法
1261
查看次数

神经网络(非)线性

在讨论神经网络时,我对使用术语线性/非线性感到困惑.任何人都可以为我澄清这3点:

  1. 神经网络中的每个节点都是输入的加权和.这是输入的线性组合.因此,每个节点的值(忽略激活)由一些线性函数给出.我听说神经网络是通用函数逼近器.这是否意味着,尽管每个节点中包含线性函数,但总网络也能够逼近非线性函数?有没有明确的例子说明这在实践中是如何运作的?
  2. 激活函数被应用于该节点的输出以压缩/变换输出以进一步传播通过网络的其余部分.我是否正确地将激活函数的输出解释为该节点的"强度"?
  3. 激活函数也称为非线性函数.非线性一词来自哪里?因为激活的输入是输入到节点的线性组合的结果.我假设它指的是像sigmoid函数这样的东西是非线性函数?为什么激活是非线性的呢?

machine-learning nonlinear-functions neural-network

2
推荐指数
1
解决办法
1206
查看次数

R 中的 Eta/Eta 平方例程

除了在应用 GLM 系列的某些技术之前使用的线性图形估计(注视散点图方法)之外,还有几种方法可以在算术上进行此估计(即没有图形)。

现在,我将关注 Fisher 的eta 平方- 相关比:在算术上,如果两个变量之间的关系是线性的,则它等于 Pearson r 的平方(决定系数:r 2)。因此,您可以比较etar 的值并评估关系类型(线性与否)。它提供有关由自变量解释(线性或非线性)的因变量的方差百分比的信息。因此,您可以在不满足线性假设时应用它。

简单地说:R 中是否有 eta/eta-squared 的例程?

r nonlinear-functions correlation

1
推荐指数
1
解决办法
4186
查看次数

在c编程中处理大型数组

我正在研究非线性微分方程.我所做的是平均超过100个不同初始条件值的位置.

我在gsl中使用了odeiv.对于每个初始值,时间范围是4*10 ^ 7.然而,程序杀死,一旦我设置了10个不同的初始条件和10 ^ 6的时间范围.这是一种限制.

我的电脑有8个内核和16GB内存.我认为这不是那么大.

我将把编码的一部分.有人帮我这个吗?谢谢.

long long int i, j, k;
double const y_i = 0, dydt_i = 0;
double n = 10;
long long int tmax = 1000000;
double A[tmax];

for (j=0; j < n; j++)
{
    double y_j = y_i + 0.001*j;
    double dydt_j = dydt_i;
    t = 0.0;
    double y[2] = {y_j, dydt_j};
    gsl_odeiv2_system sys = {func, jac, 2, &params};
    gsl_odeiv2_driver * d = gsl_odeiv2_driver_alloc_y_new (&sys, gsl_odeiv2_step_rk8pd, 1e-6, 1e-6,     0.0);

  for (i=0; i< tmax; …
Run Code Online (Sandbox Code Playgroud)

c arrays nonlinear-functions ode gsl

0
推荐指数
1
解决办法
75
查看次数