%%  演示 vpa() 函数将符号精确值转换为高精度浮点数

% 示例 1：符号 π 的默认精度数值化
% sym(pi) 将内置的双精度浮点 pi 转换为符号精确值 π
p = sym(pi);

% vpa(p) 将符号精确值转换为可变精度浮点数（VPA）
%   默认精度为 32 位有效数字
pVpa = vpa(p);
disp(pVpa)      % 输出：3.1415926535897932384626433832795（32位）

% 示例 2：含符号常数的表达式的数值化
syms x
a = sym(1/3);
% 构造符号表达式：f = (1/3) * sin(2πx)
%   其中 1/3 和 π 都是符号精确值
f = a*sin(2*p*x);
% vpa(f) 对整个表达式进行可变精度数值化
fVpa = vpa(f);
disp(fVpa)      % 输出：0.33333333333333333333333333333333*sin(2*pi*x)

% 示例 3：大整数分数的高精度小数表示
% 构造符号分数：y = 100001 / 10001
%   这是一个精确的有理数，无法约简为有限小数
y = sym(100001)/10001;
% vpa(y) 将其转换为高精度小数形式
%   双精度下可能损失精度，vpa 默认 32 位有效数字保证准确性
yVpa = vpa(y);
disp(yVpa)      % 输出：9.9991000899910008999100089991001（近似值）

% 示例 4：指定精度的 π 值
% vpa(sym(pi), 100) 显式指定 100 位有效数字的精度
%   第1参数：符号精确值 π
%   第2参数：有效数字位数（这里是 100 位）
%   可用于需要极高精度的科学计算或数值验证
pVpa = vpa(sym(pi), 100);
disp(pVpa)      % 输出 π 的前 100 位小数近似值
