magrog 发表于 2008-8-31 10:08

编程求助

一个函数有几个参数,假设为a,b,c,d,给a,b,c赋值,然后让d在1到10间取值(循环),如此得到一组函数的表达式,对此组函数依次积分得到一组积分值。那我该怎么画出d与积分值的图像呢?
请各位先学兄弟们帮忙。可能问题有点幼稚,但是会者不难啊,请多帮忙。谢谢!
也就是要把每次循环计算得到的积分值和对应的d保存下来,这样可以画出d与积分值的图像。请多帮忙。

[ 本帖最后由 magrog 于 2008-8-31 10:42 编辑 ]

kettyx 发表于 2008-8-31 13:04

%------------------如果是数值积分的话--------------------------
%----存为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);

%----------------------

magrog 发表于 2008-8-31 14:32

谢谢,是数值积分。

magrog 发表于 2008-8-31 16:31

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".)

magrog 发表于 2008-8-31 16:37

可不可以讲积分表达式直接作为函数,给定其积分区间,然后作出积分值和参量的图像呢?

sigma665 发表于 2008-9-1 18:36

回复 5楼 magrog 的帖子

看不太明白

sogooda 发表于 2008-9-2 13:45

回复 5楼 magrog 的帖子

一个点一个点的求值,之后再绘图。

magrog 发表于 2008-9-2 14:38

一个点一个点的求值,之后再绘图。老大,你太有才了!几千个点,我一个个去弄啊。哎

sigma665 发表于 2008-9-2 14:43

我觉得2楼的答案很正确啊
不知道还有啥疑问

messenger 发表于 2008-9-2 16:14

搞笑,你不会做个循环呀?:lol

另外,不要问我matlab中循环怎么做

原帖由 magrog 于 2008-9-2 14:38 发表 http://www.chinavib.com/forum/images/common/back.gif
一个点一个点的求值,之后再绘图。老大,你太有才了!几千个点,我一个个去弄啊。哎

magrog 发表于 2008-9-2 19:15

循环会做啊,可是怎么把每次循环所得到的积分值保存下来,然后画出图像啊?

messenger 发表于 2008-9-2 19:53

发现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

magrog 发表于 2008-9-3 14:52

谢谢各位的热心帮助,在此我衷心的表示感谢。有如此多的热心的兄弟们,这个论坛一定会发扬光大的。

magrog 发表于 2008-9-3 14:55

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 编辑 ]

sigma665 发表于 2008-9-3 16:24

回复 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
查看完整版本: 编程求助