用matlab写一个关于泰勒公式的代码,要求如下:用户选择sinx或者cosx,并选择几阶展开,绘制原函数与展开函数图像
时间: 2023-06-01 22:08:05 浏览: 86
好的,这是一个关于编程的问题,可以回答。下面是一个示例代码:
clc; clear all; close all;
disp('请选择函数:');
disp('1. sin(x)');
disp('2. cos(x)');
choice = input('');
if choice == 1
func = @sin;
func_name = 'sin(x)';
elseif choice == 2
func = @cos;
func_name = 'cos(x)';
else
disp('选择错误');
return;
end
disp('请选择展开阶数:');
n = input('');
x = linspace(-2*pi, 2*pi, 1000);
F = func(x);
G = zeros(1, length(x));
for k = 0:n
a_k = (-1)^k / factorial(2*k+1);
G = G + a_k * x.^(2*k+1);
end
figure;
plot(x, F, 'r', x, G, 'b--');
title(['原函数和', num2str(n), '阶展开函数,函数:', func_name]);
legend('原函数', '展开函数');
xlabel('x');
ylabel('f(x)');
相关问题
在同一坐标系上绘制sinx与cosx的matlab代码
### 回答1:
以下是绘制sinx与cosx的matlab代码:
x = linspace(, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);
plot(x, y1, 'r', x, y2, 'b');
xlabel('x');
ylabel('y');
legend('sin(x)', 'cos(x)');
### 回答2:
在MATLAB中,可以使用以下代码来绘制sinx与cosx的图形,并将它们绘制在同一坐标系上:
```matlab
% 定义x的范围
x = 0:0.01:2*pi;
% 计算sinx和cosx的值
y1 = sin(x);
y2 = cos(x);
% 创建一个图形窗口
figure;
% 绘制sinx的曲线
subplot(2,1,1);
plot(x, y1, 'r'); % 使用红色绘制sinx
xlabel('x');
ylabel('sin(x)');
title('sin(x)');
% 绘制cosx的曲线
subplot(2,1,2);
plot(x, y2, 'b'); % 使用蓝色绘制cosx
xlabel('x');
ylabel('cos(x)');
title('cos(x)');
% 在同一坐标系上绘制
figure;
plot(x, y1, 'r', x, y2, 'b');
xlabel('x');
ylabel('y');
title('sin(x) and cos(x)');
legend('sin(x)', 'cos(x)');
```
上述代码中,首先定义了x的范围,即0到2π之间以0.01为间隔的一组数值。然后利用这些数值计算出sinx和cosx的值。接下来,创建一个图形窗口,并使用subplot函数创建两个子图来分别绘制sinx和cosx的曲线。subplot(2,1,1)指定第一个子图,subplot(2,1,2)指定第二个子图。在每个子图中,使用plot函数绘制sinx和cosx的曲线,同时设置不同的颜色来区分它们。最后,使用plot函数在同一个坐标系上绘制sinx和cosx的曲线,并设置合适的图例以显示每条曲线的含义。
### 回答3:
在Matlab中,我们可以使用plot函数来绘制sinx和cosx的曲线。
首先,我们需要定义x轴的范围。假设我们希望在[-2π, 2π]的范围内绘制,可以使用linspace函数生成一个包含足够多点的数组。代码如下:
``` matlab
x = linspace(-2*pi, 2*pi, 100);
```
接下来,我们可以计算sinx和cosx的值。在Matlab中,可以直接使用sin和cos函数进行计算,这两个函数默认接受弧度作为参数。代码如下:
``` matlab
y_sin = sin(x);
y_cos = cos(x);
```
最后,我们可以使用plot函数将两个函数的曲线绘制在同一坐标系上。可以使用hold on命令来保持坐标系不变,以便在同一图上绘制多个曲线。同时,我们可以通过设置线条的样式、颜色等参数来美化图形。代码如下:
``` matlab
plot(x, y_sin, 'r-', 'LineWidth', 2); % 计算并绘制sinx的曲线
hold on; % 保持坐标系不变
plot(x, y_cos, 'b--', 'LineWidth', 2); % 计算并绘制cosx的曲线
hold off; % 还原坐标系
```
最后,我们可以通过添加标题、坐标轴标签等来完善图形。代码如下:
``` matlab
title('Sin(x) and Cos(x) Curve'); % 添加标题
xlabel('x'); % 添加x轴标签
ylabel('y'); % 添加y轴标签
legend('Sin(x)', 'Cos(x)'); % 添加图例
```
综合起来,完整的Matlab代码如下:
``` matlab
x = linspace(-2*pi, 2*pi, 100);
y_sin = sin(x);
y_cos = cos(x);
plot(x, y_sin, 'r-', 'LineWidth', 2); % 计算并绘制sinx的曲线
hold on; % 保持坐标系不变
plot(x, y_cos, 'b--', 'LineWidth', 2); % 计算并绘制cosx的曲线
hold off; % 还原坐标系
title('Sin(x) and Cos(x) Curve'); % 添加标题
xlabel('x'); % 添加x轴标签
ylabel('y'); % 添加y轴标签
legend('Sin(x)', 'Cos(x)'); % 添加图例
```
以上代码运行后,将在同一坐标系上绘制sinx和cosx的曲线。
用C语言编写一个用泰勒公式计算sinx得代码
以下是用 C 语言编写的使用泰勒公式计算 sin(x) 的代码:
```
#include <stdio.h>
#include <math.h>
double taylor_sin(double x) {
double result = .;
double term = x;
int i = 1;
while (fabs(term) > 1e-8) {
result += term;
term = -term * x * x / (2 * i) / (2 * i + 1);
i++;
}
return result;
}
int main() {
double x = 1.;
printf("sin(%lf) = %lf\n", x, taylor_sin(x));
return ;
}
```
这个程序使用了泰勒公式的前几项来逼近 sin(x) 的值。在循环中,我们不断计算新的项并将其加入结果中,直到新的项的绝对值小于一个很小的数(这里是 1e-8)。最后,我们返回结果。