MATLAB弦截法求解非线性方程
MATLAB弦截法求解非线性方程
用Newton法解非线性方程时,当f比较复杂时就比较难以实现了,弦解法的好处可以用f(x)在两点上的值构造一次插值函数来回避微商的计算。其迭代格式:
1.弦截法的MATLAB实现
按照弦截法的原理进行程序的编写:
!!!!!!!!!!对于小白,千万别直接复制后放在matlab中运行,应该新建一个脚本,文件名建议为secant.m。
function [pl,err,k,y]=secant(f,p0,p1,delta,max1)
%f是给定的非线性函数
%p0,p1为初始值(可以理解为选取的x(k),x(k-1)两点)
%delta为给定误差界限
%max1为迭代的误差上限
%p1为所求的方程的近似解(这里是function中的pl)
%err为p1-p0的绝对值
%k为所需需要的迭代次数
%y=f(pl)
k=0,p0,p1,feval('f',p0),feval('f',p1)
for k=1:max1p2=p1-feval('f',p1)*(p1-p0)/(feval('f',p1)-feval('f',p0));err=abs(p2-p1);p0=p1;p1=p2;p1,err,k,y=feval('f',p1);if (err<delta)|(y==0),break,end
end
2.例题示例:
解线性方程组0.019x^3-0.036x^2-1.973=0
首先用一个名为f.m的文件定义函数f(x)=0.019x^3-0.036x^2-1.973
!!!!!!!!!!对于小白,千万别直接复制后放在matlab中运行,应该新建一个脚本,名为f.m
function y=f(x)
y=0.019*x^3-0.036*x^2-0.049*x-1.973
可以将y=后更改为自己的求解函数
接下来开始求解函数
在MATLAB命令窗口输入,前面两部分是脚本里面,此时脚本完成后关闭,在命令窗口!命令窗口!
开始运行并显示输出结果:
结果表明经过5次迭代得到了满足精度要求的近似解x=5.6295,且f(x)=-3.2285e-3
3.错误解决
我遇到的是问题是:
3.1方法1
确保脚本文件在工作目录:我的存放在此处
3.2方法2
确保函数名与脚本名一致:
假如不一致的情况,错误示例:
正确应该将文件名改为secant.m
3.3方法3
先运行一下脚本secant.m
如何在命令窗口再输入secant('f',5.2,5.21,10^(-6),11)
不足之处还望各位及时指正!!!!!!!!
MATLAB弦截法求解非线性方程相关推荐
- 用弦截法求解方程的根
/* 用弦截法求解方程的根 算法思想 三元方程的函数增减单调特性 定义X1,X2两个坐标 使得F(X1) 与F(X2) 的值相反 这样X1,X2之间必有一跟 由下面的弦截法公式求焦点坐标 当F(X)与 ...
- 弦截法c语言程序,用弦截法求解一元三次方程的根(利用c语言实现)
用弦截法求解一元三次方程的根(利用c语言实现)0 特别v2013.09.24浏览296次分享举报 #include #include float f(x) { float a,b,c,d; float ...
- 单点、双点弦截法求解方程根
弦截法: (a) 用牛顿法解方程f(x)=0,虽然在单根附近具有较快的收敛速度,但它有个明显的缺点,就是需要计算导数f'(x),当f(x)比较复杂时,计算f'(x)可能有困难. (b)弦截法和牛顿迭代 ...
- 【数值分析】弦截法求解-Python实现
本篇为数值分析课程代码实现-两点弦截法的实现 仅供参考 配置环境 Python3.6 matplotlib numpy # -*- coding: utf-8 -*- ""&quo ...
- 数值计算大作业:非线性方程求根(二分法、牛顿法、弦截法在Matlab实现)
作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 我把二分法.牛顿法.弦截法求解非线性方程求根的数值计算作业在MATLAB中编程实现.具体的程序详细标注后放在文章附录了,算法数学 ...
- 非线性方程求解——单点弦截法
单点弦截法是双电弦截法的特殊情况,迭代的情况可能在有根区间的两个端点之间变换.如果迭代的结果始终在一侧的端点,这个端点会收敛于精确根,而有根区间另一个端点固定不变,那么双点弦截法变为单点弦截法. 单点 ...
- matlab二分法,单点弦截法,牛顿切线迭代法
二分法 %p222task2_3 %二分法求f=@(x)1-x-sin(x)零点 clc,clear; f=@(x)1-x-sin(x) b=1;a=0; f(0) f(1) ezplot(f,[0, ...
- 用弦截法求方程的根matlab,matlab 语言 用弦截法任意实数方程求实根
满意答案 dwgg2n0das8 2013.04.26 采纳率:45% 等级:12 已帮助:8202人 弦截法这个方法一般用作学习,实际用的很少.这里我提供一个较完整的弦截法求根的函数.func ...
- 牛顿迭代法是一种速度很快的迭代方法,但是它需要预先求得导函数。若用差商代替导数,可得下列弦截法
牛顿迭代法是一种速度很快的迭代方法,但是它需要预先求得导函数.若用差商代替导数,可得下列弦截法 这一迭代法需要两个初值,迭代过程和牛顿法类似,当时停止迭代.编写程序实现弦截法,要求输出方程的根.函数在 ...
最新文章
- 突然发现我还有博客园的博客呢哈哈哈哈
- 用GDB调试程序(四)
- eclipse项目迁移到Android Studio
- 去除dataframe中的空行_Python数据分析中的处理与数值加速技巧简介
- linux 查看usb端口_linux开发:Linux下查看端口占用
- python装饰器详解-Python装饰器基础详解
- SAP NetWeaver Portal 内容导出出错处理
- 二、套接字类型与协议设置
- 【图像融合】基于matlab高斯金字塔+拉普拉斯金字塔彩色水下图像融合【含Matlab源码 1629期】
- java JsonNode 遍历方式
- power-law 之Zipf
- RCC_APB2Periph_ALL 哪儿里去了?
- Android之不须要自己定义View(ViewfindView.java)最简单的二维码扫描
- 【论文合集】2022年10月医学影像期刊论文合集
- LeetCode 13 罗马符号转化为数字(难度: Easy)
- 【算法设计与分析】将数字分解为n个数字之和
- [Halcon] WriteImage保存图像崩溃问题
- SWUST OJ 574: Renting Boats
- MySQL远程连接提示Accesss denied for user 'root'@'此处为你自己的ip'(using password:YES)
- Linux 挂载2TB以上硬盘
热门文章
- 人工智能在采购中的应用有哪些?
- 2022-5-16作业
- 最新实用的网页加密源码+附四套模板
- 基于JAVA阅读与存储图书网站设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署
- https tk6 us
- mysql 自动备份发送_MySQL自动备份数据并通过邮箱发送
- 将一个只含有大小写字母的字符串大写变成小写,小写变成大写后输出。
- 运行项目提示Compilation of JSP File '/xx/xx/xxx.jsp' failed解决办法
- 西门子200指针求平均值,最大值,最小值,适用于多种程序要求,注释全面
- 奈何本人没文化,一句卧槽行天下