当前位置:首页>开发>正文

如何利用matlab求解非线性方程 Matlab中 fsolve解非线性方程组无法收敛

2023-04-26 03:32:02 互联网 未知 开发

 如何利用matlab求解非线性方程 Matlab中 fsolve解非线性方程组无法收敛

如何利用matlab求解非线性方程

如果你有n个未知数n个方程,就定义一个输入输出都是n*1列向量的函数,然后用fsolve解。比如你想解方程组
x1^2 x2=x2^3 exp(x1)=100
就定义一个函数
func1=@(x)[x(1)^2 x(2)-7x(2)^3 exp(x(1))-100]
x=fsolve(func1,[11])

Matlab中 fsolve解非线性方程组无法收敛

该函数从原点开始迭代能够收敛,代码如下:
f = @(x)[x(1)-4*10^-5*(50-(2*(x(4))*8.314*298)/(58.4*10^5))
x(2)-1.29*10^-4*(7000-x(3))
x(1)*x(3)-x(2)
(x(4)-x(3))/(7000-x(3))-exp((x(1)*1.27)/(0.04*3000^0.75*625^0.33*1.6*10^-5))]
x = fsolve(f, zeros(4,1))
f(x)

如何用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来学习。希望我的回答能够解决您的问题,谢谢。

用MATLAB解决非线性方程

由计算公式:

每月还款额=本金*月利率*(1 月利率)^总期次/(((1 月利率)^总期次)-1)
或表示成
x=A*r*(1 r)^n/((1 r)^n-1)

f=inline(150000*r*(1 r)^180/((1 r)^180-1)-1000)
r=fzero(f,0.01)
得到
r =
0.00二题:
f1=inline(500000*r*(1 r)^180/((1 r)^180-1)-4500)
r1=fzero(f1,0.01)

f2=inline(500000*r*(1 r)^20/((1 r)^20-1)-45000)
r2=fzero(f2,0.01)

if r1else
disp(第二家月利率小)
end

得到结果:
r1 =
0.005
r2 =
0.063
第二家月利率小

matlab 二元非线性方程

首先,定义变量,只要在你的方程中出现的变量,包括字母常量,都要定义,我给你举一个例子吧,
比如:x^2 u*x x*y=0
v*y^2 x*y=0
此处,x,y为变量,u,v为字母常量
定义变量的方法: (注:如果没有字母常量,只定义变量就可以)
syms x y u v

其次,永solve命令解方程组:
solve( 1 , 2 ,3 ,4 )
其中:1、2位置放方程组(可以多于两个,从前往后依次放)
3、4位置放变量(可以多于两个,从后往前依次放)
此处:solve(x^2 u*x x*y=0,v*y^2 x*y=0,x,y)
就可以得出全部解!!
不知道我说明白了吗!!!,希望对你有帮助!!!!!

回答补充:

例如,用我上述方法打得出答案的字符型,要用subs函数将字符型转化为数值型:
ans =

x: [3x1 sym]
y: [3x1 sym]
%%%ans是用solve结出来的,下面你求具体的u,v对应的解
>> u=3v=4
>> subs(ans.x)

ans =

0
- ->> subs(ans.y)

ans =

0
0
1

matlab求解非线性方程问题

1、用solve求的是解析解,而对于很多非线性方程而言,是难以求出解析解的。
 
2、解这个方程而言,题主不妨画一下函数曲线:

syms a
f=tan(asin(0.5136)/cos(asin(sin(a*3.14/180)*0.1824) cos(a*3.14/180)*0.8382))
ezplot(f,[-11]*3e2)

从曲线判断,函数是周期性的,而取值大约在0.6~1.1之间,所以f=0当然是无解的。

随便看看