我正在尝试创建一个找到方程根的程序.关于我的程序的一切工作都很好,除了方程本身:它不断返回错误的值(1,无穷大,0,...).
这是我正在评估的功能:
double f(x) {
return exp(-x)-sin(M_PI*x/2.);
}
Run Code Online (Sandbox Code Playgroud)
例如,f(.3)应该是.287,但它返回1.000.奇怪的是,我前一段时间在另一台计算机上尝试了完全相同的代码并且工作得很好.
我必须制作一个程序,使用辛普森方法和梯形方法计算函数的积分.使用MinGW在我的计算机上工作得很好,但是当我尝试在我的uni计算机上编译它时,我得到:
It = 0 //should be 0.954499
*pn = 0 //should be 18
Is = 0 //should be 0.954500
*pn = 0 //should be 6
Run Code Online (Sandbox Code Playgroud)
这就是我提出的(对不起,变量和评论都是葡萄牙语,我会在回家后再修复):
integral.h:
#include <stdio.h>
#include <math.h>
#define eps 1.e-6
#define kmax 20
double trapezio(double (*f)(double x), double a, double b, int *n);
double simpson(double (*f)(double x), double a, double b, int *n);
Run Code Online (Sandbox Code Playgroud)
integral.c:
#include "integral.h"
#define xmin -2
#define xmax 2
double f(double x);
int main(){
double It,Is;
int n = 0;
int *pn = …Run Code Online (Sandbox Code Playgroud)