标签: integral

什么是在.NET中划分两个整数值并获得浮点商的最高效方法?

考虑C#中的以下签名:

double Divide(int numerator, int denominator);
Run Code Online (Sandbox Code Playgroud)

以下实现之间是否存在性能差异?

return (double)numerator / denominator;

return numerator / (double)denominator;

return (double)numerator / (double)denominator;
Run Code Online (Sandbox Code Playgroud)

我假设上述两个都返回相同的答案.

我错过了其他任何等效解决方案吗?

.net floating-point performance division integral

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

矩形方法C++

我从这里复制了一个示例项目,但我不明白它的一部分:(i - 0.5).为什么(i - 0.5)要计算?

double rectangle_integrate(double a, double b, int subintervals, double (*function)(double))
{
   double result;
   double interval;
   int i;

   interval=(b-a)/subintervals;
   result=0;

   for(i=1;i<=subintervals;i++){
      result+=function(a+interval*(i-0.5));
   }
   result*=interval;

   return result;
} 
Run Code Online (Sandbox Code Playgroud)

c++ integral

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

如何在R中的for循环中使用sum函数?

在此输入图像描述

我们想要计算线性图中积分的值.为了更好地理解照片.假设总面积为1.我们想要找出某个部分的值是什么.例如,我们想要知道,如果一切都是指月份,那么总体100%中有多少%位于第10个月和第11个月内,而A最大值是24个.我们可以计算积分然后应该能够通过以下方式获得搜索区域: F(x) - F(x-1)我对以下代码感兴趣:

a <- 24
tab <-matrix(0,a,1)
tab <-cbind(seq(1,a),tab)
tab<-data.frame(tab)

#initialization for first point
tab[1,2] <- (2*tab[1,1] / a - tab[1,1]^2 / a^2)

#for loop for calculation of integral of each point - integral until to the area
for(i in 2:nrow(tab))
{tab[i,2] <- (2*tab[i,1] / a - tab[i,1]^2/ a^2) - sum(tab[1,2]:tab[i-1,2])}
#plotting
plot(tab[,2], type="l")
Run Code Online (Sandbox Code Playgroud)

如果你看到情节 - 这很令人困惑.任何想法如何处理这个正确吗?

for-loop r sum integral

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

如何在Python中集成3D函数?

我正在编写一个脚本,允许人们执行涉及积分的特定数学运算。对于单积分,我使用scipy.integrate.quad. 但在某些情况下,我想要执行三重多元积分,如下所示:

在大多数情况下,变量不应超过 3 个,而且我愿意使用不超出三重积分的东西。有谁知道任何包、函数甚至脚本可以让我解决类似所示方程的问题?

python math numpy integral scipy

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

使用Riemann Sum的C++集成解决方案:丢失超过10个分区的有效性

为了编写最简单的解决方案,我可以使用黎曼和来近似积分,我遇到了一个奇怪的问题:如果用户请求的分区数超过10,则程序失败.有什么想法吗?这是代码:

// The Integral

#include <algorithm>
#include <iomanip>
#include <ios>
#include <iostream>
#include <stdexcept>
#include <iomanip>

using std::cin;     using std::cout;
using std::endl;    

int func (int x);

