我写了这个代码来计算一个角度的正弦。对于较小的角度来说,这很好,比如+-360。但随着更大的角度,它开始给出错误的结果。(当我说“更大”时,我的意思是在+-720或+-1080范围内)
为了获得更准确的结果,我增加了循环运行次数。这给了我更好的结果,但也有其局限性。
所以我想知道我的逻辑中是否有任何错误,还是我需要摆弄循环中的条件部分?我如何克服代码的这个缺点?内置的java正弦函数给出了正确的结果,所有的角度,我有tested..so,我做错了什么?
另外,有人能告诉我如何修改循环的条件,直到得到所需的十进制精度为止吗?
import java.util.Scanner;
class S
根据的说法
“傅立叶变换表明,任何波形都可以重写为正弦函数的和。”
我有一些信号(每个信号的形状为256,64),我想要将它们分解为子信号,然后使用这些子信号来生成真实的信号。我现在是这样做的:
#getting data
with open('../f', 'rb') as fp:
f=pickle.load(fp)
from scipy.fftpack import fft, dct
f=f[0]
tf=fft(f)
x=np.reshape(np.abs(tf),(256,64))
plt.plot(x)
plt.show()
pri
为什么当参数接近pi的非零倍数时,sinl会给出不正确的结果?当参数很大时,为什么sinl给出不正确的结果?下面的代码说明了这一点。
请注意,用于初始化变量pi的数字与任何64位长的双精度值都不完全匹配。编译器选择最接近的值,即3.14159265358979323851280895940618620443274267017841339111328125。预期的正弦值可以使用libquadmath、gnu MPFR lib或在线计算器(如 )找到。
#include <stdio.h>
#include <math.h>
int main (int argc, cha
我正在创建一个Android应用程序来监听您的麦克风输入。当它在监听时,我有一个包含一些正弦波图形的图像滚动过去,让用户知道应用程序正在监听。我有一个水平滚动视图中的正弦波图像,它会自动滚动。正弦波图像为8000x484。当我运行应用程序时,我在运行时收到以下警告:
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (8000x484, max=4096x4096)
并且不渲染正弦波图像。如何解决此问题?
你好,我正在解决一个与时间序列有关的问题.
我正在绘制y= sin (x)值为10000
然后,对于每个值(y),我将根据下一个值(0到1)计算的索引关联起来。
如果下150个值低于当前值,则如果下一个150个值高于当前值,则此索引将设置为1,则此索引将设置为0。
然后,我尝试使用tensorflow/keras建立一个LSTM网络,以便根据最近的150个值来预测这个指数,这对于窦性功能来说应该是非常微不足道的。
下面是代码和解释:
I使用sin(x)的10000值创建一个数组
import numpy as np
import math
from matplotlib import pypl
我想要得到离给定点x米远的点的坐标。
我找到了这个代码,它给出了两个坐标对之间的距离,但我想给出一个坐标对和距离,并返回给定距离的点的坐标。
我认为也需要给出一个角度,否则结果将是一个圆。我从那里得到了以下内容
function measure(lat1, lon1, lat2, lon2){ // generally used geo measurement function
var R = 6378.137; // Radius of earth in KM
var dLat = lat2 * Math.PI / 180 - lat1 * Math.PI / 180;
var dLon
我正在尝试使用简单的快速傅立叶变换来做一些函数的傅里叶变换,但显然numpy和scipy快速傅立叶变换即使在1024点也不能很好地工作。
例如,假设我想对sin(50x)+cos(80x)进行快速傅立叶变换。然后,在k=50点上应该是纯虚构的,k=80应该是纯实数的。通常会有一些误差,但是使用1024这样大的点数通常会产生非常令人满意的输出。但这里的输出中有相当多的错误。随着点数的增加,结果不会有太大改善。
有人能解释一下这是什么原因吗?
我在Python中尝试了以下代码:
from __future__ import division
import numpy as np
import ma
在32位系统上,我发现下面的操作在a< 2^31时总是返回正确的值,但在a较大时返回随机结果。
uint64_t a = 14227959735;
uint64_t b = 32768;
float c = 256.0;
uint64_t d = a - b/ c; // d returns 14227959808
我相信这里的问题是int- that操作返回未定义的行为,但是有人能帮助解释为什么它会给出这样的值吗?
可能重复:
请解释为什么以下程序没有给出正确的输出。
class Test
{
public static void main(String aa[])
{
float a=16.15 f;
float b =10.0f;
float c =a-b;
System.out.println(c);
}
}
/*输出:-6.1499996
我尝试在不使用Math.sin()的情况下计算角度的正弦。当我不断得到错误的结果时,我陷入了它的方程式中
请注意,我有一个将角度从度更改为弧度的方法
public static double sin(double x, int precision) {
//this method is simply the sine function
double answer = 1, power = 1;
int n = 2,factorial = 1;
while (n<=precision) {
power = (power * x * x *-1)
在我的程序中,我有一个计算方法
a = a * b * c;
d = f * b* c; // here f and a are same value
d = d - a;
当我打印d的值时,我得到了以下结果:
-1.95399e-14
因此,我设定了精度,并使用固定的cout打印变量。
结果是:
-0.00000000000001954
我希望在表达式d = d - a;之前打印d和a的值。
所以我改变了我的代码
cout<< d << endl;
cout<< a << endl;
当我包含上述两行时,表达式后面变量&
给定L和C的值,如何使用MATLAB代码生成正弦波或方波?
i tried this
l = value;
c = value;
f = 1/(2*pi*sqrt(l*c);
但它只是给出了一个值。这是很明显的。但我想得到一个连续的脉搏。因为我需要在SIMULINK中模拟它。我不能使用任何内置的SIMULINK时钟,因为我想要一个依赖于l& c的值的时钟。可以为这个东西写一个代码吗?
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from math import pi
# wave speed
c = 1
# spatial domain
xmin = 0
xmax = 1
#time domain
m=500; # num of time steps
tmin=0
T = tmin + np.arange(m+1);
tmax=500
n = 50 # num of grid point
下面是我的Matlab代码,用于求解大规模弹簧-dashpot系统的二阶ODE:
function Spring
clear all;
close all;
options=odeset('RelTol',1e-6);
p0 = [1 0]; %initial position and velocity
[t,p] = ode45(@SpringFunction, [0 20], p0, options);
plot(t,p(:,1)) %plot the first column (x) vs. time
return
function pdot = SpringF