问题:用matlab求解1+1/2+1/4+1/8,答案应该是1.875,为什么代码得出来的是1.1250,那一步错了

以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:
根据您提供的图片和描述,MATLAB代码中确实存在几个问题,导致计算结果不正确。下面是对代码的分析和修正:
sum_x 被初始化为1,但实际上应该是累加器sum初始化为1,因为您要计算的是序列的和。for i=l:l:r 中的 l 应该是 1,因为序列从1开始。sum=sum_x+(1 /(xi)); 中的 sum_x 应该是 sum,并且 xi 应该是 x 的 i 次幂,即 x^i。input 函数的提示信息中,"请输入项数" 和 "请输入底数" 应该是中文的冒号 : 而不是英文的冒号 :。% 清除工作区和命令窗口
clear; clc;
% 输入项数和底数
r = input('请输入项数:', 's');
x = input('请输入底数:', 's');
% 初始化累加器
sum = 1; % 序列的首项是1,所以初始化为1
% 循环计算序列的和
for i = 1:r
sum = sum + (1 / (x ^ i));
end
% 显示结果
disp(sum)
r 和底数 x 是正确的,并且 x 是一个大于1的数,因为您要计算的是等比数列的和。input 函数默认期望输入的是字符串,如果需要输入数字,可以在 input 函数后添加 '' 来指定输入类型为字符串,或者使用 input 函数获取输入后,再使用 str2double 函数转换为数字。使用上述修正后的代码,您应该能够得到正确的结果,例如输入项数为3,底数为2时,结果应该是1.875。