當前位置:首頁 > 休閒娛樂

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(□)的導數存在,也不用求逆,且具有大範圍收斂性,缺點是計算量大。

猜你喜歡

更多
此页面为HK繁体版,其他版本: 中文简体 | TW 繁体