MATLAB导数的计算

上传人:hs****ma 文档编号:507720980 上传时间:2023-11-19 格式:DOCX 页数:5 大小:37.66KB
返回 下载 相关 举报
MATLAB导数的计算_第1页
第1页 / 共5页
MATLAB导数的计算_第2页
第2页 / 共5页
MATLAB导数的计算_第3页
第3页 / 共5页
MATLAB导数的计算_第4页
第4页 / 共5页
MATLAB导数的计算_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《MATLAB导数的计算》由会员分享,可在线阅读,更多相关《MATLAB导数的计算(5页珍藏版)》请在金锄头文库上搜索。

1、MATLAB导数的计算MATLAB求导数的方法 1数值导数的计算 问题求正弦函数的一阶导数和二阶导数 y = sinx 数学模型 函数的一阶导数为 y = cosx 函数的二阶导数为 y = -sinx 算法求差分函数为diff,对于数值向量,其功能是求后一元素与前一元素之差,如果数值间隔取得足够小,就能表示导数的近似值。 对于符号函数,可用同样的函数diff计算符号导数。 程序zyq3_1diff.m如下。 %正弦函数的导数 clear %清除变量 a=0:5:360; %度数向量 x=a*pi/180; %弧度向量 dx=x(2); %间隔(第1个值为零) y=sin(x); %正弦曲线

2、dy=diff(y)/dx; %用差分求导数的近似值 dy=dy(1),(dy(1:end-1)+dy(2:end)/2,dy(end);%求平均值 figure %创建图形窗口 %plot(x,cos(x),x(1:end-1),dy,.) %画导数曲线(数值导数偏左) %plot(x,cos(x),x(2:end),dy,.) %画导数曲线(数值导数偏右) plot(x,cos(x),x,dy,.) %画导数曲线(数值导数适中) s=sym(sin(x); %定义符号函数 sdy=diff(s); %符号导数 ssdy=subs(sdy,x,x); %替换数值 hold on %保持图像

3、plot(x,ssdy,ro) %画导数曲线 legend(公式解,数值解,符号解,4) %加图例 title(正弦函数的一阶导数) %标题 d2y=diff(dy)/dx; %用差分求导数的近似值 d2y=d2y(1),(d2y(1:end-1)+d2y(2:end)/2,d2y(end);%求平均值 figure %创建图形窗口 plot(x,-sin(x),x,d2y,.) %画导数曲线(数值导数适中) sd2y=diff(s,2); %符号二阶导数 ssd2y=subs(sd2y,x,x); %替换数值 hold on %保持图像 plot(x,ssd2y,ro) %画导数曲线 1 l

4、egend(公式解,数值解,符号解,4) %加图例 title(正弦函数的二阶导数) %标题 图示 2函数极值的计算 问题求如下函数的极值 y = x3 3x2 + x (1) 数学模型 求导数 y = 3x2 6x + 1 (2) 令y = 0,解得 1x=(36)=1.8165,0.1835 (3) 3算法将自变量设计为向量,函数设计为内线函数,用max函数和min函数求极大值和极小值。 用fminbnd函数也可求函数的极小值。将原函数定义为负的内线函数,用fminbnd函数求极小值,就是原函数的极大值。 将原函数定义为符号函数,求原函数的导数,利用fzero函数可求导数的零点,从而求原函

5、数的极值。 程序zqy3_2diff.m如下。 %函数的极值和导数 clear %清除变量 x=0:0.01:2.5; %自变量向量 f=inline(x.3-3*x.2+x); %定义原函数的内线函数 figure %开创图形窗口 plot(x,f(x),LineWidth,2) %画原函数曲线 grid on %加网格 xlabel(itx,FontSize,16) %横坐标 title(函数曲线和极值,FontSize,16) %标题 ym,im=max(f(x); %求极大值和下标 xm=x(im); %求极大值的横坐标 hold on %保持图像 plot(xm,ym,*) %画极大

6、值 2 text(xm,ym,num2str(xm),num2str(ym),FontSize,16)%标记极大值 ym,im=min(f(x); %求极小值和下标 xm=x(im); %求极小值的横坐标 plot(xm,ym,*) %画极小值 text(xm,ym,num2str(xm),num2str(ym),FontSize,16)%标记极小值 xm=fminbnd(f,0,3); %求最小值 plot(xm,f(xm),o) %画极小值 text(xm,0,num2str(xm),num2str(f(xm),FontSize,16)%显示极小值 ff=inline(-(x.3-3*x.

7、2+x); %定义原函数的内线函数 xm=fminbnd(ff,0,3); %求最小值 plot(xm,f(xm),o) %画极小值 text(xm,0,num2str(xm),num2str(f(xm),FontSize,16)%显示极小值 %return y=sym(x3-3*x2+x) %原函数的符号函数 dy=diff(y) %求导数 df=inline(char(dy) %定义导数的内线函数 x1=fzero(df,0) %求零点 x2=fzero(df,2) %求零点 stem(x1,x2,f(x1),f(x2),-o) %画杆线 text(x1,0,num2str(x1),num2str(f(x1),FontSize,16)%标记极值 text(x2,0,num2str(x2),num2str(f(x2),FontSize,16)%标记极值 结果 y = x3-3*x2+x dy = 3*x2-6*x+1 df = Inline function: df(x) = 3*x2-6*x+1 x1 = 0.1835 x2 = 1.8165 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号