btcq.net
当前位置:首页 >> mAtlAB的solvE函数解方程 >>

mAtlAB的solvE函数解方程

你的程序中Vn = vpa(S1(1))使结果出现错觉,实际情况是:H1 = 231.2960*atan(x^2/(15.8*sqrt(62.5-x^2)))-L; S1 = solve(H1,x); Vn = vpa(S1); subs(Vn,L,1816),subs(Vn,L,1817) ans = 1.0e+003 * 0.0079 -0.0079 0.0000 + 6.1468i -0.0000 - 6.1468i

Matlab中solve函数主要是用来求解线性方程组的解析解或者精确解.对于得出的结果是符号变量,可以通过vpa()得出任意位数的数值解!solve函数的语法定义主要有以下四种:solve(eq)solve(eq, var)solve(eq1, eq2, …, eqn)g = solve(eq1, eq

syms a u v;A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6')

solve的参数必须是符号函数,你的eq1,2,3的确是符号函数,可你加了"==0"就变成了判断是否等于0了,即结果是逻辑值0或1,所以出现 conversion to char from logical is not possible.(不能将逻辑值转换为字符)的错误提示.要计算式可以

求解此类问题,可以用循环语句和fsolve函数一起来解.求解过程如下:u0=linspace(64,79.813,10); for i=1:length(u0) u=u0(i); func=@(x,u)u.*cos(pi/9).^2.*(120+2.125*cot(0.0173*pi)-u*cos(pi/9).*cos(x))+cos(pi/9).*(2.125*x+u*sin(pi/9)).*(2.125*sin(x)

是不是要在最后那个 'Ti1' 的前面加个逗号啊?没有逗号隔开肯定出错啊~ 对了 你还要在solve 前面加上subs(solve())函数,不然系统不认识你之前算出来的值

首先检查solve中第二个式子:,'y*(1-c*sum((k*(y/x)^k)/sum(((y/x)*exp(en-2*pi))^k)))+x*c*sum((k*(y/x)^k/sum(((y/x)*exp(en-2*pi))^k))-fai'是否存在括号匹配的问题(好像有问题输入Maple后,提示有误),请楼主检查后再试试,、楼主要想清楚x,y到底是标量还是矩阵,或者是向量,如果是矩阵或向量是需要加小数点的,为什么会出现sum()函数呢?matlab符号求和是用symsum指令使用方法是:symsum(f,k,0,inf))在Matlab中直接那样声明出来的x,y是标量符号变量.

s(k)=0.5*(x(k)+x(k+1)),k=1,2,19;这个看着像是线性方程组 写成矩阵形式就很容易求解了.

[x1,x2,x3]=solve('x1^2-5*x2^2+7*x3^3=-12','3*x1*x2+x1*x3-11*x1=0','2*x2*x3+40*x1=0','x1','x2','x3')

举个例子你就明白了1)建立方程组的M-函数文件(nxxf.m)function eq=nxxf(x)eq(1)=sin(x(1))+x(2)^2+log(x(3))-7;eq(2)=3*x(1)+2^x(2)-x(3)^3+1;eq(3)=x(1)+x(2)+x(3)-5;2)运行程序(test4.m)y=fsolve('nxxf',[1,1,1]

hyfm.net | ppcq.net | beabigtree.com | xcxd.net | qimiaodingzhi.net | 网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com