首页 > 编程知识 正文

matlab求解二元非线性方程组,matlab非齐次线性方程组

时间:2023-05-06 14:44:15 阅读:157334 作者:3095

看看下一个程序是如何改变大眼白猫迭代法求解后,现实的矩阵奇怪,跪求温暖的草丛

————————————————————————————————

%首先创建函数fun

%storage方程被编程为将fun.m保存到工作路径中,如下所示:

functionf=fun(x;

%定义的非线性方程如下

%变量x1 x2 x3

%函数f1 f2 f3

syms x1 x2 x3 x4 x5 x6 x7

f1=10*(348.51-269.62 )-x1* ) 275.74-x2 );

f2=10*(669.98-348.51 )-x1 * (x3-275.74 );

f3=10*(682.43-669.98 )-x1* ) 418.53-x3 );

f4=10*(x4-627.85 )-X5 * (X6-100.11 );

f5=10*(627.85-271.39 )-x5* ) 100.11-x7 );

f6=10*(271.39-268.93 )-x5* ) x7-104.29 );

F7=x4-682.43-0.8 * (682.43-648.38 );

f=[f1 f2 f3 f4 f5 f6 f7];

————————————————————————————————

创建%函数dfun

用于求%方程式的雅可比矩阵将dfun.m保存在工作路径中:

functiondf=dfun(x;

用于求解%方程式的雅可比矩阵被存储在dfun中

f=fun(x;

df=[diff(f,' x1 ' ); DIFF(f,) x2 ); DIFF(f,) x3 ); DIFF(f,) x4 ); DIFF(f,) x5 ); DIFF(f,) x6 ); diff(f,) x7 ) );

df=conj(df ';

————————————————————————————————

编程%大眼白猫法求解非线性方程将newton.m保存在工作路径中:

functionx=Newton(x0,eps,n );

con=0;

%这里,x0是迭代初始值eps是精度,n需要用最大迭代步骤数con记录结果是否收敛

for i=1:N;

f=subs(fun ) x0 )、) x1 ) x2 ) x3 ) x4 ) x5 ) x6 ) x7 )、) x0 ) x0(2) x0 )3) x0 )4) x0 ) x0 )5) )。

df=subs(dfun(x0 )、(x1 ) (x2 ) ) x3 ) (x4 ) (x5 ) ) x6 ) }、(x0 ) x0 )2) x0 )3) x0 )5) x0 ) x0 )5)

x=x0-f/df;

forj=1:长度(x0;

il(I,j )=x ) j;

结束

ifnorm(x-x0 ) )。

con=1;

布雷克;

结束

x0=x;

结束

%以下为将迭代过程写入txt文档文件名iteration.txt

FID=fopen(iteration.txt ),) w );

frintf(FID,' iteration ' );

forj=1:length(x0 ) )

frintf(FID,' x%d ',j );

结束

for j=1:i

frintf(FID,'nm ',j );

fork=1:length(x0 ) )

frintf(FID,'.6f ',il ) ) j,k );

结束

结束

if con==1

fprintf(FID,'n计算结果收敛!' );

结束

if con==0

frintf(FID,'n重复步骤数过多,可能无法收敛!' );

结束

fclose(FID;

————————————————————————————————

运行%程序

在matlab中输入以下内容

Newton (0. 10.10.10.10.10.1 )、0.000001、20 ) )。

[ img ] file ://c :/users/administrator.PPT v3-2012 08 30l/appdata/roaming/Tencent/users/310498102 /

————————————————————————————————

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。