在matlab中,用两种方法求函数sinx/(x+cos2x)的数值导数,并在同一个坐标系中做出f(x)的图像。
2个回答
2013-07-14
展开全部
做个测试,希望有所帮助。
代码
% By lyqmath
% 在matlab中,用两种方法求函数sinx/(x+cos2x)的数值导数,
% 并在同一个坐标系中做出f(x)的图像。
clc; clear all; close all;
%% 方法1
syms x
y = sin(x)/(x + cos(2*x));
dy = diff(y);
xt = linspace(0, 2*pi);
yt = subs(dy, x, xt);
%% 方法2
yt1 = diff(subs(y, x, xt));
xt1 = diff(xt);
%% 绘图
figure; hold on;
plot(xt, yt, 'r-', xt(2:end), yt1./xt1, 'k:');
结果
代码
% By lyqmath
% 在matlab中,用两种方法求函数sinx/(x+cos2x)的数值导数,
% 并在同一个坐标系中做出f(x)的图像。
clc; clear all; close all;
%% 方法1
syms x
y = sin(x)/(x + cos(2*x));
dy = diff(y);
xt = linspace(0, 2*pi);
yt = subs(dy, x, xt);
%% 方法2
yt1 = diff(subs(y, x, xt));
xt1 = diff(xt);
%% 绘图
figure; hold on;
plot(xt, yt, 'r-', xt(2:end), yt1./xt1, 'k:');
结果
2013-07-14
展开全部
注意MATLAB里表达式的格式,利用syms定义符号,然后利用diff函数求符号导数:Y=diff(X,n),求函数X的n阶导数MATLAB里运行如下:syms x y dyy=sin(x)/((x^2)+4*x+3);dy=diff(y,4)运行结果有点长,这是因为你的函数求导表达式比较复杂。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询