24小时热门版块排行榜    

查看: 1300  |  回复: 15

309065816

木虫 (正式写手)

[求助] matlab小白,发帖求助,编好的程序出了问题,附编程

从文献和书上找到合适的程序,但是抄到MATLAB里面却有问题。都是相同的问题,h=(b-a)/n, b没有含义。附上题目,两个原程序和我抄的程序,均是梯形法,应该没抄错吧?
程序1:
function [q,step] = CombineTraprl(f,a,b,eps)
%被积函数: f;
%积分区间左端点:a;
%积分区间右端点:b;
%eps 精度;
%积分结果:q;
%step 积分的子区间数;
if(nargin==3);
    eps=1.0e-4;
end
n=1;
h=(b-a)/2;
q1=0;
q2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
while abs(q2-q1)>eps;
    n=n+1;
    h=(b-a)/n;
    q1=q2;
    q2=0;
    for i=0:n-1;
        x=a+h*i;
        x1=x+h;
        q2=q2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+...
            subs(sym(f),findsym(sym(f)),x1));
    end
end
q=q2;
step=n;
??? Input argument "b" is undefined.

Error in ==> CombineTraprl at 12
h=(b-a)/2;

>>

程序2:
function y = trapm(n,a,b)
format long
h = (b - a)/n;
sym x fx
fx = sqrt(4 - x^2);
f0 = subs(fx,'x',a);
fn = subs(fx,'x',b);
sum = f0;
for i = 1:n-1
    xi = a + i* h;
    fi = subs(fx,'x',xi);
    sum = sum + 2* fi;
end
sum = sum + fn;
y = h* sum/2;

??? Input argument "b" is undefined.

Error in ==> trapm at 3
h = (b - a)/n;

>>
matlab小白,发帖求助,编好的程序出了问题,附编程
题目.jpg


matlab小白,发帖求助,编好的程序出了问题,附编程-1
程序1.jpg


matlab小白,发帖求助,编好的程序出了问题,附编程-2
程序2.jpg

