请教c程序 差分求导

请教c程序 差分求导,第1张

我是学的c++,可能不太一样吧,但是大体应该是一样的。

那个调用的函数,被调用的那个long double dcmtcf(x,y),在c++中应该是在xy前面加上定义的类型的。long double dcmtcf(double x,double y)

因为[1/x]在端点处不连续,因此在端点处(即1/x为整数的点)不可导。

所以可导区间为一段一段不连续的区间

由n=<1/x<n+1,得f(x)=[1/x]=n, 这里n为整数

而在每一段里,f(x)的导数都为0

若区间分段如下:

若n>0,则1/(n+1)<x<=1/n

若n=0,则x>1/(n+1)

若n=-1,则 x<=-1

若n<-1,则1/(n+1)<x<=1/n

syms x y dy ddy

y=12exp(-5)x^9;

dy=diff(y,x)

ddy=diff(dy,x)

不过按照上面的写法,matlab会计算常数e^(-5),结果很不好看,所以强烈建议写成下面的形式

syms x y e dy ddy

y=12e^(-5)x^9;

dy=diff(y,x)

ddy=diff(dy,x)

运行结果为

dy = (54x^8)/(5e^5)

ddy = (432x^7)/(5e^5)

这个可以参考一下。

已知速度曲线v(t) 上的四个数据点下表所示

基本原理:

利用插值(即求过已知有限个数据点的近似函数)的基本原理,用多项式作为研究插值的工具,进行代数插值。其基本问题是:已知函数f (x)在区间[a,b]上n +1个不同点x0,…,xn处的函数值 (i = 0,1,…,n),求一个至多n 次多项式 ψn(x)

使其在给定点处与 f (x)同值,即满足插值条件: ψn(x)= =

许多工程技术中提出的计算问题对插值函数的光滑性有较高要求,如飞机的机翼外

形,内燃机的进、排气门的凸轮曲线,都要求曲线具有较高的光滑程度,不仅要连续,

而且要有连续的曲率,这就导致了样条插值的产生。

数学上将具有一定光滑性的分段多项式称为样条函数。具体地说,给定区间[a,b]

的一个分划

Δ:

如果函数s(x) 满足:

(i)在每个小区间[ ](i=0,1,…,n)上s(x)是k 次多项式;

(ii)s(x)在[a,b]上具有k −1阶连续导数。

则称s(x)为关于分划Δ 的k 次样条函数,其图形称为k 次样条曲线。

基本思路:

根据插值的基本原理,先对v进行三次样条插值,可以得到许多v(t)的值;然后根据积分的基本原理,分割、近似、求和、取极限,可以求得积分。根据求导原理,因变量的微小变化量与自变量变化量的商,可以求得所求点的导数值。

程序代码:

t0=[015 016 017 018];v0=[35 15 25 28];

t=015:00001:018;

%三次样条插值;

v=interp1(t0,v0,t,'spline');

v=spline(t0,v0,t);

pp=csape(t0,v0,'second');v=ppval(pp,t)% 使用csape函数;

S=sum(v)00001;%求积分值

T=(v(301)-v(300))/00001;%求导数值

Plot(t0,v0,’’,t,v);

以上就是关于请教c程序 差分求导全部的内容,包括:请教c程序 差分求导、怎么对[1/x](取整函数)求导、在matlab中如何输入,并且怎么求一阶导数和二阶导数,求在matlab中的输入程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9472938.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存