编程求助
一个函数有几个参数,假设为a,b,c,d,给a,b,c赋值,然后让d在1到10间取值(循环),如此得到一组函数的表达式,对此组函数依次积分得到一组积分值。那我该怎么画出d与积分值的图像呢?请各位先学兄弟们帮忙。可能问题有点幼稚,但是会者不难啊,请多帮忙。谢谢!
也就是要把每次循环计算得到的积分值和对应的d保存下来,这样可以画出d与积分值的图像。请多帮忙。
[ 本帖最后由 magrog 于 2008-8-31 10:42 编辑 ] %------------------如果是数值积分的话--------------------------
%----存为m文件-----------
function result = myfun(x,d)
result = 你的函数;
end
%-----调用---------
result = [];
for d = 1:10
temp= quad(@(x)myfun2(x,d),0,2);% 0~2积分区间
result = ;
end
plot(d,result);
%---------------------- 谢谢,是数值积分。 result = []
?? Error: File: ld.m Line: 8 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function "myfun".) 可不可以讲积分表达式直接作为函数,给定其积分区间,然后作出积分值和参量的图像呢?
回复 5楼 magrog 的帖子
看不太明白回复 5楼 magrog 的帖子
一个点一个点的求值,之后再绘图。 一个点一个点的求值,之后再绘图。老大,你太有才了!几千个点,我一个个去弄啊。哎 我觉得2楼的答案很正确啊不知道还有啥疑问 搞笑,你不会做个循环呀?:lol
另外,不要问我matlab中循环怎么做
原帖由 magrog 于 2008-9-2 14:38 发表 http://www.chinavib.com/forum/images/common/back.gif
一个点一个点的求值,之后再绘图。老大,你太有才了!几千个点,我一个个去弄啊。哎 循环会做啊,可是怎么把每次循环所得到的积分值保存下来,然后画出图像啊? 发现ls的程序有问题,改了一下,你再试试下面这个,以函数为y=x^d为例
result = [];
d=1:10;
for d1 = d
temp= quad(@myfun,0,2,[],0,d1); % 0~2积分区间
result = ;
end
plot(d,result);
function result = myfun(x,d)
result = x.^d;
end 谢谢各位的热心帮助,在此我衷心的表示感谢。有如此多的热心的兄弟们,这个论坛一定会发扬光大的。 result = [];
d=1:10;
for d1 = d
temp= quad(@myfun,0,2,[],0,d1); % 0~2积分区间
result = ;
end
plot(d,result);
function result = myfun(x,d)
result = x.^d;
end
我将这些代码复制为m文件,运行出现下面的报错提示:
Error: File: sjcl.m Line: 9 Column: 1
Function definitions are not permitted at the prompt or in scripts.
还是出现这样的错误啊?
另外,布衣兄和才子兄的代码应该是一样的,就是循环的时候一个对d1赋值循环,一个直接循环而已,没有差别啊。
不知道才子兄自己运算的时候是否会有报错?
我的matlab是7.0的,问题不知道出在哪里了
[ 本帖最后由 magrog 于 2008-9-3 16:06 编辑 ]
回复 14楼 magrog 的帖子
result = [];d=1:10;
for d1 = d
temp= quad(@myfun,0,2,[],0,d1); % 0~2积分区间
result = ;
end
plot(d,result);
------------------------------
这个另存之
function result = myfun(x,d)
result = x.^d;
end
然后再汗下:@L
页:
[1]
2