matlab如何解方程组里solve能解含有i和j的方程组么?

查看: 2243|回复: 7|关注: 0
matlab中使用solve解方程组出现了问题
有三个变量q22, q31,q32,& &还有三个方程组,但是运行的时候,总是处于busy的状态,或者得不到解。
syms q22 q31 q32
s=solve('(q31-150)^2+(q32-q22)^2=150^2','(q32-q22)*(q22-z1)=q31*(x1-150)','q32-z1=(x2-x1)/(z2-z1)*(q31-x1)','q22,q31,q32');
我用的R2010a& &win7系统
能解出来,但是解很长很长,本来想贴上来,但是贴不下……
建议楼主赋值后用fsolve解
eelchen 发表于
能解出来,但是解很长很长,本来想贴上来,但是贴不下……
建议楼主赋值后用fsolve解 ...
嗯&&想继续请教你 因为我这里的z1,x1,z2,x2,是会变化的,就先用字符代替了。如何用fsolve求解呢?是会得到一个表达式吗?
你试试这个算法for ii=1:1:length(x1)
f1=(q31-150)^2+(q32-q22)^2-150^2;
f2=(q32-q22)*(q22-z1(ii))-q31*(x1(ii)-150);
f3=q32-z1(ii)-(x2(ii)-x1(ii))/(z2(ii)-z1(ii))*(q31-x1(ii));
S=solve(f1,f2,f3);
aq22(:,ii)=double(S.q22);
aq31(:,ii)=double(S.q31);
aq32(:,ii)=double(S.q32);
end复制代码
eelchen 发表于
你试试这个算法
嗯 谢谢你 想问你&&为什么要用length(x1),在我的程序里,x1是一个具体的数值,还有z1,x2,z2,他们都在一个for循环里,每次都会得到一个具体的数值& &然后用这些已知的数值计算出q31,q32,q22
eelchen 发表于
你试试这个算法
z1,x1,z2,x2是由前面程序计算出来的数值
小蜗牛努力爬 发表于
z1,x1,z2,x2是由前面程序计算出来的数值
我这里认为
x1=[?,?,?,?...];x2=[?,?,?,?...];z1=[?,?,?,?...];z2=[?,?,?,?...];
而且他们长度相同每个位置的值代入成为一个方程组,所以length(x1)=length(x2)=length(z1)=length(z2),选哪个没影响。
如果数前面函数做出来的值的话,最好得到的z1,x1,z2,x2也是这样数组的形式
Powered bysolve('3.02exp(-60u)-1.26exp(-90u)=1.76','u')为什么解不出来,请大侠帮忙看看,matlab能解这样的方程么_百度知道
solve('3.02exp(-60u)-1.26exp(-90u)=1.76','u')为什么解不出来,请大侠帮忙看看,matlab能解这样的方程么
提问者采纳
00. - 0.* I-0.02珐锭粹瓜诔盖达睡惮精
提问者评价
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 773|回复: 3|关注: 0
Error using solve&processString ,如何用solve解含有隐变量的方程
如何用matlab解含有“隐变量”的方程?(即方程的系数是由以上程序解出的表达式,然后带入到该方程),solve()好像不具有这个功能。程序及运行错误如下:谢谢帮忙。
提示错误:
Error using solve&processString (line 337)
' cosh(m1.*a1)*cosh(m2.*a2)+0.5.*(F+1./F)*sinh(m1.*a1)*sinh(m2.*a2)-cos(k*a) ' is not a valid expression
or equation.
Error in solve&getEqns (line 267)
& && &eqns = processString(eqns, v, vc);
Error in solve (line 150)
[eqns,vars,options] = getEqns(varargin{:});
Error in y01 (line 17)
G=solve('cosh(m1.*a1)*cosh(m2.*a2)+0.5.*(F+1./F)*sinh(m1.*a1)*sinh(m2.*a2)-cos(k*a)','k');
编写的程序如下:
syms k F m1 m2;
a=0.15;& &%晶格常数
r=0.5;& & %入射角度,可调
f=0:5:20000;
w=2*pi.*f;
k3=k*sin(r);
m1=sqrt((w./c1).^2-k3^2);
m2=sqrt((w./c2).^2-k3^2);
F=m1.*p1*c1^2/(m2.*p2*c2^2);
G=solve('cosh(m1.*a1)*cosh(m2.*a2)+0.5.*(F+1./F)*sinh(m1.*a1)*sinh(m2.*a2)-cos(k*a)','k');
plot(k,f);
关注者: 8
你的方程是char型字符串,那么变量m1,a1。。。当然是无法传入方程的
你可以直接将方程写成 symbolic 方程
我尝试过将m1,a1的表达式直接写进方程,可是仍然不可以。。。。有没有其他的办法,谢谢。
关注者: 8
zyfchuanqi 发表于
我尝试过将m1,a1的表达式直接写进方程,可是仍然不可以。。。。有没有其他的办法,谢谢。 ...
我已经说过了,char型字符方程是无法完成参数代入的,你放进去的表达式里的字母依然无法实现数值代入
你应该写成 symbolic 方程
Powered by扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
分数阶微分方程的数值解法及其MATLAB实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Matlab中,用solve函数解方程组,其中涉及到数值矩阵和符号矩阵的转换问题??急求,各位大侠帮帮忙啊_百度知道
Matlab中,用solve函数解方程组,其中涉及到数值矩阵和符号矩阵的转换问题??急求,各位大侠帮帮忙啊
com for j=1;
end R=sym(R);
endend R首先是上面求出来的一个40*40double型矩阵将F用R和未知数表示,我是新手所以问题多,后面建立的方程组就是F的函数: DOUBLE cannot convert the input expression into a double array:40, use the VPA
for j=1:40?,,如果需要我可以附上整个程序。; getR at 184
F(i)=sym((F(i))+(R(i?!:Error using ==& mupadmexError in MuPAD command,还可以附加财富,j))*xj)? The following error occurred converting from sym to double对于熟悉matlab编程的应该不是难题啦:40。不管怎样.Error in ==&gt.If the input expression contains
F(i)=0,运行出错。!急急急也可联系我 邮箱@
F(i)=sym((F(i))+(R(i;
for i=1,j))*xj)。哪位可以帮我解决一下,先谢谢啦
我有更好的答案
按默认排序
完整的程序发给我吧
我已经解决了,还是非常感谢你哦
其他类似问题
符号矩阵的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab 线性方程组 的文章

 

随机推荐