[ Last edited by 309065816 on 2013-7-10 at 20:54 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

在线坐等解答。。。
2楼2013-07-10 20:55:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-07-11 04:11:09
309065816: 金币+2 2013-07-11 09:15:27
你的a,b,f都没有被定义。
a和b是积分区间的左右端点数值。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2013-07-10 21:52:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★
jjdg: 金币+1, 感谢解释 2013-07-11 04:11:26
309065816: 金币+3 2013-07-11 09:15:33
引用回帖:
2楼: Originally posted by 309065816 at 2013-07-10 20:55:21
在线坐等解答。。。

这两个程序,都不是直接运行的。
而是把m文件分别保存在MATLAB的工作目录下,然后按照格式调用。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
4楼2013-07-10 21:58:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
309065816(jjdg代发): 金币+5, 辛苦了 2013-07-11 04:11:54
309065816: 金币+10, ★★★★★最佳答案 2013-07-11 09:15:43
原文的程序没有错,出现问题,在于其一程序抄写不一致,你抄写“syms……”的时候,少了一个字母"s";其二程序调用方式不对,不是直接运行这些m文件而应该是按调用格式来。
比如,原文中梯形法的程序编写得很巧妙,只需要3个参数:积分的左右端点数值和子区间数目,就可以得到计算结果。把trapm.m存到MATLAB的工作目录下,在主窗口输入: trapm(10000,0,3*pi/2)
即得结果,如附图。
matlab小白,发帖求助,编好的程序出了问题,附编程-3
附图1.jpg

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2013-07-10 22:20:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 月只蓝 at 2013-07-10 22:20:21
原文的程序没有错,出现问题,在于其一程序抄写不一致,你抄写“syms……”的时候,少了一个字母"s";其二程序调用方式不对,不是直接运行这些m文件而应该是按调用格式来。
比如,原文中梯形法的程序编写 ...

太感谢你了。之前也搜过类似的帖子,发现很多都有你的回复,大神呀。想再问一下呀,我想把结果的精确到小数点后4位怎么添加程序呢?
6楼2013-07-11 09:17:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 月只蓝 at 2013-07-10 22:20:21
原文的程序没有错,出现问题,在于其一程序抄写不一致,你抄写“syms……”的时候,少了一个字母"s";其二程序调用方式不对,不是直接运行这些m文件而应该是按调用格式来。
比如,原文中梯形法的程序编写 ...

[q,s]=CombineTraprl('sqrt(4-x^2)',0,2,1.0e-4)
这是第一个程序里面最后的命令,而且按照编的程序可以看出,默认精度就是小数点后4位的,为什么出来的结果是这样的:
q =

   3.138365760415841


s =

    51
7楼2013-07-11 09:22:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
6楼: Originally posted by 309065816 at 2013-07-11 09:17:02
太感谢你了。之前也搜过类似的帖子,发现很多都有你的回复,大神呀。想再问一下呀,我想把结果的精确到小数点后4位怎么添加程序呢?...

将vpa与digits联用
如:圆周率pi取9位有效数字:
>> digits 9
>> vpa(pi)

ans =

                                  3.14159265
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
8楼2013-07-11 09:23:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 月只蓝 at 2013-07-10 22:20:21
原文的程序没有错,出现问题,在于其一程序抄写不一致,你抄写“syms……”的时候,少了一个字母"s";其二程序调用方式不对,不是直接运行这些m文件而应该是按调用格式来。
比如,原文中梯形法的程序编写 ...

第二个程序是要怎么写才能控制精度呢?
>> trapm(10000,0,2)

ans =

   3.141591477611321
9楼2013-07-11 09:23:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

309065816

木虫 (正式写手)

引用回帖:
8楼: Originally posted by 月只蓝 at 2013-07-11 09:23:03
将vpa与digits联用
如:圆周率pi取9位有效数字:
>> digits 9
>> vpa(pi)

ans =

                                  3.14159265...

嗯,我要计算的积分里面没有圆周率,上限跟下限是2跟0。那要怎么添加程序呢?还是像你上面写的那样吗?
10楼2013-07-11 09:29:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 309065816 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0703化学336分求调剂 +3 zbzihdhd 2026-03-15 4/200 2026-03-16 23:52 by zbzihdhd
[考研] 286求调剂 +3 lemonzzn 2026-03-16 5/250 2026-03-16 20:43 by lemonzzn
[考研] 302求调剂 +3 小贾同学123 2026-03-15 5/250 2026-03-16 20:39 by zhq0425
[文学芳草园] 伙伴们,祝我生日快乐吧 +17 myrtle 2026-03-10 26/1300 2026-03-16 18:32 by 青橙Ln
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 304求调剂 +5 素年祭语 2026-03-15 5/250 2026-03-16 17:00 by 我的船我的海
[考研] 304求调剂 +3 曼殊2266 2026-03-14 3/150 2026-03-16 16:39 by houyaoxu
[考研] 312求调剂 +3 陌宸希 2026-03-16 4/200 2026-03-16 15:06 by peike
[考研] 一志愿哈工大材料324分求调剂 +5 闫旭东 2026-03-14 5/250 2026-03-14 14:53 by 木瓜膏
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +5 Becho359 2026-03-11 5/250 2026-03-14 11:35 by 哦哦123
[考研] b区环境工程求调剂 +4 Maps1 2026-03-10 6/300 2026-03-14 00:23 by JourneyLucky
[考研] 材料与化工304求B区调剂 +5 邱gl 2026-03-11 6/300 2026-03-13 22:37 by JourneyLucky
[考研] 290求调剂 +9 ADT 2026-03-11 9/450 2026-03-13 21:55 by JourneyLucky
[考研] 332求调剂 +3 Zz版 2026-03-13 3/150 2026-03-13 20:36 by 18595523086
[考研] 求调剂 +5 一定有学上- 2026-03-12 5/250 2026-03-13 18:31 by ms629
[考研] 工科278分求调剂 +5 周慢热啊 2026-03-12 7/350 2026-03-13 15:49 by JourneyLucky
[考研] 材料专硕274一志愿陕西师范大学求调剂 +4 薛云鹏 2026-03-13 4/200 2026-03-13 10:40 by 学员8dgXkO
[考研] 270求调剂 085600材料与化工专硕 +3 YXCT 2026-03-11 3/150 2026-03-13 10:13 by houyaoxu
[考博] 2026年博士申请 +3 QwQwQW10 2026-03-11 3/150 2026-03-12 17:58 by gxch43
[考研] 290求调剂 +3 柯淮然 2026-03-10 8/400 2026-03-11 13:48 by 柯淮然
信息提示
请填处理意见