function df=CISimpson(func,x0,n,h)
if nargin == 2 %以下是参数的判断过程
h = 0.1;
n = 5;
else
if (nargin == 3 )
if (n<5)
disp('n不能小于5!');
return;
else
h = 0.1;
end
else (nargin == 4 && h == 0.0)
disp('h不能为0!');
return;
end
end
for(i=1:n) %这个循环计算节点的函数值
if (mod(n,2) == 0)
y(i)= subs(sym(func), findsym(sym(func)),x0+(i-n/2)*h);
else
y(i)= subs(sym(func), findsym(sym(func)),x0+(i-(n+1)/2)*h);
end
end
f(1)=(y(3)-y(1))/(2*h);
f(2)=(y(n)-y(n-2))/(2*h); %这两行用中心微分法给出端点的导数
b(1:n-2,1) = zeros(n-2,1);
b(1,1)=3*(y(3)-y(1))/h-f(1);
b(n-2,1)=3*(y(n)-y(n-2))/h-f(2);
for(i=2:(n-3))
b(i,1) = 3*(y(i+2)-y(i))/h;
end %这一块是辛普森公式的右边的列向量
for(i=1:n-2)
for(j=1:n-2)
if( (i == j+1) || (j == i+1))
A(i,j)= 1;
else if( i == j)
A(i,j) = 4;
end
end
end
end %这一块是系数矩阵
[Q,R]=qr(A);
DF = R\(Q\b); %用QR分解法求解
if( mod(n,2) == 0)
df = DF(n/2);
else
df = DF((n+1)/2);
end %这里是求出x0处的导数值
113.MATLAB编程 数值微分 源程序代码.rar
版权申诉
99 浏览量
2023-08-10
10:55:10
上传
评论
收藏 6KB RAR 举报
![avatar](https://profile-avatar.csdnimg.cn/217f9f4a282943c2bd903956ea10b5d2_baidu_38876334.jpg!1)
小正太浩二
- 粉丝: 200
- 资源: 5915
最新资源
- 通信仿真,mseed-process-master.zip
- python,python-scheduling.rar
- python,python-quantum.rar
- python,python-project-euler.rar
- Linux常用命令及用法说明
- 基于Matlab的FFT频谱分析及IIR数字滤波器设计
- AutoCAD高压低压电气开关柜设备接线图图纸
- AutoCAD电气图纸建筑电气开关柜常用cad图纸
- 使用ASP.NET Core和Entity Framework Core来构建一个基本的进销存系统.rar
- 深度学习经典数据集+FER2013面部表情识别+附带使用方法的python代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)