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处的导数值
MATLAB实现数值微分,案例丰富【数学建模、科学计算算法】.zip
版权申诉
23 浏览量
2023-04-21
18:08:16
上传
评论
收藏 11KB ZIP 举报
不脱发的程序猿
- 粉丝: 24w+
- 资源: 5791
最新资源
- 疯狂吃月饼游戏小程序前端源码
- 知识领域: 人工智能 技术关键词: TensorFlow、Keras、深度学习、神经网络
- 知识领域: 自动化测试 技术关键词: pytest、unittest、自动化测试、测试框架
- 知识领域: 数据库管理 技术关键词: SQLAlchemy、数据库、ORM、SQL 内容关键词: 数据库连接、数据查询、数据操作
- 知识领域: 网络编程 技术关键词: socket、网络编程、异步IO、TCP/IP 内容关键词: 客户端、服务器、网络协议
- 知识领域: 自然语言处理 技术关键词: NLTK、spaCy、文本处理、语言模型
- 硬件工程师毕业设计心形灯PCB原理图+程序
- 开源光谱分析仪博客的代码
- 基于深度学习的工业缺陷检测(续篇)
- 大创项目编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