首先,给出函数的表达式: f(x) = (x-3).^5 + 5*(x-3).^3 - 10*(x-3) + 2 接下来,将该函数写成 MATLAB 中的句柄: f = @(x) (x-3).^5 + 5*(x-3).^3 - 10*(x-3) + 2; 然后,使用 fplot 函数画出函数的图像: fplot(f, [-5, 8]); 其中,[-5, 8] 表示 x 轴的范围。 为了找到函数的零点、最小值、最大值,可以使用 fzero 和 fminbnd 函数: % 找到零点 x1 = fzero(f, -4); x2 = fzero(f, 5); % 找到最小值 [x3, y3] = fminbnd(f, -2, 8); % 找到最大值 [x4, y4] = fminbnd(@(x) -f(x), -5, 3); 接下来,将零点、最小值、最大值标记在图上: hold on; plot(x1, f(x1), 'r*', 'MarkerSize', 10); plot(x2, f(x2), 'r*', 'MarkerSize', 10); plot(x3, y3, 'g*', 'MarkerSize', 10); plot(x4, y4, 'g*', 'MarkerSize', 10); text(x4+0.2, y4, '姓名:XXX 学号:XXX'); 其中,hold on 表示在同一张图上继续添加元素,'r*' 和 'g*' 表示红色和绿色的星形标记,text 函数用于在图上添加文本。 为了计算曲线在 y=0 以上围成的面积,可以使用 quad 函数: A = quad(f, x1, x2); 最后,在图上标注面积: text(4, 50, ['面积 A = ' num2str(A)]); 完整的代码如下:
时间: 2023-06-19 09:08:48 浏览: 121
c代码-求分段函数 y=x*x+x+6
f = @(x) (x-3).^5 + 5*(x-3).^3 - 10*(x-3) + 2;
fplot(f, [-5, 8]);
x1 = fzero(f, -4);
x2 = fzero(f, 5);
[x3, y3] = fminbnd(f, -2, 8);
[x4, y4] = fminbnd(@(x) -f(x), -5, 3);
hold on;
plot(x1, f(x1), 'r*', 'MarkerSize', 10);
plot(x2, f(x2), 'r*', 'MarkerSize', 10);
plot(x3, y3, 'g*', 'MarkerSize', 10);
plot(x4, y4, 'g*', 'MarkerSize', 10);
text(x4+0.2, y4, '姓名:XXX 学号:XXX');
A = quad(f, x1, x2);
text(4, 50, ['面积 A = ' num2str(A)]);
阅读全文