How to solving and plot only one non-linear equation with two or one variables without using ezplot
Show older comments
I want to solve and plot one non linear equation with two variables k and f, the equation is shown here, where k varies from 0 to 1. The other algebras are given.
(((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5))=0
For every k value, there are more than one possible solutions for f value, where the f value can be in form complex number and is limited from 0 to 20.
However, it gives 'The input to FSOLVE should be either a structure with valid fields or consist of at least two arguments.' after running the command.
Apart from that, i actually want to plot a continous function rather than scattering the point if it is possible. I don't want to use ezplot because the plot is not correct. Thankyou
clc
clear all
syms k f
cs = 121;
cl = 227;
A = (1.3^2)*(3^0.5)/2;
den = 1300;
m = 6700;
fv = 4.9;
k=0:0.01:1;
fun = @(f) ((2*pi*f).^2)/((2*pi*fv).^2)-1)*((2-(((2*pi*f).^2)/((k.^2)*(cs.^2))).^2)-4*((1-(((2*pi*f).^2)/((k.^2)*(cs.^2)))).^0.5)*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)-m*(((2*pi*f).^4)/(A*(cs.^4)*den*(k.^3)))*((1-(((2*pi*f).^2)/((k.^2)*(cl.^2)))).^0.5)));
fsolve(fun, [0, 20])
scatter(k,f)
ylim([0 20]);
xlim([0 1])
Answers (1)
darova
on 14 Feb 2020
Numerical way
[K,F] = mehsgrid(-10:10);
Z = your_function
contour(K,F,Z,[0 0]) % contour at 0 level
11 Comments
Tak Yeung POON
on 14 Feb 2020
Tak Yeung POON
on 14 Feb 2020
darova
on 14 Feb 2020
What do you see?

Tak Yeung POON
on 15 Feb 2020
darova
on 15 Feb 2020
This is how your plot looks like if
surf(K,F,Z)

So contour at level 0 is correct

Tak Yeung POON
on 15 Feb 2020
darova
on 15 Feb 2020
Do you have polyxpoly?
Tak Yeung POON
on 15 Feb 2020
darova
on 15 Feb 2020
try this script
Tak Yeung POON
on 17 Feb 2020
darova
on 17 Feb 2020
What about interp1? fsolve is used for equations
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!