matlab - 如何编写运行分区的这个方程?
问题描述
我不知道该去哪里。我想我有正确的东西,但我不明白。
它一直在循环运行,我不知道为什么。
n=9;
r =0;
p = 0;
syms x
v=1.7;
while abs(v-r) > 10^(-5)
n=n+1;
r = 0;
a = 0;
b= 1/n;
for i = 1:n
r = r + exp(((i+1)+exp(i))/2)*(b-a)
end
['done']
end
输出应该是 85。但我得到了几千。我曾尝试更改 for 循环中的方程式,但我不知道为什么它会给我符号错误。
解决方案
贴出的代码有几个问题:
括号在 r=r + ... 语句中未对齐
代替 exp(i) 和 exp(i+1),您应该使用 exp(b i) 和 exp(b (i+1)) 来考虑给定的间距。
应该是准确答案的“v”值应该等于 e-1,即 1.71828。当您试图收敛到小数点后 5 位内的精确解时,使用近似 1.7 将是非常有问题的。
您的 for 循环应该从 0 变为 n-1,这样您就不会将任何值相加超过您的整数范围。
n=9;
r =0;
p = 0;
v=e-1;
while abs(v-r) > 10^(-5)
n=n+1;
r = 0;
a = 0;
b= 1/n;
for i = 0:n-1
r = r + ((exp(b*(i+1))+exp(b*i))/2)*(b-a);
end
end
推荐阅读
- android - 我的安卓手机内置短信应用程序怎么这么快?
- node.js - 如何使用pureimage画一条线?
- java - 创建没有 JOINS 的 Spring Data Jpa Specification 方法
- spring - Spring 的 findByColumnName 返回空列表
- sql - Firebird中的条件唯一索引
- android - 使用加速度计和磁场传感器寻找朝拜方向的逻辑
- android - 如何在 FloatingActionButton/Button Click 事件中使用协程
- django - Heroku 无法检测到我的 forms.py。“模块未找到错误在 /”
- python - Altair 中的聚合函数块图交互性
- jquery - 通过 Ajax 向 Laravel 控制器提交带有文本和图像的表单