声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3023|回复: 18

[编程技巧] 如何算 ax=1 a是参数

[复制链接]
发表于 2007-10-16 16:20 | 显示全部楼层 |阅读模式

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

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

x

f=a*x
     solve('a*x-1')
结果是x=1/a

但是给定了a的值以后,结果仍然是1/a
如何得到结果的数值 ?        
且现有大量的a值需要带入求解,请问如何实现?

[ 本帖最后由 eight 于 2007-10-16 17:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-10-16 16:44 | 显示全部楼层
刚讨论过,help  eval  or subs  新手发帖请注意版规,如果有不明白的地方。请看置顶帖子
 楼主| 发表于 2007-10-16 16:50 | 显示全部楼层

回复 #2 花如月 的帖子

谢谢你啊 , 我还想问一下如何带入大量的a值求解呢
我要对不同的a值求解1800多次
发表于 2007-10-16 16:52 | 显示全部楼层

回复 #3 woodgate911 的帖子

请搜索fsolve
发表于 2007-10-16 16:59 | 显示全部楼层

>> a=1:5;
eval('1./a')
ans =
    1.0000    0.5000    0.3333    0.2500    0.2000
 楼主| 发表于 2007-10-16 17:09 | 显示全部楼层

回复 #4 huright 的帖子

我不是要求解方程组,我是要对每一个a求出一个x,但是只有把a用具体的数值带入f中,方程才能解出来,如果是在前面写个a=4 再求解方程 就解不出来,
我现在不知道怎样可以重复的对一千多个a求解x
发表于 2007-10-16 17:15 | 显示全部楼层

回复 #6 woodgate911 的帖子

前辈告诉你的方法也是可行的,要多思考。不要等着别人把完整的答案给你,对与你这个问题。方程的解很容易就看出来了,看看我5楼的回复吧
 楼主| 发表于 2007-10-16 17:16 | 显示全部楼层
谢谢你们啊  但是我还有俩问题
一是我的参数是一个杂乱的数组,我要如何怎样输入
二是我要求解的方程暴恶心,g(x)=55450570411999232/705553135224032625*pi^(1/2)*2^(1/2)*erf(2000000/1022121*2^(1/2)/ht^2*x)+28428972647776256/235184378408010875*pi^(1/2)*2^(1/2)*erf(12500000/37100281*2^(1/2)/ht^2*x)+1/2
其中ht是参数,我要求解的是g(x)=0.05 在不同的ht下的解   ht是杂乱的数组
我在把ht用固定数值带入的情况下用solve可以得到正确的解。
我该怎么办呢

麻烦你们指教了

我被这程序郁闷了好几天,比较的急躁,

[ 本帖最后由 ChaChing 于 2010-2-26 15:19 编辑 ]
发表于 2007-10-16 17:25 | 显示全部楼层
理论上这个方程的求法和你1楼的没有什么不同
(1)先求出x关于ht的表达式
(2)将ht数值代入,eval函数就可以
电脑很多时候非常的笨,不要期望过高。很多时候需要你把问题简化,ht很杂乱怎么办?除非你不解方程,如果要解那就自己输入。

[ 本帖最后由 ChaChing 于 2010-2-26 15:20 编辑 ]
发表于 2007-10-16 17:31 | 显示全部楼层
心急也没有用,养成一个好习惯:遇到问题先自己动手查找,别只晓得发问
 楼主| 发表于 2007-10-16 17:33 | 显示全部楼层
问题是那个方程在ht不是固定数值时,无法求解x,会显示
??? solve('55450570411999232/705553135224032625*pi^(1/2)*2^(1/2)*erf(2000000/1022121*2^(1/2)/ht^2*x)+28428972647776256/235184378408010875*pi^(1/2)*2^(1/2)*erf(12500000/37100281*2^(1/2)/ht^2*x)+1/2
          |
Error: A MATLAB string constant is not terminated properly.

手算出x关于ht的表达式也不太可能吧


谢谢
 楼主| 发表于 2007-10-16 18:42 | 显示全部楼层
eight你是管理员吧

我其实注册以后就看过新手发帖的要点了

但是我还是发了3个菜鸟帖,为什么呢?
第一,我的第一个贴至今没人回复
第二,我是刚刚接触matlab,我做了一个早上了,没有作出来

我想至少我觉得我不是不经思考只会发问的人,也许你很强,我很弱,我的问题你看来是很简单,但是我可以告诉你,我问的问题是我思考了不会的,我才问,我觉得难,我才问,我觉得我做不出了,我才问。不是应为我是懒惰到只会发问才问的。我觉得这就是我最充分的发帖理由。

而且我的问题在matlab编程方面也许是很简单的问题,但是问题描述的事物本身你不一定了解。

就算是不经思考问的简单的问题,那有错吗?管理员小时候第一次看见1+1思考为什么等于2吗?我发三个帖的其它原因你思考了吗?难道你也是不思考的人?为什么认定我就是不思考来发问。你可以说我现在是不会思考,但不能说我是不愿思考,因为我就和第一次看到1+1的管理员一样因为没有知识储备而无法思考。


另外我想说的是,这个论坛很好,但是我认为会有很多的菜鸟和我一样不再来了,因为这里是个歧视问简单问题的人的地方,让人不敢问问题的地方,是个认为只有深奥的问题才是问题的地方。也许很多菜鸟在看过新手发帖要点之后没有留下一句话就走了,而今天我说了他们想说而又没说的话。
发表于 2007-10-16 18:43 | 显示全部楼层
原帖由 woodgate911 于 2007-10-16 17:33 发表
问题是那个方程在ht不是固定数值时,无法求解x,会显示
??? solve('55450570411999232/705553135224032625*pi^(1/2)*2^(1/2)*erf(2000000/1022121*2^(1/2)/ht^2*x)+28428972647776256/235184378408010875*pi^( ...


如果语句不能一行写完,请在末尾加上 ... ,这是 matlab 的基本语法。建议先看看基础书,然后再做,否则老是碰钉子大家也不能每次都帮你解决,懂吗?
发表于 2007-10-16 18:45 | 显示全部楼层
原帖由 woodgate911 于 2007-10-16 18:42 发表
eight你是管理员吧

我其实注册以后就看过新手发帖的要点了

但是我还是发了3个菜鸟帖,为什么呢?
第一,我的第一个贴至今没人回复
第二,我是刚刚接触matlab,我做了一个早上了,没有作出来

我想至少 ...


如果说本论坛歧视人,你试试到 btbbs 这个北京大学的BBS上面,看看相应的规章制度。我在上面注册了一个星期还没有通过确认,新手区的帖子翻了n次了,都没有找到原因,由于没有通过确认也不能发帖,我也很郁闷,从这点上说,你认为我们论坛还歧视人吗?只要注册了几乎所有帖子都可以浏览、下载,在其他论坛,能有这么优惠吗?至少在 btbbs 就不行,你做出一定的贡献才能够生存。论坛、bbs都不是养懒人的地方,希望你们明白

如果人人都一遇到问题就往论坛上面放,试问还如何吸引高手的到来?一个论坛,仅靠新手,能生存吗?希望你能以大局着想,而不是牺牲自己,跟大伙过不去

[ 本帖最后由 eight 于 2007-10-16 18:53 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-10-16 18:50 | 显示全部楼层
知道   但是谁不是从菜鸟爬成高手呢
也许我们思维方法不同吧

谢谢 花如月
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-12 03:29 , Processed in 0.070902 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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