如何计算c中的微分系数
感谢很多人到目前为止对我的帮助,但是我犯了一个很大的错误,我需要在一个特定的点上推导一个函数 我必须计算一个函数的一阶导数,但我真的不知道如何得到它。如果我要计算一个只有X^1的函数,我会知道如何计算,但我真的被困在这里了 老东西: 函数可以看起来像2*x^2+1 方法必须如下所示:双abdouble fdouble,双x 我的教授给了我们一个提示,我们可能应该使用这个函数: fx0+∆x−fx0/x0+∆x−x0如何计算c中的微分系数,c,math,numerical-methods,derivative,differentiation,C,Math,Numerical Methods,Derivative,Differentiation,感谢很多人到目前为止对我的帮助,但是我犯了一个很大的错误,我需要在一个特定的点上推导一个函数 我必须计算一个函数的一阶导数,但我真的不知道如何得到它。如果我要计算一个只有X^1的函数,我会知道如何计算,但我真的被困在这里了 老东西: 函数可以看起来像2*x^2+1 方法必须如下所示:双abdouble fdouble,双x 我的教授给了我们一个提示,我们可能应该使用这个函数: fx0+∆x−fx0/x0+∆x−x0 对不起,我的英语不好,谢谢你事先给我的任何提示。这个想法是近似于f在x处的一阶导
对不起,我的英语不好,谢谢你事先给我的任何提示。这个想法是近似于f在x处的一阶导数,即正割线通过点x、fx和x的斜率+∆x、 外汇+∆十,
该示例将帮助您开始。此示例将帮助您开始:
#include<stdio.h>
#include <stdlib.h>
float func(float x)
{
return(2*x*x + 1);
}
int main(){
float h=0.01;
float x;
float deriv, second;
printf("Enter x value: ");
scanf("%f", &x);
// derivative at x is the slope of infinitely small
// line of the function
deriv = (func(x+h) - func(x))/h; // I assumed the length to be h
//for second derivative you can use:
second = (func(x+h) - 2*func(x) + func(x-h))/(h*h);
printf("%f\n", deriv);
return 0;
}
取delta=0.01,试着实现你给出的公式。假设你想手工近似函数的导数。你会怎么做?你的函数是什么样的?你说它只是X^1,这似乎意味着它是一个线性函数a X+b。如果是的话,导数就是a。你可以从第一原理来证明这一点+∆它必须能够处理所有类型的函数,所以没有具体的函数。我曾经有过这样的函数,但认为它是错误的,因为我没有数学参考,但我只是找到了一个参考,感谢NPEs链接,感谢你,我有一个代码参考。现在,除了从错误的描述中,我也明白了我做错了什么。我真的很想给你们两个一个正确的答案,但我必须掷硬币:D@chouaib你可能也知道如何使它也适用于二阶导数吗?@Akkyen我用fx+h-fx/h表示一阶导数,你可以用fx+h-2fx+fx-h/h*h表示二阶导数等等…@duffymo:不,这没有错!我说这是一个示例,不是一个解决方案,所以我可以使用任何示例函数来演示解决它的方法。在那之后,由他来理解和改变需要什么才能得到他想要的解决方案,因为他明确要求2*x*x+1,我认为你会效仿他的例子。一个不理解这个简单想法的学生可能会愚蠢到不看代码就剪切粘贴代码。不过,我明白你的意思。