成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 休闲娱乐

matlab求解多元非线性方程组

Q1:用matlab解非线性方程组的命令 最好多两种方法

你的精确解带入等式后并不成立。matlab的fsolve,lsqnonlin都可以求解非线性方程组:

123456f=@(x,y,z)[x^y+y^x-5*x*y*z-85;x^3*y^z*z^y-60;x^z+z^x-y-1];%初始值设为区间中点fsolve(@(x)f(x(1),x(2),x(3)),[431.25])%fsolve求解lsqnonlin(@(x)f(x(1),x(2),x(3)),[431.25])%lsqnonlin求解

Q2:matlab中怎么求解多元非线性方程组,请高手给一个例子,和全部的求解命令,感谢

matlab中解方程或方程组可以使用solve函数
只可惜你的这个方程式没有解析解的,那么你就必须使用数值解法了
非线性方程组的数值解法最简单的就是拟牛顿法,如果你学过数值分析的话你应该知道的。很简单,十来行代码就行了。
祝你学习愉快!

Q3:急!求MATLAB解多元非线性方程组,最好给出程序,求大神

该多元非线性方程组不适宜用solve()函数命令来求,可以用fsolve()函数命令来求其在某区间内的数值解。求解过程如下:

func=@(x)[exp((1193*x(3))/20-(543*x(3)^2)/5-(3139*x(3)^(1/2))/100+2867/1000)-x(1),exp((1193*x(4))/20-(543*x(4)^2)/5-(3139*x(4)^(1/2))/100+2867/1000)-x(2),-(x(1)-751/5000)/(x(2)-751/5000)-8994/625,-(x(3)-57/625)/(x(4)-57/625)-8994/625]; %自定义函数

x0=[0.40181 0.075967 0.23992 0.12332]; %初值

x= fsolve(@(x)func(x),x0); %方程组的解

w=x(1),y=x(3),z=x(4),x=x(2)

运行结果

Q4:有关MATLAB用solve函数求解非线性方程组的问题

你好,按照你的思路
solve在使用时,因为你的表达式里面有符号变量,所以要在最后解方程时注明需要求解的函数变量名
也就是 最后一句
[k,l,c,w,r]=solve(eq1,eq2,eq3,eq4,eq5,k,l,c,w,r)
但是solve基本是解解析解的,但是不是每个方程都有解析解,就像你的这道,解得时候会出现BUSY,说明可能不存在解析解
希望对你有帮助

www.BAZHishI.cO▶M

Q5:matlab求解多元非线性方程组

建立 Myfun.m 文件
function F = myfun(x,a)
E = a(1);
I = a(2);
R0 = a(3);
R1 = a(4);
T = a(5);
A = a(6);
v = a(7);
rho = a(8);
F = [ (T - rho * A * v^2) *
sin(x(3)) * x(1) - (T * cos(x(3)) + rho * A * v^2 - rho * A * v^2 *
cos(x(3))) * x(2) - E*I/(R0 + R1);
(1/3) * (T - rho * A * v^2) *
sin(x(3)) * x(1)^3 - (1/2) * (T * cos(x(3)) + rho * A * v^2 - rho *
A * v^2 * cos(x(3))) * x(2) * x(1)^2 - E* I * x(2);
(T - rho * A * v^2) * sin(x(3)) *
x(1)^2 - (T * cos(x(3)) + rho * A * v^2 - rho * A * v^2 *
cos(x(3))) * x(2) * x(1) - E* I * x(3)];
建立一个执行文件
clc
clear
a = zeros(8);
display(# Pls input the known
parameters: #)
a(1) = input(E = );
a(2) = input(I = );
a(3) = input(R0 = );
a(4) = input(R1 = );
a(5) = input(T = );
a(6) = input(A = );
a(7) = input(v = );
a(8) = input(rho = );
display(# Pls input the initial
point: #)
x0 = zeros(3);
% Make a
starting guess at the solution
x0(1) = input(x1 = );
x0(2) = input(y1 = );
x0(3) = input(phi = );
options =
optimset(Display,iter);
% Option to display
output
[x,fval] = fsolve(@(x)
myfun(x,a),x0,options)
% Call solver
运行,输入已知的几个参数,再输入初始搜索点,即可!

Q6:用MATLAB解多元非线性方程组,求大神

很高兴为您解答,首先定义函数myfun
function F = myfun(x)
F = [3*x(1)-cos(x(2)*x(3))-0.5;
x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;
exp(-x(1)*x(2))+20*x(3)+(10*pi-3)/3];
前面这段函数定义在myfun.m文件中
主程序如下:
[x,fval]=fsolve(@myfun,[0,0,0]);
x(1)
x(2)
x(3)
最后求得
x(1)=0.5000
x(2)=0.0000
x(3)=-0.5236、满意请采纳回答,谢谢!

Www.baZhIs。hi.coM

Q7:如何用matlab解多元非线性方程组?

使用solve函数。

举个例子,解非线性方程组 x^2+y^3=10 x^3-y^2=1 其中x,y为方程组的未知量 在Matlab的命名窗口中输入:

syms x y [x y]=solve(x^2+y=10,x^2-y^2=1,x,y) 即可 输出计算结果为:

x = (37^(1/2)/2 + 21/2)^(1/2) (21/2 - 37^(1/2)/2)^(1/2) -(21/2 - 1/2*37^(1/2))^(1/2) -(1/2*37^(1/2) + 21/2)^(1/2)

y = - 37^(1/2)/2 - 1/2 37^(1/2)/2 - 1/2 37^(1/2)/2 - 1/2 - 37^(1/2)/2 - 1/2

具体solve函数的使用方法,通过输入help solve来学习。

20世纪60年代中期以后,发展了两种求解非线性方程组(1)的新方法。

一种称为区间迭代法或称区间牛顿法,它用区间变量代替点变量进行区间迭代,每迭代一步都可判断在所给区间解的存在惟一性或者是无解。这是区间迭代法的主要优点,其缺点是计算量大。

另一种方法称为不动点算法或称单纯形法,它对求解域进行单纯形剖分,对剖分的顶点给一种恰当标号,并用一种有规则的搜索方法找到全标号单纯形,从而得到方程(1)的近似解。

这种方法优点是,不要求f(□)的导数存在,也不用求逆,且具有大范围收敛性,缺点是计算量大。

猜你喜欢

更多