matlab解超越方程两个解分别保存
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 12:28:43
用solve命令解
function[x,y,z]=sp(A,B,C)symsxyz[x,y,z]=solve(y*y-z*z-x*x,y+z-A,x*x-B*x-C);
MATLAB固然强大,但不是万能的但要想充分发挥其威力,需要使用者具备数学知识,不能硬算,否则难以得到相要的结果,或者即使算出个数值结果来,也很丑陋这里应当先做三角函数的万能替换设t=tgβsin
用大括号将方程组括起来
symsabcdx%定义符号变量abcdxs=a*(b*log(x)/x)^0.5-c;solve(s,'x')
这是有无穷个解的.如果你想要解的通项公式的话计算机是做不到的.不知道楼主要方程在什么范围内的解.楼主可以设方程左边的式子是关于a的函数,然后做出函数在楼主需要的范围内的图像,从图像观察函数零点的大概位
ezplot('0.5*cot(x*y/2)-tan((1-x)*y/2)',[0,0.9,0,30]),这里x表示t,y表示a,x从0到0.9,y从0到30,你改变y的绘图区间会看到不同的图像,因为
第一个>>symsxy;>>[x,y]=solve('(1+x*(1-y)^-2)^(-1)=0.01','(1+x*(3-y)^-2)^(-1)=0.8')第二个>>symsxy;>>[x,y]=s
y=inline('cos(x)-2*x*sin(x)-x-0.5*sin(x)*cosh(x)/sinh(x)','x');x0=0.5;%(x0是迭代初值)x=fzero(y,x0)结果是x=0.
可以用遗传算法之类的进行求解吗?再问:新手,不知道什么是遗传算法,只要能算出来就好,求程序~再答:程序加我的QQ细聊!
这类题可以用solve()函数,只能一个一个地求.求解方法如下:
试试solve
feqn=@(x)tan(x)-x/(1+0.295*x*x);x0=fzero(feqn,0.1);%初始解0.1结果x0=0再问:答案是3.7699。。。。请问这是什么情况?但是我这么算的都是0>
functionf=fx(x)f(1)=1+cos(x(1))*cosh(x(1))-x(2);f(2)=2.4*x(1)*(sin(x(1))*cosh(x(1))-cos(x(1))*sinh(x
首先对方程进行了简化处理程序较为简单,如下symsfcN[fc,N]=solve(1+(3/fc)^(2*N)-10^0.2,1+(12/fc)^(2*N)-10^3)fc=2.68452394123
数形结合
x=0:pi/200:pi/2;y=(4*x-sin(4*x))/8./sin(x);plot(x,y)PS:凡是向量之间的乘除要加“.”!
超越方程一般没有解析解,而只有数值解或近似解.楼主可以试着采用牛顿迭代法.牛顿迭代法方法如下:超越方程:f(x)=0设它的解为x0(注意:x0是一个确切的数值),有:x1=x0-f(x0)/f'(x0
不断求导直到能求出极值点,列表.
----缺少运算符*,以及参数输入格式有点问题----->>solve('x+1/(12*2.24*10^7*exp(-5600/(15+11*x))+1)=1','x')ans=19.9065572