1 第4章 数值运算 习题 4 及解答 1 根据题给的模拟实际测量数据的一组t 和 )(ty试用数值差分diff或数值梯度gradient指令计算)(ty ,然后把)(ty和)(ty 曲线绘制在同一张图上,观察数值求导的后果
( 模拟数据从prob_data401
mat获得) 〖目的〗 强调:要非常慎用数值导数计算
练习 mat数据文件中数据的获取
实验数据求导的后果 把两条曲线绘制在同一图上的一种方法
〖解答〗 (1)从数据文件获得数据的指令 假如 prob_data401
mat文件在当前目录或搜索路径上 clear load prob_data401
mat (2)用diff 求导的指令 dt=t(2)-t(1); yc=diff(y)/dt; %注意 yc 的长度将比 y 短 1 plot(t,y,'b',t(2:end),yc,'r') grid on 01234567-2-1
5 (3)用gradent求导的指令(图形与上相似) dt=t(2)-t(1); yc=gradient(y)/dt; plot(t,y,'b',t,yc,'r') 2 grid on 〖说明〗 不到万不得已,不要进行数值求导
假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2 个量级以上
求导会使数据中原有的噪声放大
2 采用数值计算方法,画出dtttxyx0sin)(在]10 ,0[区间曲线,并计算)5
〖提示〗 指定区间内的积分函数可用 cumtrapz指令给出
4(y在计算要求不太高的地方可用 find 指令算得
〖目的〗 指定区间内的积分函数的数值计算法和 cumtra