24小时热门版块排行榜    

查看: 1552  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhmdream

木虫 (正式写手)

[求助] 求助Matlab解方程问题

大家好,请大家一个Matlab解方程的问题,程序:
a=input('输入a:');
solve('a^2/(a+x)+a/(x-a)=9');
ans

运行结果:
输入a:5

ans =

(1/18*a+1/18+1/18*(a^2-34*a+361)^(1/2))*a
(1/18*a+1/18-1/18*(a^2-34*a+361)^(1/2))*a

我定义了a=5,但计算结果中a怎么是个字母啊?
是不是我没有定义a为数值?还是其他原因?
望大家帮忙,谢谢啦。
回复此楼

» 收录本帖的淘帖专辑推荐

第一性原理

» 猜你喜欢

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

人生如梦,岁月无情~~~
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


jjdg(金币+1): 感谢参与 2011-10-12 04:53:36
其实只要注意solve接收的参数是字符串就好了
6楼2011-10-10 15:02:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

sudo

木虫 (正式写手)

【答案】应助回帖

zhmdream(金币+10): 这样虽然可以,但是对于输入任意的a,还是手动改,比较麻烦 2011-10-10 10:19:02
zhmdream(金币+5): 谢谢 2011-10-10 11:05:26
zhmdream(金币+45): 谢谢啦!问题解决差不多了。我之后再翻翻书,消化消化。看来我还是对很多函数和命令理解太少了。呵呵 2011-10-10 18:31:10
SOLVE  Symbolic solution of algebraic equations.

solve是用来解出符号解的啦,所以solve里面字符串里面的a和你定义的a并不是同一个

你可以用subs函数
CODE:
A=solve('a^2/(a+x)+a/(x-a)=9');
subs(A, 5)

这样就把5“代入到符号表达式”中,求出数值解来了

PS:如果solve不能求出一些方程的解析解,那么应该考虑用其它数值方法
2楼2011-10-10 08:59:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

呼唤变通...
CODE:
a=input('输入a:');
A=solve('a^2/(a+x)+a/(x-a)=9');
subs(A, a)

你是不是想这样?
3楼2011-10-10 10:36:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhmdream

木虫 (正式写手)

引用回帖:
3楼: Originally posted by sudo at 2011-10-10 10:36:37:
呼唤变通...
CODE:
a=input('输入a:');
A=solve('a^2/(a+x)+a/(x-a)=9');
subs(A, a)

你是不是想这样?

谢谢啦!呵呵,其实我是想编一个这样的程序:

c=input('请输入c:')
a=x+1;
b=2*x+3;
A=solve('a*b+2*x+a-b=c');
subs(A,a);
subs(A,b);
subs(A,c);
ans

a、b包含了x,然后求解x。但是运行还是出现了以前的问题:

请输入c:2
c =2
ans =-1/2*a*b-1/2*a+1/2*b+1

呵呵,我是刚学Matlab,不是很懂,所以想一步一步弄明白。谢谢帮忙。帮我看看问题出在哪儿?剩下50金币全给你了。
人生如梦,岁月无情~~~
4楼2011-10-10 11:04:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见