标签: parametric-equations

在R中绘制一颗心

可能重复:
方程驱动的平滑阴影同心形状

我怎么能在R中绘制一个对称的心脏,就像我绘制一个圆圈(使用plotrix)或一个矩​​形?

我想要这样的代码,这样我才能真正为自己做这件事,并能够将其推广到类似的未来需求.我已经看到了比这更精细的情节所以它非常可行,只是因为我缺乏这方面的知识.

r parametric-equations polar-coordinates

39
推荐指数
6
解决办法
3万
查看次数

方程驱动的平滑阴影同心形状

背景

希望创建有趣的视频过渡(灰度).

问题

给定代表闭合对称形状的方程,绘制轮廓并同心地将形状朝向其中心着色.

考虑以下等式:

x = 16 * sin(t)^3
y = 13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t)
t = [0:2 * pi]
Run Code Online (Sandbox Code Playgroud)

绘制时:

当阴影时,它会像(没有显示完全阴影,但足以表明这个想法):

请注意,阴影在外部是最暗的(例如,#000000 RGB十六进制),然后在填充到中心时变亮.中心将是白色(例如,#FFFFFFF)点.

问题

  1. 生成高分辨率,同心阴影灰度图像的最有效方法是什么,例如上面的阴影心脏?
  2. 什么是这种封闭的,对称的形状正式称为?

谢谢!

思路

java math r parametric-equations

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

任意曲线的递归弧长重新参数化

我有一个3D参数曲线,定义为P(t)= [x(t),y(t),z(t)]

我正在寻找一种功能,可以根据弧长重新设置此曲线的参数。我正在使用OpenSCAD,这是一种没有变量的声明性语言(仅常数),因此解决方案需要递归工作(除了全局常量和函数参数外,没有变量)。

更准确地说,我需要编写一个函数Q(s),以给出P上的点,该点沿t到t = 0的点沿弧线的距离(大约)为s。我已经有一些可用于答案的数字积分和微分函数。

任何建议将不胜感激!

ps在OpenSCAD中不可能将函数作为参数传递,我通常仅通过使用全局声明来解决此问题。

functional-programming numerical-methods parametric-equations openscad

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

使用曲线()绘制幸存的生存和危险函数

我有以下幸存模型:

Call:
survreg(formula = Surv(time = (ev.time), event = ev) ~ age, 
    data = my.data, dist = "weib")
             Value Std. Error    z        p
(Intercept) 4.0961     0.5566 7.36 1.86e-13
age         0.0388     0.0133 2.91 3.60e-03
Log(scale)  0.1421     0.1208 1.18 2.39e-01
Scale= 1.15 

Weibull distribution
Run Code Online (Sandbox Code Playgroud)

我想根据上述估计绘制危险函数和生存函数.
我不想使用predict()pweibull()(如此处所示参数生存或此处的问题.

我想用这个curve()功能.我有什么想法可以做到这一点?似乎幸存者的Weibull函数使用了比平常更多的尺度和形状定义(并且与例如rweibull不同).

更新:我想我真的需要它来表达危害/存活的估计的函数Intercept,age (+ other potential covariates),Scale不使用任何现成的*weilbull功能.

plot r parametric-equations survival-analysis weibull

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

在 Python 中拟合参数曲线

我有该形式的实验数据(X,Y)和该形式的理论模型,(x(t;*params),y(t;*params))其中t是物理(但不可观察)变量,*params是我想要确定的参数。是连续变量,模型中和之间存在t1:1 关系。xtyt

在完美的世界中,我会知道(参数的真实世界值)的值T,并且能够进行极其基本的最小二乘拟合来找到 的值*params。(请注意,我并没有x尝试在图中“连接”和的值y,例如3124300231464345。)我无法保证在我的实际数据中,潜在值T是单调的,因为我的数据是跨多个周期收集的。

我对手动进行曲线拟合不太有经验,并且必须使用极其粗糙的方法,而无法轻松访问基本的 scipy 函数。我的基本方法包括:

  1. 选择 的一些值*params并将其应用于模型
  2. 获取一个值数组t并将其放入模型中以创建一个数组model(*params) = (x(*params),y(*params))
  3. X(数据值)插值model得到Y_predicted
  4. Y在和之间运行最小二乘(或其他)比较Y_predicted
  5. 再次执行此操作以获得一组新的*params
  6. 最终选择最佳值*params

这种方法有几个明显的问题。

1)我在编码方面没有足够的经验来开发一个非常好的“再做一次”,而不是“尝试解决方案空间中的所有内容”,或者“在粗网格中尝试所有内容”,然后“在稍微稍稍的范围内再次尝试所有内容”在粗网格的热点中形成更细的网格。” 我尝试做MCMC方法,但我从未找到任何最佳值,主要是因为问题2

2)步骤2-4本身效率非常低。