int main () 
{   
    cout << "Please enter left and right bounds: ";

    int left, right;
    cin >> left >> right;

    cout << "Please enter a # of partitions (>0): ";

    int R;
    cin >> R;

    int width = (right - left) / R;
    int total = 0;

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

c++ integral

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

python中插值多项式的积分函数

我有一组点,在这些点上我使用 scipy 来计算插值多项式。我希望拥有该函数的原语

self.p=interpolate.interp1d(self.__discreteDistribution['x'], self.__discreteDistribution['y'], kind='cubic')
Run Code Online (Sandbox Code Playgroud)

我可以轻松地使用 scipy 计算一个区间内的积分值,使用

integrate.quad(self.p, 0, max)
Run Code Online (Sandbox Code Playgroud)

我想要的是拥有 self.p() 的原语。我找到了 sympy,但我没有插值多项式的分析版本。

在这种情况下你会做什么?

python numpy integral scipy

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

无法在MATLAB中求解不定积分

为了解决不确定的积分问题,我提出了一个与本书解决方案不一致的解决方案.为了检查我的解决方案,我尝试使用此代码解决问题:

syms x
question=int(1/(x*(1+x^5)^0.5))`   
mysolution=(1/5)*(log(((sqrt(1+x^5))-1)/(sqrt(1+x^5)+1)))
x=3  
eval(question)  
eval(mysolution)
Run Code Online (Sandbox Code Playgroud)

结果导致:

ans =-0.0256 - 0.6283i
ans =-0.0256
Run Code Online (Sandbox Code Playgroud)

我必须找到一个不定积分的解决方案但是当我给MATLAB这个问题(解决不定积分)时,它给了另一个解决方案.为了检查我的解决方案是否是正确的,我给x使用值3 syms和eval,所以MATLAB应该显示我的回答和他自己的答案与假设x=3.

MATLAB答案的真实部分与我的答案相同,但它包含一个虚构的部分,这与我的解决方案不符.事实上,我的答案x=3并不包含任何想象中的部分.有什么不对,为什么会这样?

matlab integral

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

使用求和的绘图函数会产生错误的结果

我有一个需要绘制的方程式,并且图表输出不正确.

方程式如下:

在此输入图像描述

情节应如下所示:

在此输入图像描述

但我的代码:

clear; clc; close all;

eta      = 376.7303134617706554679; % 120pi
ka       = 4;
N        = 24;
coeff    = (2)/(pi*eta*ka);
Jz       = 0;

theta = [0;0.0351015938948580;0.0702031877897160;0.105304781684574;0.140406375579432;0.175507969474290;0.210609563369148;0.245711157264006;0.280812751158864;0.315914345053722;0.351015938948580;0.386117532843438;0.421219126738296;0.456320720633154;0.491422314528012;0.526523908422870;0.561625502317728;0.596727096212586;0.631828690107444;0.666930284002302;0.702031877897160;0.737133471792019;0.772235065686877;0.807336659581734;0.842438253476592;0.877539847371451;0.912641441266309;0.947743035161167;0.982844629056025;1.01794622295088;1.05304781684574;1.08814941074060;1.12325100463546;1.15835259853031;1.19345419242517;1.22855578632003;1.26365738021489;1.29875897410975;1.33386056800460;1.36896216189946;1.40406375579432;1.43916534968918;1.47426694358404;1.50936853747890;1.54447013137375;1.57957172526861;1.61467331916347;1.64977491305833;1.68487650695319;1.71997810084804;1.75507969474290;1.79018128863776;1.82528288253262;1.86038447642748;1.89548607032233;1.93058766421719;1.96568925811205;2.00079085200691;2.03589244590177;2.07099403979662;2.10609563369148;2.14119722758634;2.17629882148120;2.21140041537606;2.24650200927091;2.28160360316577;2.31670519706063;2.35180679095549;2.38690838485035;2.42200997874520;2.45711157264006;2.49221316653492;2.52731476042978;2.56241635432464;2.59751794821949;2.63261954211435;2.66772113600921;2.70282272990407;2.73792432379893;2.77302591769378;2.80812751158864;2.84322910548350;2.87833069937836;2.91343229327322;2.94853388716807;2.98363548106293;3.01873707495779;3.05383866885265;3.08894026274751;3.12404185664236;-3.12404185664236;-3.08894026274751;-3.05383866885265;-3.01873707495779;-2.98363548106293;-2.94853388716807;-2.91343229327322;-2.87833069937836;-2.84322910548350;-2.80812751158864;-2.77302591769378;-2.73792432379893;-2.70282272990407;-2.66772113600921;-2.63261954211435;-2.59751794821949;-2.56241635432464;-2.52731476042978;-2.49221316653492;-2.45711157264006;-2.42200997874520;-2.38690838485035;-2.35180679095549;-2.31670519706063;-2.28160360316577;-2.24650200927091;-2.21140041537605;-2.17629882148120;-2.14119722758634;-2.10609563369148;-2.07099403979662;-2.03589244590177;-2.00079085200691;-1.96568925811205;-1.93058766421719;-1.89548607032233;-1.86038447642748;-1.82528288253262;-1.79018128863776;-1.75507969474290;-1.71997810084804;-1.68487650695319;-1.64977491305833;-1.61467331916347;-1.57957172526861;-1.54447013137375;-1.50936853747890;-1.47426694358404;-1.43916534968918;-1.40406375579432;-1.36896216189946;-1.33386056800461;-1.29875897410975;-1.26365738021489;-1.22855578632003;-1.19345419242517;-1.15835259853032;-1.12325100463546;-1.08814941074060;-1.05304781684574;-1.01794622295088;-0.982844629056025;-0.947743035161167;-0.912641441266309;-0.877539847371451;-0.842438253476592;-0.807336659581735;-0.772235065686877;-0.737133471792019;-0.702031877897161;-0.666930284002303;-0.631828690107445;-0.596727096212586;-0.561625502317728;-0.526523908422871;-0.491422314528013;-0.456320720633154;-0.421219126738296;-0.386117532843439;-0.351015938948581;-0.315914345053722;-0.280812751158864;-0.245711157264007;-0.210609563369149;-0.175507969474290;-0.140406375579432;-0.105304781684575;-0.0702031877897167;-0.0351015938948580;-2.44929359829471e-16];

for n = 0:N
    if n == 0
        kappa  = 1;
    else
        kappa  = 2;
    end

    num    = (-1.^(n)).*(1i.^(n)).*(cos(n.*theta)).*(kappa);
    Hankel = besselh(n,2,ka);
    Jz     = Jz + ((num./Hankel));
end

Jz = Jz.*coeff;
x = linspace(0,2*pi,length(theta));
plot(x,abs(Jz));
Run Code Online (Sandbox Code Playgroud)

产生以下不正确的情节: 在此输入图像描述

注意,θ的值是圆柱体周围的离散角度.该方程是2D中TMz偏振圆柱的电流密度的解析解.

matlab plot trigonometry integral bessel-functions

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

在 R 中查找反导数

我希望能够在 R 中找到任意函数的反导数。

假设我已经得到f = 1/(2*x^2)并想要找到 F,顺便说一下,它很容易手工计算。

我尝试了以下方法:

f<- function (x) {1/(sqrt(x))}

F = antiD(f)

这给了我:

Error: no applicable method for 'rhs' applied to an object of class "function"

有人可以在这里推动我朝着正确的方向前进吗?

math r integral

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

为什么在此双积分代码中使用 double 而不是 float 会给出错误的结果?

我在此页面中找到了以下代码来计算二重积分。每当我在所有变量都声明为 的情况下运行它时float,它都会给出示例积分的正确结果,即 3.91905。但是,如果我只是将所有float变量更改为double,则程序会针对该积分给出完全错误的结果 ( 2.461486)。

你能帮我理解为什么会发生这种情况吗?我希望使用精度能得到更好的结果double,但这里的情况显然并非如此。

以下是从上述网站粘贴的代码。

// C++ program to calculate
// double integral value

#include <bits/stdc++.h>
using namespace std;

// Change the function according to your need
float givenFunction(float x, float y)
{
    return pow(pow(x, 4) + pow(y, 5), 0.5);
}

// Function to find the double integral value
float doubleIntegral(float h, float k,
                    float lx, float ux,
                    float ly, float uy)
{
    int nx, ny;

    // …
Run Code Online (Sandbox Code Playgroud)

c++ precision integral

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

在 R 中使用 montecarlo 将 0 积分到 pi/2

尝试使用蒙特卡洛方法求 x^2 cosx 的积分(o 到 pi/2)。这是我第一次,所以需要一些指导。要生成随机数,我应该将积分的极限变换为 (0,1) 还是可以生成具有给定极限(0 到 pi/2)的随机数?

像这样的东西?

将积分从 (o 到 pi/2) 转换为 (0to 1),从而将函数转换为 1/x^2 sinx 生成随机数 rnorm(10000,0,1)

或者有没有办法生成像这样的随机数 rnorm(10000,0,1)*pi/2 而不必转换积分的极限

r integral montecarlo calculus

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