有人能帮我写出方案中辛普森规则方法的主体吗?下面是我到目前为止所得到的,但我不知道是应该递归地解决这个问题,还是使用不同的方法。
(define (sum-i term a b)
(if (= a b)
(term b)
(+ (term a) (sum-i term (+ a 1) b))))
(sum-i (lambda (x) x) 0 1)
(sum-i (lambda (x) (* x x)) 0 1)
(sum-i (lambda (x) (* x x x x)) 0 1)
(define (simpsons-rule f a b n)
(let
对于数值方法类,我需要写一个程序,用辛普森合成法则计算定积分。我已经说到这里了(见下文),但我的答案不正确。我正在测试f(x)=x的程序,积分超过0到1,其结果应该是0.5。我得到0.78746..。我知道Scipy中有一个辛普森法则,但我真的需要自己写。
我怀疑这两个循环有问题。我以前尝试过"for i in range(1,n,2)“和"for i in range(2,n-1,2)”,结果是0.41668333...我还尝试了"x += h“和"x += i*h”。第一个给了我0.3954,第二个给了7.9218。
# Write a program to
我需要在Python中计算和绘制下面的积分:
函数e^(-t^2)从x=0到x=3的积分
到目前为止,我已经成功地用辛普森法则计算了积分。我正在挣扎的下一步是绘制e^(-t^2)与x从x=0到x=3的积分(见上面的图像)。
这是我写的计算积分的代码-
from math import exp
def f(t):
return exp(-(t**2))
a = 0
b = 3
h = 0.1
N = int((b-a)/h)
s_even = 0
s_odd = 0
for k in range(1,N,2):
s_odd += f(a+k*h)
for k i
代码:(是的,我知道它的效率很低,而且通常相当糟糕。我只是想知道为什么它不起作用。)数学可能是错误的,但编码很可能是错误的。任何帮助都会很好。
public class NormalDistribution {
static void normalDistributionDecode(double u, double sd, double x) {
double z = ((x-u)/sd);
System.out.println("The point "+x+" on a normal distribution "
+"wi
我正在尝试使用扩展的梯形方法在C++中数值计算积分。我尝试积分的方程是(ln(x))^2,使用200个辛普森点。但是,当x接近0时,它接近无穷大,所以当我试图找到(ln( 0 ))^2的值时,它返回"inf“。如何最准确地估计lowerBound (0)和第一个辛普森点(1/200)之间的面积?
我尝试将lowerBound设置为双精度的最小值,但它在曲线上方包含太多额外区域,从而破坏了近似值。
/* Sum f2 ... fx */
for (int i = 1; i < points; i++) {
u = ((upperBound - lowerBound) / p
该问题的解为辛普森1/3法则的1.732400451459101。相反,程序给我的解决方案是1.73239801
有人能帮我吗?提前谢谢。
clc
clear
close all
f = @(x) sin(x);
a = 0.1;
g = a;
b = 2.4;
k = 19;
n = 2*k;
S = 0;
h = (b-a)/n;
for i=1:k
S=S+(h/3)*(f(a)+4*f(a+h)+f(a+2*h));
a=a+2*h;
end
fprintf('La integral se aproxima a: %0.8f \n',S
我正在尝试使用math.net数字库来实现辛普森规则。我想使用的方法有四个参数,一个Func (函数指针)、intervalBegin、intervalEnd和partitionNumbers。目前我正在使用Math.Sin测试这个方法,但是有人能帮助我理解如何实现这个Func吗?
var test = MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(Math.Sin, 1, 4, 20);
我们的任务是使用渐近来计算函数的精确定积分,然后将其与从我们编写的另一个python函数获得的定积分的近似值进行比较。对于简单的多项式函数,我的代码工作得很好,但是对于复杂的正弦函数,它要么中断,要么返回nan。
from numpy import *
def simpson(f,a,b,n):
if n<=0 or n%2!=0:
print('Error: the number of subintervals must be a positive even number')
return float('NaN')
h = flo
我在控制台中定义了一个自定义槽类型,该槽包含一个名称列表,如下所示。
homer simpson
ned flanders
principal skinner
comic book guy
然后,我将示例语句定义如下。
PlayAudio to play {Name}
因此,最后,我希望用户能够说出类似于折叠的内容:
亚历克莎,请辛普森一家演荷马辛普森
亚历克莎,让辛普森一家演内德·弗兰德斯
亚历克莎,让辛普森一家扮演斯金纳校长
亚历克莎,让辛普森一家演漫画书
当然,Alexa很有可能不正确地听到这个名字,所以我需要能够匹配尽可能接近其中一个插槽值的名称。
我该怎么做呢?我需要在函数中
根据辛普森的1-3 (h / 3)方法找到以下积分的C代码如下所示。适当地填写代码上的空白处。下面我想用Matlab来解决这个问题,但是我没有做到。这是一个简单的问题,但我做不到。如果有人愿意帮助我,我会很高兴的。 C code version [C代码版本2 我在Matlab中尝试了这个代码块: % Ask for user input
% Lower bound (a)
a = input('What is your lower bound (a)?')
% Upper bound (b)
b = input('What is your upper bound (
所有人。
我只是在用中点法则和Simpson法则计算x^2的积分。我发现,在相同的子区间下,中点规则近似比Simpson规则近似更精确,这是非常奇怪的。
中点规则近似的源代码是:
program midpoint
implicit none ! Turn off implicit typing
Integer, parameter :: n=100 ! Number of subintervals
integer :: i ! Loop index
real :: xlow=1.0, xhi=2.0 ! Bounds
我想画一个图来说明一个简单函数(y=x^2)的辛普森/梯形积分公式。scipy中的simps和trapz函数对计算面积很有帮助,但我也想在原始曲线上叠加梯形/抛物线。我想知道是否有任何现有的例程,如果没有,它将有助于获得一些关于如何制作这些图的想法。
import numpy as np
from scipy.integrate import simps, trapz
x=np.arange(9)
y=x**2
area=simps(y,x)
print area
area=trapz(y,x)
print area
plot(y,