实验二

实验内容

1、导入数据 Errorvector4WLS.mat(地址:https://gitee.com/zggl/MATLABandNumericalAnalysis/blob/master/Errorvector4WLS.mat), 将其中的 AA 变量保存成 asci 文本型数据格式 (tab 分割). 提示:使用load函数加载,dlmwrite 或者其他数据写函数写到文件。
2、编制一个通用函数文件, 将系统当前的年月日等日期信息写入一个文本文件 (.txt)。
3、编制一个函数文件, 能够计算函数 sin(x) cos(3/2)/x在任一点的值。
4、编制一个 Matlab 文件, 能够计算函数 sin(x) 泰勒展式的前 100 项的和。
5、编制一个 Matlab 程序 (脚本和函数均可), 能够计算函数 cos(x) 泰勒展式的前 n 项和 (n 为输入参数, 要求第 n 项的系数值的绝对值小于 1E-4)。


实验综述

本实验均基于 MATLAB 2019b 版本

安装MATLAB 2019b 点击查看

实验过程

导入数据 Errorvector4WLS.mat(地址:https://gitee.com/zggl/MATLABandNumericalAnalysis/blob/master/Errorvector4WLS.mat), 将其中的 AA 变量保存成 asci 文本型数据格式 (tab 分割). 提示:使用load函数加载,dlmwrite 或者其他数据写函数写到文件。

实验代码
clc,clear,close;
load('Errorvector4WLS.mat','AA');
fid=fopen(['D:\project\matlab\MatLab\exp_2\','学号数据.txt'],'w');%写入文件路径
for i = 1:length(AA)
    fprintf(fid,'%s\t',AA(i));
    if mod(i,10) == 0
        fprintf(fid,'\n');
    end
end
fclose(fid);
实验效果

编制一个通用函数文件, 将系统当前的年月日等日期信息写入一个文本文件 (.txt)

实验代码
function exp_2_2()
clc,clear,close;
formatOut = 'yyyy/mm/dd';
todaydate = datestr(now,formatOut);
formatOuttxt = 'yyyymmdd';
todaydatetxt =  datestr(now,formatOuttxt);
TXT = '日期文件';
c = [TXT,todaydatetxt,'.txt'];
fid=fopen(['D:\project\matlab\MatLab\exp_2',c],'w');%写入文件路径
fprintf(fid,'当前日期:');
for i = 1:length(todaydate)
fprintf(fid,'%s',todaydate(i));
end
fclose(fid);
disp('创建成功')
end
实验效果

编制一个函数文件, 能够计算函数 sin(x) cos(3/2)/x在任一点的值

实验代码
function [A,B] = exp_2_3(x)
% 输出A为表达式和值
% 输出B为计算结果
% 输入X为自变量
sc = @(x) sin(x)*cos((3/2)/x);
A = ['sin(',num2str(x),')*cos((3/2)/',num2str(x),') = ',num2str(sc(x))];
B = sc(x);
end
实验效果

编制一个 Matlab 文件, 能够计算函数 sin(x) 泰勒展式的前 100 项的和

实验代码
clc,clear,close;
n = 85;
syms x,sum = 0;
for i = 0:n-1
    sum = sum + ((-1)^i/factorial(2*i+1))*x^(2*i+1);
end
disp('sin(x)的前100项泰勒展开为:')
disp(sum);
实验效果

编制一个 Matlab 程序 (脚本和函数均可), 能够计算函数 cos(x) 泰勒展式的前 n 项和 (n 为输入参数, 要求第 n 项的系数值的绝对值小于 1E-4)

实验代码
%能够计算函数 cos(x) 泰勒展式的前 n 项和 (n 为输入参数, 要求第 n 项的系数值的绝对值小于 1E-4).
clc,clear,close;
syms x,sum = 1;
i = 0;
while abs((-1)^i/factorial(2*i)) > 1E-4
    i = i+1;
    sum = sum + ((-1)^i/factorial(2*i))*x^(2*i);
end
A = ((-1)^i/factorial(2*i))*x^(2*i);
fprintf('cos(x)的前%d项泰勒展开和为:',i+1);
disp(sum);
fprintf('第%d项的系数为:',i+1);
disp((-1)^i/factorial(2*i));
实验效果