我尝试过类似的东西(类似于伪代码;实际的函数是组成的)。关于在 A、B 上使用广播可能会出现许多小问题,但这些问题没有需要对每个步骤进行插值的问题那么重要。

我认识的人建议使用某种期望最大化算法,但我对此了解不够,无法从头开始编写代码。我真的希望有一些很棒的 scipy (或其他开源)算法我还没有找到能够解决我的整个问题,但目前我不抱希望。

import numpy as np
import scipy as sci
from …
Run Code Online (Sandbox Code Playgroud)

python model-fitting parametric-equations

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

如何将参数方程转换为笛卡尔形式

我需要将平面方程从参数形式转换为笛卡尔形式。例如:

(1, 2, -1) + s(1, -2, 3) + t(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

至:

ax+yb+cz+d=0
Run Code Online (Sandbox Code Playgroud)

因此,基本上,我的问题是:如何找到a,b,c和d,以及转换背后的逻辑是什么?

geometry vector linear-algebra parametric-equations

5
推荐指数
1
解决办法
3万
查看次数

具有numpy的参数方程

我目前正在python中实现一个称为回声状态网络(ESN)的回归神经网络(RNN),用于时间序列分类(TSC).

我想用参数方程生成轨迹,然后训练我的神经网络对这些轨迹进行分类,就像MickaelHüsken和Peter Stagge,时间序列分类的递归神经网络这篇文章一样.最后,我想比较我的ESN和他们的RNN之间的性能.
好吧,我遇到了其中一个轨迹的问题.

以下是根据本文的三个类:

在此输入图像描述
哪个应该生成这样的东西: 在此输入图像描述

我生成每个类的50个轨迹,alpha是固定为0.7的浮点数,beta和t0是在0和2*pi之间随机选择的.轨迹包含30个点,因此时间步长为(2*pi)/ 30.

这是我的代码,我知道它不是最pythonic的方式,但它完成了第一和第三类的工作.但是,第二类仍然被窃听:(

import numpy as np
import sys, getopt, random

timestep = 2.0*np.pi / 30.0
alpha = 0.7

def class1(t, beta):
    return alpha*np.sin(t+beta)*np.abs(np.sin(t)), alpha*np.cos(t+beta)*np.abs(np.sin(t))

def class2(t, beta):
    return alpha*np.sin(t/2.0+beta)*np.sin(3.0/2.0*t), alpha*np.cos(t+beta)*np.sin(2.0*t)

def class3(t, beta):
    return alpha*np.sin(t+beta)*np.sin(2.0*t), alpha*np.cos(t+beta)*np.sin(2.0*t)

def generate():
    clazz = {
            '1' : class1,
            '2' : class2,
            '3' : class3
            }

    for classID in clazz :
        for i in xrange(50):
            fd = open("dataset/%s_%s"%(classID, i+1), 'w')
            beta = 2*np.pi*np.random.random()
            t = 2*np.pi*np.random.random() …
Run Code Online (Sandbox Code Playgroud)

python numpy parametric-equations

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

如何在R中绘制极坐标?

假设(x(t),y(t))具有极坐标(√t,2πt).绘图(x(t),y(t))为t∈[0,10].

R中没有适当的功能用极坐标绘图.我通过给出x =√t&y =2πt尝试了正常的情节.但结果图并不像预期的那样.

我从"使用r进行科学编程和模拟的介绍"中得到了这个问题,书中说的是情节应该是螺旋式的.

r parametric-equations polar-coordinates

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

如何找到2D线的法线向量?

我有一条带有点a,(6,12)和b点(45,18)的线.

要使用向量描述此行,方程式为L = [6,12] + t [39,6]

我怎样才能找到这条线的法线?

math parametric-equations

4
推荐指数
1
解决办法
3万
查看次数

在R中绘制矩阵方程

我是R的新手,我需要绘制二次矩阵方程:

x^T A x + b^T x + c = 0

在R ^ 2中,A是2x2,ba 2x1和ca常数.该等式用于定义点类的边界.我需要绘制边界x0 = -6...6,x1 = -4...6.我的第一个想法是生成一堆点并看到它们在零的位置,但它取决于数字之间的增量(很可能我不会猜测哪些点为零).

有没有一种更好的方法,而不仅仅是生成一堆点,看看它在哪里为零或乘以它?任何帮助将非常感激,

谢谢.

plot r matrix parametric-equations

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