Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2012-04-07, 18:30   #1
yfl
高级会员
 
yfl 的头像
 
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19
yfl 正向着好的方向发展
默认 回复: 求——给定精度求积分的matlab程序

引用:
作者: Mguan 查看帖子
采用不断二分区间,复化梯形求积的matlab程序
能把问题描述的细致些吗?这样方便他人解答
__________________

看帖回帖,就是对我们最大的支持!
yfl 当前离线   回复时引用此帖
旧 2012-04-07, 19:31   #2
Mguan
初级会员
 
Mguan 的头像
 
注册日期: 2012-04-07
年龄: 36
帖子: 3
声望力: 0
Mguan 正向着好的方向发展
默认 回复: 求——给定精度求积分的matlab程序

引用:
作者: yfl 查看帖子
能把问题描述的细致些吗?这样方便他人解答
在计算机上为计算函数f(x)在区间[a,b]上的积分,要求误差小于ε。采用复化梯形公或龙贝格积分法求积分的matlab程序。为满足精度要求(误差小于ε),通常采用将区间不断二分的方法。

求高手赐教matlab程序,本人为matlab初学者,自己编了一个程序:
clear,clc;
f(x)=erfen(x);
a=input('input a:');
b=input('input b:');
error=input('input error:');
h=b-a;T0=[f(a)+f(b)]*h/2;
h=h/2;k=1;m=2^k;
sum=0;
for i=1m-1)
x(i)=a+i*h;
sum=sum+f(x(i));
T1=[f(a)+sum+f(b)]*h/2;
end
while(abs(T1-T0)>error)
T0=T1;
h=h/2;
k=k+1;
end
disp('T1');

定义的函数f(x)=erfen(x),即二分。运行时总出现??? Undefined function or variable 'x'.
__________________
简单而活
Mguan 当前离线   回复时引用此帖
旧 2012-04-08, 10:57   #3
yfl
高级会员
 
yfl 的头像
 
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19
yfl 正向着好的方向发展
默认 回复: 求——给定精度求积分的matlab程序

Undefined function or variable 'x'. 的意思是没有定义变量‘x',可以用syms x语句来定义,但是你的程序中f(x)没有表达式,T0=[f(a)+f(b)]*h/2语句无法执行,你应该给他一个确定的表达式,然后用该思想进行编程。
有问题可继续跟帖,希望能帮到你。
__________________

看帖回帖,就是对我们最大的支持!
yfl 当前离线   回复时引用此帖
旧 2012-04-09, 12:47   #4
Mguan
初级会员
 
Mguan 的头像
 
注册日期: 2012-04-07
年龄: 36
帖子: 3
声望力: 0
Mguan 正向着好的方向发展
默认 回复: 求——给定精度求积分的matlab程序

初学者,实在搞不清楚,求高手赐教,不知可有类似的程序可以让我模仿?
__________________
简单而活
Mguan 当前离线   回复时引用此帖
旧 2012-04-10, 22:23   #5
yfl
高级会员
 
yfl 的头像
 
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19
yfl 正向着好的方向发展
默认 回复: 求——给定精度求积分的matlab程序

function f=erfen(x)
clear,clc
f=@(x)cos(x);
a=-pi/2;b=pi/2;error=0.0001;
n=100;sum=(f(a)+f(b))*(b-a)/2;
for i=1:n
k=2^i;T=0;
h=(b-a)/k;
X=a+h*[1:k-1];
for j=1:k-1
T=f(X(j))+T;
end
sum(i+1)=h/2*(f(a)+f(b))+T*h;
E=sum(i+1)-sum(i);
if E<error
S=sum(i+1);
break
end
end
disp(S)
__________________

看帖回帖,就是对我们最大的支持!
yfl 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 19:45


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.