方程求解

求解单个代数方程

MATLAB具有求解符号表达式的工具,如果表达式不是一个方程式(不含等 号),则在求解之前函数solve将表达式置成等于0

>> syms a
syms b
syms c
syms x
>> solve('a*x^2+b*x+c') ans = -(b + (b^ - *a*c)^(/))/(*a)
-(b - (b^ - *a*c)^(/))/(*a)

结果是符号向量,其元素是方程的两个解。如果想对非缺省值x变量求解,solve必须指定变量

>> solve('a*x^2+b*x+c','b')

ans =

-(a*x^ + c)/x

带有等号的符号方程也可以求解:

>> f = solve('cos(x) = sin(x)')

f =

pi/

>> t = solve('tan(2*x) = sin(x)')

t =

>> x = solve('exp(x) = tan(x)')
警告: Cannot solve symbolically. Returning a numeric
approximation instead. %不能用符号来解决。返回数字是近似值。 x = -226.19467105846511316931032359612

 代数方程组求解

>> eq1 = 'x-3 =4';
eq2 = 'x*2-x-6=0';
eq3 = 'x^2+2*x+4=0';
eq4 = '3*x+2*y-z=10';
eq5 = '-x+3*y+2*z=5';
eq6='x-y-z=-1';
>> solve(eq1) ans = >> solve(eq2) ans = >> solve(eq3) ans = - ^(/)*i -
^(/)*i - >> solve(eq4,eq5,eq6) ans = x: [1x1 sym]
y: [1x1 sym]
z: [1x1 sym]

这里,solve(eq4,eq5,eq6)是一个结构数组,其中每个元素为一符号类型的量

>> ff = solve(eq4,eq5,eq6);
>> ff.x ans = - >> ff.y ans = >> ff.z ans = -

也可以:

>> [a,b,c] = solve(eq4,eq5,eq6)

a =

-

b =

c =

-

例题:

 解题思路:

首先,根据以上给出的信息列出一组线性方程,假如p,n,d和q分别表示1美分,5美分,10美分,和25美分的硬币数

>> syms d
>> syms p
>> syms n
>> syms q
>> a = 'd+(n+p)/2=q';
>> b = 'p=n+d+q-10';
>> c = 'q+d = p+n/4';
>> d = 'q+p = n+8*d-1';
>> [pennise,nickles,dimes,quarters] = solve(a,b,c,d,'p,n,d,q')
警告: Do not specify equations and variables as character
strings. Instead, create symbolic variables with syms.
%不要将公式和变量指定为字符串。相反,使用syms创建符号变量。 pennise = nickles = dimes = quarters =

>> money = .*+.*+.*+.*

money =

    4.6100

 例题:

【0】从三维坐标初步观察两函数图形相交情况

x=-:0.05:;y=x;[X,Y]=meshgrid(x,y); %产生x-y平面上网点坐标
F1=sin(X-Y);F2=cos(X+Y);
F0=zeros(size(X));
surf(X,Y,F1),
xlabel('x'),ylabel('y'), view([-,]),hold on,
surf(X,Y,F2),surf(X,Y,F0),
shading interp,
hold off

【1】在某区域观察两函数0等位线的交点情况

x=-:0.5:;y=x;[X,Y]=meshgrid(x,y); %产生x-y平面上网点坐标
F1=sin(X-Y);F2=cos(X+Y);
v=[-0.2, , 0.2]; %指定三个等位值,是为了更可靠地判断0等位线的存在。
contour(X,Y,F1,v) %画F1的三条等位线。
hold on,contour(X,Y,F2,v),hold off %画F2的三条等位线。

【2】从图形获取零点的初始近似值

ginput 获取两个函数0 等位线(即三线组中间那条线)交点的坐标。

[x0,y0]=ginput(); %在图上取两个点的坐标
disp([x0,y0])

【3】利用 fsolve 求精确解(以求(0.7926,7843)附近的解为例。)

本例直接用字符串表达被解函数。注意:在此,自变量必须写成x(1), x(2)。
假如写成xy(1), xy(2),指令运行将出错。

fun='[sin(x(1)-x(2)),cos(x(1)+x(2))]'; %<>
xy=fsolve(fun,[x0(),y0()])
%<>

