matlab矩阵方程奇异,matlab求解非线性方程组 牛顿迭代发 奇异矩阵
求高手帮忙看看下面的程序怎么改 牛顿迭代法 求解后现实矩阵奇异,跪求高手
————————————————————————————————
%首先建立函数fun
%储存方程组编程如下将fun.m 保存到工作路径中:
function f=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保存到工作路径中:
function df=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 保存到工作路径中:
function x=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(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7)});
df=subs(dfun(x0),{'x1' 'x2' 'x3' 'x4' 'x5' 'x6' 'x7'},{x0(1) x0(2) x0(3) x0(4) x0(5) x0(6) x0(7)});
x=x0-f/df;
for j=1:length(x0);
il(i,j)=x(j);
end
if norm(x-x0)
con=1;
break;
end
x0=x;
end
%以下是将迭代过程写入txt 文档文件名为iteration.txt
fid=fopen('iteration.txt','w');
fprintf(fid,'iteration');
for j=1:length(x0)
fprintf(fid,' x%d',j);
end
for j=1:i
fprintf(fid,'\n%6d ',j);
for k=1:length(x0)
fprintf(fid,' %10.6f',il(j,k));
end
end
if con==1
fprintf(fid,'\n 计算结果收敛!');
end
if con==0
fprintf(fid,'\n 迭代步数过多可能不收敛!');
end
fclose(fid);
————————————————————————————————
%运行程序
%在matlab中输入以下内容
newton([0.1 0.1 0.1 0.1 0.1 0.1 0.1],0.000001,20)
[img]file:///C:/Users/Administrator.PPTV3-20120830L/AppData/Roaming/Tencent/Users/310498102/QQ/WinTemp/RichOle/A3[(5U3BU%605%60[35%60%7DK4DQKX.jpg[/img]
————————————————————————————————
matlab矩阵方程奇异,matlab求解非线性方程组 牛顿迭代发 奇异矩阵相关推荐
- 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
<matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...
- matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf
资源描述 matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x ...
- MATLAB求解非线性方程组(牛顿拉夫逊方法)
文章目录 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 牛顿拉夫逊方法迭代求解 MATLAB求解非线性方程组(牛顿拉夫逊方法) Equation.m 函数 这个函数用来写 ...
- MATLAB求解非线性方程组的五种方法
MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...
- broyden matlab,Broyden方法求解非线性方程组的Matlab实现
<Broyden方法求解非线性方程组的Matlab实现>由会员分享,可在线阅读,更多相关<Broyden方法求解非线性方程组的Matlab实现(7页珍藏版)>请在人人文库网上搜 ...
- 非线性方程的粒子群算法matlab,求解非线性方程组的量子行为粒子群算法
好文网为大家准备了关于求解非线性方程组的量子行为粒子群算法的文章,好文网里面收集了五十多篇关于好求解非线性方程组的量子行为粒子群算法好文,希望可以帮助大家.更多关于求解非线性方程组的量子行为粒子群算法 ...
- python牛顿法解非线性方程组_matlab实现牛顿迭代法求解非线性方程组.pdf
matlab实现牛顿迭代法求解非线性方程组.pdf matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cosx2*x3-1/20 x12-81 ...
- 【源码】牛顿-拉斐逊法求解非线性方程组
牛顿法是求解非线性方程组的有力方法,但当函数的导数等于或接近零时,牛顿法就失败了.所附的方法通过在MATLAB中编程的示例演示了如何在不使用割线或其他修改方法的情况下解决此类问题. Newton's ...
- 求解非线性方程组的牛顿法c语言,牛顿下山法求解非线性方程(组)(C实现)...
1.算法描述 (1)符号说明与基本假设 对于非线性方程组: (1) 引入向量: 可将(1) ...
最新文章
- 尺取法 || emmmm
- 类和对象—对象特性—函数的分类和调用
- 来吧,我教你画真正的流程图
- 基于C++和 Opencv1.0实现 二维平面多点拟合直线
- HTML5培训教程学习之动效制作
- .NET Core 从 Github到 Nuget 持续集成、部署
- io python 读取pdf_Python读取PDF文件--pdfminer
- exif linux php扩展_LNMP环境为PHP添加exif扩展
- python判断英文字母_python判断字符串是否包含字母
- 2018百度之星程序设计大赛资格赛
- php养老院管理系统论文,养老院一卡通管理
- JQuery超链接鼠标提示效果
- phpstorm连接mysql
- 坐标下载gRaphael——JavaScript 矢量图表库:两行代码实现精美图表
- 对于光本身,光走一光年的距离需要多久?————狭义相对论-钟慢效应(时间膨胀)
- 云速美建站手机端使用百度app打开手机端网站闪退的问题
- CentOS7转发非3306端口到3306端口
- 猫咪视频_猫视频如何进入您的手机
- 数据中心对洪水风险应具备应急措施
- 程序化那么神秘,究竟在做什么事情
热门文章
- 好看的文章排版样式(转)
- 存货控制中的ABC分类释义
- Mysql 中 show full processlist
- mybatis中使用使用模块化sql
- UITableView性能-圆角图片
- 保存会话数据——session学习
- android crash分析工具,Android Crash之Native Crash分析
- mysql 触发器条件判断偶尔失效_mysql┃多个角度说明sql优化,让你吊打面试官!...
- mysql索引级别快慢_面试小点-MySQL 的两种索引方法如何提高查询速度
- 21天jmeter打卡day2-环境搭建