声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2416|回复: 28

[编程技巧] 编程求助

[复制链接]
发表于 2008-8-31 10:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

[ 本帖最后由 magrog 于 2008-8-31 10:42 编辑 ]
回复
分享到:

使用道具 举报

发表于 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 = [result,temp];
end
plot(d,result);

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

评分

1

查看全部评分

 楼主| 发表于 2008-8-31 14:32 | 显示全部楼层
谢谢,是数值积分。
 楼主| 发表于 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".)
 楼主| 发表于 2008-8-31 16:37 | 显示全部楼层
可不可以讲积分表达式直接作为函数,给定其积分区间,然后作出积分值和参量的图像呢?
发表于 2008-9-1 18:36 | 显示全部楼层

回复 5楼 magrog 的帖子

看不太明白
发表于 2008-9-2 13:45 | 显示全部楼层

回复 5楼 magrog 的帖子

一个点一个点的求值,之后再绘图。
 楼主| 发表于 2008-9-2 14:38 | 显示全部楼层
一个点一个点的求值,之后再绘图。老大,你太有才了!几千个点,我一个个去弄啊。哎
发表于 2008-9-2 14:43 | 显示全部楼层
我觉得2楼的答案很正确啊
不知道还有啥疑问
发表于 2008-9-2 16:14 | 显示全部楼层
搞笑,你不会做个循环呀?:lol

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

 楼主| 发表于 2008-9-2 19:15 | 显示全部楼层
循环会做啊,可是怎么把每次循环所得到的积分值保存下来,然后画出图像啊?
发表于 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 = [result,temp];
end
plot(d,result);

function result = myfun(x,d)
result = x.^d;
end

评分

1

查看全部评分

 楼主| 发表于 2008-9-3 14:52 | 显示全部楼层
谢谢各位的热心帮助,在此我衷心的表示感谢。有如此多的热心的兄弟们,这个论坛一定会发扬光大的。
 楼主| 发表于 2008-9-3 14:55 | 显示全部楼层
result = [];
d=1:10;
for d1 = d
  temp= quad(@myfun,0,2,[],0,d1); % 0~2积分区间
  result = [result,temp];
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 编辑 ]
发表于 2008-9-3 16:24 | 显示全部楼层

回复 14楼 magrog 的帖子

result = [];
d=1:10;
for d1 = d
  temp= quad(@myfun,0,2,[],0,d1); % 0~2积分区间
  result = [result,temp];
end
plot(d,result);
------------------------------
这个另存之
function result = myfun(x,d)
result = x.^d;
end

然后再汗下:@L
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-2 20:31 , Processed in 0.080317 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表