xy =

0.7854 0.7854

【4】检验

fxy1=sin(xy()-xy());fxy2=cos(xy()+xy());disp([fxy1,fxy2])

Matlab——数值计算——单个代数方程 代数方程组的更多相关文章

  1. MATLAB数值计算——0

    目录 MATLAB数值计算 1.solve() 2.fzero() 3.fsolve() MATLAB数值计算 MATLAB中文论坛基础板块常见问题归纳(出处: MATLAB中文论坛) 登录http: ...

  2. fslove - Matlab求解多元多次方程组

    fslove - Matlab求解多元多次方程组 简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve. 示例如下 ...

  3. Matlab数值计算最简单的一个例子——指数衰减

    放射性衰变是指数衰减的典型例子.另外还有化学反应某反应物的减少,RC电路电流的减小,大气压随海拔高度的减小等. 指数衰减的方程: \begin{equation} \frac{dN(t)}{dt}=- ...

  4. Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法

    本文源于一次课题作业,部分自己写的,部分借用了网上的demo 牛顿迭代法(1) x=1:0.01:2; y=x.^3-x.^2+sin(x)-1; plot(x,y,'linewidth',2);gr ...

  5. matlab解三元二次方程组

    C1=7.0863; C2=6.8971; C3=0.4929; C4=0.8131; C5=1.8240; C6=3.8108; C7=3.7318; C8=-2.2238; C9=1.9905; ...

  6. Matlab 数值计算

    本博客记录一些简单的计算 det(A):矩阵求行列式 A=[1,2;3,4]; det(A) ans=-2; inv(A):矩阵求逆 A=[1,2;3,4]; B=inv(A) B=[-2,1;1,5 ...

  7. matlab 解方程组

    1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=in ...

  8. 【数学建模】MATLAB语法

    一.向量.矩阵的表示和使用 format long  %小数很多format short %默认4位小数format rat %显示最近的分数format short e %指数格式的数 尾数多少 e ...

  9. 【书单】matlab 科学计算、数值分析以及数学物理问题

    1. 数学计算 MATLAB数值计算 MATLAB之父 : 编程实践 2. 数学物理问题 高等应用数学问题的MATLAB求解(第3版)(豆瓣评价极好) 3. 模式识别

随机推荐

  1. git 分支 版本回退

    本地回退: git reset --hard HEAD~ 回退后推送到远程: git push --force .

  2. 前端每日实战:140# 视频演示如何用纯 CSS 创作文本的淡入动画效果

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZMwgqK 可交互视频 此视频是可 ...

  3. 【NOIP2016提高A组集训第1场10.29】完美标号

    题目 给定M个二元组(A_i, B_i),求X_1, ..., X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立. 分析 显然,对于二元组(x,y),X_ ...

  4. 对vue源码之缓存的研究--------------引用

    探索vue源码之缓存篇 一.从链表说起 首先我们来看一下链表的定义: 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个 ...

  5. node.js入门学习(三)--npm

    一.npm介绍 1)npm:node package manager是node.js默认的以js编写的软件包管理系统 官网:www.npmjs.com 文档:docs.npmjs.com 2)提到np ...

  6. 【BZOJ3931】[CQOI2015]网络吞吐量

    Description 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的地,路由器需要选择 ...

  7. windows10 下 gcc/g++ 的安装

    一.gcc的下载 网址:www.mingw.org ,点击右上方的 download installer 二.安装 打开安装程序,默认安装,弹出下列界面 找到mingw32-gcc-g++(注意cla ...

  8. sh_12_转义字符

    sh_12_转义字符 # \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐 print("1\t2\t3") print("10\t20\t30&qu ...

  9. 苹果cms怎么上传本地视频资源

    今天我们来简单分享下苹果cms怎么上传本地视频,采集资源站的资源我们已经熟知了,但是有的伙伴们想要上传自己制作或是录制的视频应该怎么操作呢?这个问题有多种方法,今天我们先简单的说2种方法. 一,上传到 ...

  10. 管理es索引-使用 Xput创建索引

    curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求.简单的认为是可以在命令行下面访问url的一个工具.在centos的默认库里面是有cur ...