方程求解

求解单个代数方程

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. centos在无外网情况下,进行yum挂载

  2. 在VMware Vcenter添加一块网卡后,启动虚机找不到网卡,发现有一个ens38(redhat7.5)

    添加一块网卡后,启动虚机找不到网卡,发现有一个ens38 问题:新建虚拟机设置为一块网卡,时候在Vcenter再添加一块网卡,这个问题相信很多网友都见过,今天就来总结一下添加过程中的问题. 由于有以前 ...

  3. 一、Ubuntu16.04 安装

    第一步:系统安装 https://yuedu.baidu.com/ebook/c44183ed4128915f804d2b160b4e767f5acf80fb?pn=1&rf=https%3A ...

  4. 如何代替set get方法

    博主刚刚看其他人的博客的时候,发现好多人还在用 生成set get方法  虽然是自动生成的 但是看起来很复杂,影响代码的可读性 那么有什么办法能代替set  get方法吗? 当然有啦!!! 只需要导入 ...

  5. 如何在Linux下安装Tomcat

    上篇文章写到了Linux下安装JDK1.8,这篇文章详细阐述一下 如何在Linux下安装Tomcat!!!有啥问题可以留言,博主每天都会看博客的. 准备步骤和方法和以前一样,博主用的工具是XShell ...

  6. 深入理解JAVA虚拟机 自动内存管理机制

    运行时数据区域 其中右侧三个一起的部分是每个线程一份,左侧两个是所有线程共享的. 程序计数器(Program Counter Register) 英文名称叫Program Counter Regist ...

  7. vue项目history模式下微信分享相关问题

    import wx from '@/utils/wx' import { shareApi } from '@/api' // 微信验证 export function requireConfig() ...

  8. HDU-2732-leapin'Lizards(最大流, 拆点)

    链接: https://vjudge.net/problem/HDU-2732 题意: Your platoon of wandering lizards has entered a strange ...

  9. [luogu]P1514 引水入城[搜索][记忆化][DP]

    [luogu]P1514 引水入城 引水入城 题目描述在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形 ,如下图所示,其中每个格 ...

  10. 课上作业补交 p526/syscalls1

    P526代码检查: 1 编译运行p524代码,提交运行结果截图 2 MAXLINE的值是多少?提交Ubuntu中查找这个值的命令和结果截图 3 p525 eval 函数中调用的Fork()函数需要什么 ...