习题一 第5题
function cos_num = func_ex5(x, num_terms)
% 利用泰勒展开计算余弦函数的值
% 输入: x - 计算余弦值的角度,num_terms - 泰勒展开的项数
% 输出: cos1 - 余弦函数的近似值
cos_num = 0;
for n = 0:num_terms-1
term = ((-1)^n * x^(2*n)) / factorial(2*n);
cos_num = cos_num + term;
end
end
% 计算 cos(1) 的值,使用 6 项
x = 1;
num_terms = 6;
cos_num = cosine(x, num_terms);
% 输出结果并保留 4 位有效数字
fprintf('cos(1) 近似值为: %.4f\n', cos_num);
习题一 第6题
% 计算 7^(1/2)
a_sqrt = 3;
b_sqrt = 7 - a_sqrt^2;
sqrt_7 = a_sqrt + b_sqrt / (2 * a_sqrt);
% 计算 7^(1/3)
a_cube = 2;
b_cube = 7 - a_cube^3;
cube_7 = a_cube + b_cube / (3 * a_cube^2);
% 输出结果并保留 4 位有效数字
fprintf('7^(1/2) 近似值为: %.4f\n', sqrt_7);
fprintf('7^(1/3) 近似值为: %.4f\n', cube_7);
数值实验一 第6题
function B = func_lab6(A)
% 对矩阵 A 的对角元素按绝对值从大到小排列,进行行列相同的置换并输出处理后的矩阵。
% 输入:
% A: 对称矩阵 (方阵)
% 输出:
% B: 经过置换后的矩阵
% 确保输入的矩阵是一个方阵
[m, n] = size(A);
if m ~= n
error('输入矩阵必须是方阵');
end
% 获取矩阵的对角元素
diag_A = diag(A);
% 按对角元素的绝对值从大到小排序,返回排序后的索引
[~, order] = sort(abs(diag_A), 'descend');
% 根据排序后的索引进行矩阵行列置换
A_1 = A(order,:);
B = A_1(:, order);
end
数值实验一 第9题
% 输入参数
a = 2; % 例:a 的值
b = 1; % 例:b 的值
c = 3; % 例:c 的值
% 网格生成
[x, y] = meshgrid(linspace(-a*1.5, a*1.5, 100), linspace(-b*1.5, b*1.5, 100));
value = x.^2/a^2 + y.^2/b^2 - 1;
% 计算 z 的值
% 仅计算有效区域的 z 值,避免复数
valid = value >= 0;
z_pos(valid) = sqrt(value(valid)) * c;
z_neg(valid) = -sqrt(value(valid)) * c;
% 绘制图像
figure;
hold on;
% 绘制上表面
surf(x, y, z_pos, 'FaceAlpha', 0.5, 'EdgeColor', 'none');
% 绘制下表面
surf(x, y, z_neg, 'FaceAlpha', 0.5, 'EdgeColor', 'none');
% 图像设置
xlabel('x');
ylabel('y');
zlabel('z');
title('单叶双曲面 x^2/a^2 + y^2/b^2 - z^2/c^2 = 1');
axis equal;
grid on;
hold off;