可能重复:
方程驱动的平滑阴影同心形状
我怎么能在R中绘制一个对称的心脏,就像我绘制一个圆圈(使用plotrix)或一个矩形?
我想要这样的代码,这样我才能真正为自己做这件事,并能够将其推广到类似的未来需求.我已经看到了比这更精细的情节所以它非常可行,只是因为我缺乏这方面的知识.
希望创建有趣的视频过渡(灰度).
给定代表闭合对称形状的方程,绘制轮廓并同心地将形状朝向其中心着色.
考虑以下等式:
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)点.
谢谢!
我有一个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
我有以下幸存模型:
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
功能.
我有该形式的实验数据(X,Y)
和该形式的理论模型,(x(t;*params),y(t;*params))
其中t
是物理(但不可观察)变量,*params
是我想要确定的参数。是连续变量,模型中和之间存在t
1:1 关系。x
t
y
t
在完美的世界中,我会知道(参数的真实世界值)的值T
,并且能够进行极其基本的最小二乘拟合来找到 的值*params
。(请注意,我并没有x
尝试在图中“连接”和的值y
,例如31243002或31464345。)我无法保证在我的实际数据中,潜在值T
是单调的,因为我的数据是跨多个周期收集的。
我对手动进行曲线拟合不太有经验,并且必须使用极其粗糙的方法,而无法轻松访问基本的 scipy 函数。我的基本方法包括:
*params
并将其应用于模型t
并将其放入模型中以创建一个数组model(*params) = (x(*params),y(*params))
X
(数据值)插值model
得到Y_predicted
Y
在和之间运行最小二乘(或其他)比较Y_predicted
*params
*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) 我需要将平面方程从参数形式转换为笛卡尔形式。例如:
(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,以及转换背后的逻辑是什么?
我目前正在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) 假设(x(t),y(t))具有极坐标(√t,2πt).绘图(x(t),y(t))为t∈[0,10].
R中没有适当的功能用极坐标绘图.我通过给出x =√t&y =2πt尝试了正常的情节.但结果图并不像预期的那样.
我从"使用r进行科学编程和模拟的介绍"中得到了这个问题,书中说的是情节应该是螺旋式的.
我有一条带有点a,(6,12)和b点(45,18)的线.
要使用向量描述此行,方程式为L = [6,12] + t [39,6]
我怎样才能找到这条线的法线?
我是R的新手,我需要绘制二次矩阵方程:
x^T A x + b^T x + c = 0
在R ^ 2中,A是2x2,ba 2x1和ca常数.该等式用于定义点类的边界.我需要绘制边界x0 = -6...6
,x1 = -4...6
.我的第一个想法是生成一堆点并看到它们在零的位置,但它取决于数字之间的增量(很可能我不会猜测哪些点为零).
有没有一种更好的方法,而不仅仅是生成一堆点,看看它在哪里为零或乘以它?任何帮助将非常感激,
谢谢.